Skip to content

fix(gsplat): align projector projection with WebGPU shader uniforms#8662

Merged
mvaligursky merged 1 commit into
mainfrom
mv-gsplat-webgpu-projection-parity
May 1, 2026
Merged

fix(gsplat): align projector projection with WebGPU shader uniforms#8662
mvaligursky merged 1 commit into
mainfrom
mv-gsplat-webgpu-projection-parity

Conversation

@mvaligursky
Copy link
Copy Markdown
Contributor

Hybrid and compute-local GSplat paths now build viewProj and related uniforms from the same projection transform the forward renderer uploads as matrix_projection (render-target flip-Y when applicable, then WebGPU clip depth range). That fixes incorrect depth against opaque meshes on WebGPU when those flags differ from raw Camera#projectionMatrix.

Changes:

  • Add Camera.applyShaderProjectionTransform plus internal static matrices and a shared scratch matrix for the combined flip-Y + WebGPU case.
  • Renderer#setCameraUniforms delegates projection adjustment to Camera.
  • GSplatProjector#dispatch and GSplatComputeLocalRenderer use the helper; hybrid manager passes flipY from the camera render target.
  • GSplatHybridRenderer _computeClipToViewZ inverts the same shader-style projection as the hybrid vertex path.
  • Remove throttled [GSplat raster-cpu-sort] / [GSplat hybrid-projector] matrix debug logs.

The Camera class remains @ignore for generated docs; this is primarily an internal engine consistency fix.

Apply the same flip-Y and WebGPU clip-depth projection transform as
matrix_projection so hybrid raster depth matches opaque geometry.

Centralize transforms on Camera; pass flipY into hybrid projector;
remove throttled matrix debug logs.
@mvaligursky mvaligursky self-assigned this May 1, 2026
@mvaligursky mvaligursky merged commit 9f78735 into main May 1, 2026
8 checks passed
@mvaligursky mvaligursky deleted the mv-gsplat-webgpu-projection-parity branch May 1, 2026 12:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant