[SOLVED] About SH of gaussian splatting

Hi, I am very pleased with this recently posted feature.

https://x.com/willeastcott/status/1825838435090718751?t=Ik6xJa8_2mFx9Uy9I5SJmw&s=19

I think this will make the quality of gaussian splatting extremely high.
At the moment I can see the SH Bands feature in supersplat.
Will we be able to use SH Bands in the playcanvas editor in the future?

@slimbuck

Hi @mmm_nnn,

Yes we will probably add support for SH in the engine itself. At that point we’d also add support to the compressed format since the data is huge.

Would you mind creating a feature request issue on the engine repo so we can gauge the demand and keep track of progress?

Thanks!

1 Like

The current SH rendering results are very nice.
Currently, SH is not compressed and PLY is used as is. is there a possibility that SH will be compressed as well?
Or is it better to generate the optimal splat with SH level 0 as a final solution for quality and memory cost?

There is a plan to update the compressed format to include SH, but that has not been done yet unfortunately.

For now, the options are:

  • train GS with SH and use uncompressed ply (best quality, largest size)
  • train GS without SH and use compressed format (great quality, small size)
  • train GS with SH, but export it to compressed format. This strips out SH from the file. (not great quality, as ideally what you train matching rendering, and so this path is not recommended).
1 Like

@mvaligursky
Thanks for explaining.
Is it possible with some of the current software to generate an optimal splat with the assumption of no SH.
postshot does not support it.

The original Inria code base supports it: GitHub - graphdeco-inria/gaussian-splatting: Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering"

But I understand this is not something easy to use.

I’m not sure about easy to use options to be honest. Any ideas @slimbuck ?

1 Like

We never closed out this thread. Spherical Harmonics support was added to the Compressed PLY format back in December 2024:

Also, PostShot has advanced option where you can set number of SH to 0.

Can you explain the visual difference of these different options:

  • train GS with SH and use uncompressed ply
  • train GS without SH and use compressed format
  • train GS with SH, but export it to compressed format. This strips out SH from the file.

So, in the first option we get full view-dependent lighting information, specularity, anisotropy, etc.

In the second option, we get lighting and material response, but for one viewing angle?

In the third option, we get the same thing as the second option, or how is that different?

When you export to compressed ply file, you can select how many SH bands are preserved - so those are stripped unless you select 0.

Right, I understand the export options, but I don’t understand what is the visual difference of the output that we should expect with these different export options, e.g. full SH vs no SH, etc.

(without me actually generating a splat and exporting and comparing these options myself)

In the third “with SH,” the splat is generated in the optimal position under the SH assumption, so if SH is eliminated from it, it will not be optimal.
It is not completely improperly positioned, but the quality is lower than a splat optimally positioned under the second “without SH” assumption.
I actually made one myself to verify this, and even when generated without SH, it is possible to create some reflected images of the reflective surfaces. However, the reproducibility of phenomena such as Fresnel and anisotropic reflections is a bit less than SH3. It also gave the impression that the number of point clouds would be higher.
However, the third splat was of even lower quality than that.
Both the reflected image and the Fresnel reflection are of low quality.

If you are willing to compromise on the quality of the reflections but still want to produce a low-capacity splat, it is better to generate the splat with no SH assumption and compress it by selecting SH bands 0 in the supersplat.
However, if you want to create a splat with high reflection quality even if the capacity is somewhat larger, it is better to generate a splat with SH3, etc., and compress it by selecting SH bands 3 in supersplat.
It would not make much sense to generate a splat with SH and select SH bands 0.