Skip to content

Conversation

@slimbuck
Copy link
Member

Fixes #7585

This PR is a follow up to #7472. It implements the remaining work required to leverage histogram bit allocation for uncompressed scenes.

Using a histogram to allocate bits helps when sorting gaussians in scenes with especially wildly distributed gaussians (i.e. scenes with dense clumps of gaussians together with very huge, sparsely distributed far away gaussians).

This scene provided by Simon Bethke went from:
Screenshot 2025-04-24 at 11 24 15

To:
Screenshot 2025-04-24 at 11 24 18

In order to use the histogram we must just calculate a bounding sphere for every 256 gaussians (under the assumption the gaussians were previously ordered) at load time.

@slimbuck slimbuck added area: graphics Graphics related issue enhancement labels Apr 24, 2025
@slimbuck slimbuck requested review from a team and Copilot April 24, 2025 10:32
@slimbuck slimbuck self-assigned this Apr 24, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements the remaining work for leveraging histogram bit allocation for uncompressed scenes, improving the sorting of gaussians by adapting to their distribution.

  • Updates the splat sorting branch to use a 4-float chunk representation instead of 6 floats.
  • Refactors the bounding sphere calculation and bounds updating logic from chunk data and vertex centers.

@slimbuck slimbuck changed the title Histo sorter Histogram sort for uncompressed gsplat Apr 24, 2025
@slimbuck slimbuck merged commit 040f005 into playcanvas:main Apr 24, 2025
7 checks passed
@slimbuck slimbuck deleted the histo-sorter branch April 24, 2025 12:57
slimbuck added a commit that referenced this pull request Apr 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: graphics Graphics related issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement histogram sorting for uncompressed gsplat data

2 participants