Skip to content

Gaussian Splat Optimization#13322

Open
danielzhong wants to merge 5 commits intoDanielZ/Splat_FIX5from
DanielZ/Splat_FIX7
Open

Gaussian Splat Optimization#13322
danielzhong wants to merge 5 commits intoDanielZ/Splat_FIX5from
DanielZ/Splat_FIX7

Conversation

@danielzhong
Copy link
Contributor

@danielzhong danielzhong commented Mar 20, 2026

Description

This PR applies profile driven optimizations to Gaussian splat loading and update.

Main changes:

  • Adds a fast path and transform caching in GaussianSplatPrimitive.transformTile to reduce per-splat matrix/TRS work
  • Preserves original glTF attribute data in GaussianSplat3DTileContent and keeps transformed copies separate for correct rebuild behavior
  • Reuses aggregate snapshot buffers for positions, scales, rotations, and colors to reduce allocation churn and GC pressure
  • Makes steady-state sorting less aggressive during camera movement to reduce repeated sort work

These changes were based on Chrome profiling, where the main hotspots were transform work, repeated large allocations, and repeated scheduling/cloning during texture generation and sorting. The goal is to reduce CPU time and GC pressure during Gaussian splat loading and runtime updates.

Before:
image

After:
image

Issue number and link

Testing plan

Author checklist

  • I have submitted a Contributor License Agreement
  • I have added my name to CONTRIBUTORS.md
  • I have updated CHANGES.md with a short summary of my change
  • I have added or updated unit tests to ensure consistent code coverage
  • I have updated the inline documentation, and included code examples where relevant
  • I have performed a self-review of my code

@github-actions
Copy link

Thank you for the pull request, @danielzhong!

✅ We can confirm we have a CLA on file for you.

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