examples: Add splat-portal gaussian-splatting example#8738
Merged
Conversation
Adds a new Gaussian-splat example that joins two LOD-streamed splat scenes (Roman Parish + Skatepark) with a stencil-masked, walk-through portal. Crossing the portal plane swaps which scene is "current" without any visible teleport. Includes a translucent glass overlay inside the portal opening and procedural snow gsplats bound to the Skatepark layer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a new Gaussian-splat example that joins two LOD-streamed splat scenes with a stencil-masked, walk-through portal. The Roman Parish scene and Skatepark scene are aligned by per-scene "portal anchors", so crossing the portal plane swaps which scene is "current" without any visible teleport. A translucent glass overlay sits inside the portal opening, and procedural snow gsplats are bound to the Skatepark layer (so they appear naturally in that world and through the portal).
Examples:
examples/src/examples/gaussian-splatting/splat-portal.example.mjswith companionsplat-portal.controls.mjs(shows current world + gsplat count).gaussian-splatting_splat-portal_{large,small}.webp).Technical notes:
portalOnlystencil +FUNC_GREATERdepth (oblique near-clip at the portal plane); the "from-scene" layer gets no stencil +FUNC_LESSEQUAL, letting foreground splats correctly occlude both the portal and the glass overlay.insertOpaque/insertTransparentdirectly to get an explicit sub-layer render order: mask opaque → arch opaque → through-scene transparent → glass transparent → from-scene transparent.GsplatWeatherscript bound to the Skatepark layer; a singleSNOW_EXTENTcontrols the volume.