Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New compression method used by SuperSplat is not compatible #387

Open
murcje opened this issue Dec 11, 2024 · 9 comments
Open

New compression method used by SuperSplat is not compatible #387

murcje opened this issue Dec 11, 2024 · 9 comments

Comments

@murcje
Copy link

murcje commented Dec 11, 2024

Hi!

Recently, PlayCanvas introduced support for Spherical Harmonics up to level 3 in a new compressed .ply format (in their SuperSplaat application). However, I’ve noticed that this new format is currently incompatible with your viewer.

The updated .ply files seem to include additional data for the spherical harmonics, and I suspect this may be why they fail to render correctly.

I will provide example .ply files if that could help in assessing what updates might be needed.

https://we.tl/t-5AkeziLorp

Please let me know if I can assist further.

Best regards,

Marc

@seppestaes
Copy link

Hi,

Just wondering, why would you need it to be compatible with the compressed format of SuperSplat? To use it as an intermediate editor?

Grtz

@murcje
Copy link
Author

murcje commented Dec 15, 2024

Hi,

We have used SuperSplat extensively to clean up and compress splats to compressed .ply, a format that does a factor 15 compression. We then deploy these splats on our platform that makes use of this webviewer. Works great!

They have recently updated their compression to include SH3. In SuperSplat you can set the displayed SH to 0-3, and when you export a splat it will export the amount of SH bands that you selected for display. When I set it to 0, I get the same compression ratio as before (filesize is about the same). But when I view that through this webviewer, the colors are off. See examples below:

image
image

@seppestaes
Copy link

SH3 is mentioned in one of the comments, on the roadmap, but not a priority, I believe. Out of interest, your results look excellent with SH 0-2, do you see a substantial difference in quality with SH3?

@murcje
Copy link
Author

murcje commented Dec 15, 2024

@seppestaes Thanks, these are both SH0. We actually don't really need SH3 atm. I notice some difference when viewing with more SH (in SuperSplat), but for large scenes like landscapes I don't see a huge increase in fidelity, it's just a tiny bit more rich/detailed in colors it seems to me. So for now we can still use an older version of SuperSplat to compress (SH0) files in a way that works with this viewer, but since Playcanvas seems to be actively developing features for 3DGS, it would be nice if we would be able to continue using their latest versions.

Here are the (SH0) scenes:

old compressed .ply: https://voluma.ai/view/voluma/real_estate/re1c
new compressed .ply: https://voluma.ai/view/voluma/real_estate/re1

I had some communication with the devs of Playcanvas (SuperSplat) and they mentioned this:

At the time we added support for SH we also made a small change to the way colors are stored. Colors were just clamped 0..1 previously, but now we store a per-chunk min.rgb and max.rgb in order to support HDR colors.

@seppestaes
Copy link

@murcje Nice result/integration! Thanks for the update. You're using PlayCanvas' compressed ply / splat and not @mkkellogg's .ksplat?

@murcje
Copy link
Author

murcje commented Dec 15, 2024

@seppestaes Usually we do use .ply. They are even smaller in size then ksplat. We do use ksplat when we need a nice reveal of the splat, they are better structured and work better for that purpose.

@mkkellogg
Copy link
Owner

I have branch with a fix for the incorrect colors being read from the compressed playcanvas .ply here: https://github.com/mkkellogg/GaussianSplats3D/tree/playcanvas_incorrect_colors. It doesn't yet incorporate any additional SH bands from their updated format -- that will be next on my list.

@mkkellogg
Copy link
Owner

@murcje I updated the https://github.com/mkkellogg/GaussianSplats3D/tree/playcanvas_incorrect_colors branch to support spherical harmonics from compressed playcanvas .ply files (up to degree 2). Would you be interested in testing it out? I have done some preliminary testing on my end and it seems to work correctly.

@murcje
Copy link
Author

murcje commented Dec 23, 2024

@mkkellogg thank you, as soon as my collegue is back from his holiday we will test this out. Probably next week.

Happy holidays!

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

No branches or pull requests

3 participants