Skip to content

Cull splats faded out by modifySplatColor before the GPU sort - #9962

Merged
mvaligursky merged 1 commit into
mainfrom
mv-gsplat-modified-alpha-cull
Nov 6, 2026
Merged

mvaligursky merged 1 commit into
mainfrom
mv-gsplat-modified-alpha-cull

Conversation

@mvaligursky

@mvaligursky mvaligursky commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

In the WebGPU GPU-sort renderer, splats hidden by a modifySplatColor modifier (alpha set to 0) were still compacted, cached and sorted, because the projector only culled on the original opacity.

Changes:

  • The projector now culls on the alpha left after modifySplatColor: valid = alpha > alphaClip. Faded-out splats no longer get a compaction slot, a projection cache entry or a sort key.
  • The threshold is the pass's own alphaClip uniform, applied to the alpha that is drawn (AA-compensated in forward, uncompensated in pick).

Performance:

  • Effects that hide splats through modifySplatColor (fades, reveals, dissolves) no longer pay sort and vertex cost for the hidden splats.
  • The CPU-sort path (WebGL2) is unaffected.

Fixes #9961

@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown

Build size report

This PR changes the size of the minified bundles.

Bundle Minified Gzip Brotli
playcanvas.min.js 2827.4 KB (+22 B, +0.00%) 735.7 KB (+3 B, +0.00%) 570.1 KB (+411 B, +0.07%)
playcanvas.min.mjs 2824.1 KB (+22 B, +0.00%) 733.7 KB (+6 B, +0.00%) 569.2 KB (+6 B, +0.00%)

@mvaligursky
mvaligursky merged commit 9747207 into main Nov 6, 2026
9 checks passed
@mvaligursky
mvaligursky deleted the mv-gsplat-modified-alpha-cull branch November 6, 2026 14:01

This branch was successfully deployed

2 active deployments
Preview – engine — eb612a8b Deployed Nov 6, 2026 by vercel[bot]
Preview – engine-api-docs — eb612a8b Deployed Nov 6, 2026 by vercel[bot]
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.

Cull splats faded out by modifySplatColor before the GPU sort

1 participant