-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Unified gsplat architecture is available to GSplatComponent #7861
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
Conversation
src/scene/shader-lib/glsl/chunks/gsplat/frag/gsplatCopyToWorkbuffer.js
Outdated
Show resolved
Hide resolved
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.
Pull Request Overview
This PR introduces unified GSplat architecture that allows multiple GSplat components to be efficiently rendered together using a centralized director system. The new architecture provides better memory management through dynamic buffer sizing and enables multi-camera rendering scenarios.
Key changes:
- Adds a
unified
property toGSplatComponent
that enables the new unified rendering architecture - Introduces a
GSplatDirector
class that managesGSplatManager
instances per camera and layer combination - Replaces fixed-size buffers with dynamic sizing based on LOD, reducing memory usage for large scenes
Reviewed Changes
Copilot reviewed 23 out of 23 changed files in this pull request and generated 3 comments.
Show a summary per file
File | Description |
---|---|
src/framework/components/gsplat/component.js |
Adds unified property and GSplatPlacement support for new rendering architecture |
src/scene/renderer/renderer.js |
Integrates GSplatDirector into the main renderer |
src/scene/layer.js |
Adds GSplatPlacement management to layers |
src/scene/gsplat/unified/gsplat-director.js |
New director class managing GSplatManager instances per camera/layer |
src/scene/gsplat/unified/gsplat-manager.js |
Updates manager to work with placement-based architecture |
examples/src/examples/gaussian-splatting/multi-view.example.mjs |
New example demonstrating unified architecture with multiple cameras |
Co-authored-by: Copilot <[email protected]>
A public way to utilize unified gsplat architecture, using additiona
unified
component property:Note that this property can be changed only when the splat is disabled (it's internal data not created) at the moment, and ignored with a warning otherwise.
Details:
Other changes:
When Texture.upload()
is manually called, the upload takes place immediately on WebGL now, to match WebGPU. This allows the upload buffer to be immediately reused on the CPU, instead of being required to be untouched till the rendering uploads the texture. This also avoids uploading textures in the middle of the render passes.Screen.Recording.2025-07-25.at.14.45.53.mov