aras-p / UnityGaussianSplatting

Toy Gaussian Splatting visualization in Unity
MIT License
2.09k stars 239 forks source link

How to export a compressed (smaller) splat? #86

Closed Kezzsim closed 9 months ago

Kezzsim commented 9 months ago

I've been reading some articles about this tool, one of the most exciting features about it is the ability to compress or omit spherical harmonics, as seen in the "Making Gaussian Splats more smaller" post by the creator of this repository. While the compressed unity asset does take up less space in game engine, I'm looking to export it such that I can convert it to a .splat file and realize some performance gains when using one of the webGL viewers like the one created by Antimatter15.

I realize that upon exporting the finished .ply they are always the same size regardless of what compression option I select, is that correct or should I be processing it differently to compress it?

aras-p commented 9 months ago

The "standard" PLY format that every gaussian splatting tool recognizes is without any compression. So if you apply compression within Unity, and export to PLY, you still get a massive file but have lost some precision in the process.

There's no widely understood "compressed splat format" right now. There was some effort to come up with one (https://github.com/mkkellogg/GaussianSplats3D/issues/47) but nothing concrete fell out of it yet. Playcanvas also has their own compression that is somewhat similar (and simpler) to my blog posts, see https://blog.playcanvas.com/compressing-gaussian-splats/