Skip to content

perf: Fuse GSplat budget bucket indices into LOD evaluation#8684

Merged
mvaligursky merged 2 commits into
mainfrom
mv-gsplat-budget-bucket-fuse
May 5, 2026
Merged

perf: Fuse GSplat budget bucket indices into LOD evaluation#8684
mvaligursky merged 2 commits into
mainfrom
mv-gsplat-budget-bucket-fuse

Conversation

@mvaligursky
Copy link
Copy Markdown
Contributor

Precomputes per-node sqrt-based distance bucket indices during optimal LOD evaluation when enforcing global splat budget, so GSplatBudgetBalancer.balance() no longer walks octree nodes again only for bucket placement.

Changes

  • evaluateOptimalLods / evaluateNodeLods: optional globalMaxDistance; writes NodeInfo.budgetBucket (same mapping as before).
  • balance(): fills buckets from budgetBucket; NUM_BUCKETS shared via gsplat-unified/constants.js.
  • Rename gsplat-local-constants.jsconstants.js; update imports.

- Precompute sqrt-based budgetBucket in evaluateNodeLods when global max distance is passed
- GSplatBudgetBalancer balance() only distributes nodes to buckets (no second sqrt pass)
- Rename gsplat-local-constants.js to constants.js; export NUM_BUCKETS
@mvaligursky mvaligursky merged commit 0c3134a into main May 5, 2026
8 checks passed
@mvaligursky mvaligursky deleted the mv-gsplat-budget-bucket-fuse branch May 5, 2026 14:40
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