-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Render compressed GS data #6371
Conversation
Co-authored-by: Will Eastcott <willeastcott@gmail.com>
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
|
||
const splatCoreVS = /* glsl */ ` | ||
|
||
uniform mat4 matrix_model; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is so much duplication between this and non-compressed material. I think we should unify them, and use ifdef inside shader to pick the right bits.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes there is some duplication, but I'd like to keep the two materials separate until the optimisations are final.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔥🔥🔥
Co-authored-by: Will Eastcott <willeastcott@gmail.com>
Co-authored-by: Will Eastcott <willeastcott@gmail.com>
This is a followup PR to #6357.
Up until now when loading compressed gaussian splat PLY files, we have simply decompressed the data at load time and rendered the scene as usual.
This PR adds a render path to load and render the compressed data directly, cutting memory consumption by 4x for the raw splat data and speeding up rendering by a modest 4%.
For the following bicycle scene:
NOTE: load time above includes the examples browser startup.
This PR makes the following changes:
createIter
function toGSplatData
, which constructs an iterator for accessing gaussian splat data. the iterator works the same whether the underlying data is compressed or not.GSplatData
, making most code smaller and simpler.gsplat
andgsplat-material
for rendering compressed data directly.asset.data
options which control whether to decompress the data at load time (useful for tools like super-splat) and also whether to reorder data for better GPU render performance.calcAabbExact
.Todo: