(More) Accurate 3DGS rendering

Hello!

Been playing around with Gaussian splatting, and felt the need for a better rendering option than the default plugin - don’t get me wrong, the plugin is great for import/export, simple visualization and editing, but as others have pointed out it isn’t fully accurate.

So I put together an alternate geo/shader nodes setup that allows both fast, point-based previs and accurate rendering! It’s still a work in progress, here is what I have so far (in order, 3DGS reference paper image, my mesh rendering, my point rendering):

It’s not perfect and I intend to keep on working on it, but here is a good first pass. To use it, you need the Reshot AI plugin to import the .ply file, then set the geo nodes modifier to the modifier in the following blend file:
V1Pub.blend (1.6 MB)

Feedback/comments/suggestions appreciated!

Notes:
The 3DGS train was done on my machine from the MipNerf360 dataset at 7k iterations.
There is a technically correct transparent point shader hidden in the GaussianPoint material, but it doesn’t practically work because blender has a maximum of 1024 transparent bounces (which don’t cut it when you are rendering millions of points). To play with it unplug the dot product node (BSDF transparency ← multiply) and plug in the exponent node that is left unconnected.

2 Likes

Looks pretty cool already ! Keep up the good work !

New version!
Still some issues with accurate opacity, but in mesh mode splats render with proper Gaussian falloff!


Hope people find this useful, am still planning on improving on this a bit.

Blend file containing modifiers:
V2Pub.blend (1.7 MB)

1 Like

In the meantime, random cool NPR result:

Latest version!

As ever here is the blend file (now with the nodes setup marked as an asset for easier use!): V3Pub.blend (1.8 MB)

Still a couple of opacity glitches, but managed to fix some and improve the color to more closely match the original.

1 Like