splat_forge_doc

Splat Forge Documentation

Splat Forge is an addon for using Gaussian Splats (3DGS) natively in Blender. It directly implements these in GLSL, giving native performance. This way your scene can easily handle millions of splats in realtime! It is compatible with both EEVEE and Cycles.

Watch the demo video here: YouTube Splat Forge Demo

YouTube Splat Forge Demo

Video Tutorial: https://youtu.be/h0C-8AtYZuM

Youtube Splat Forge Video Tutorial

Install Splat Forge:

Blender should automatically activate it and you will see a new tab in side panel (press N).

SplatForge GUI Panel

Loading a 3DGS

Working with a Splat

Changing the visualization mode

SplatForge supports 3 different visualization modes. These can also be rendered out.

Gaussian Viz: Proper visualization of the gaussian splats Gaussian Visualization Mode

Depth Viz: Depth Visualization Mode

Surfel Viz: Shows all Gaussian splats as elliptical surfels with their original orientation. Surfel Visualization Mode

Spherical Harmonics Degree

SplatForge supports spherical harmonics up to degree 3. You can change the rendering of the entire scene with the SH Degree dropdown. This can be useful if you want to get rid of reconstructed reflections that are camera angle dependent.

Update Sensitivity

Due to how Gaussian splats are rendered, they need to be sorted or they will look “wrong”. This sorting/updating is expensive but required for accurate visualization. You can adjust the sensitivity of how often this happens.

Rendering

Due to Blender’s Python API limits, Gaussian splat rasterization cannot be directly integrated into the Blender render/composite workflow (F12). Fortunately, there are easy workarounds.

Rendering without Blender objects

If your scene only consists of Gaussian splats, then you can directly animate your Gaussian splats/camera and render them either with Render Frame or Animation in the Render Gaussians section of the SplatForge tab. In this case, you can turn off external depth and external color composite.

Render Settings for Gaussian Only Scenes

The output path of the render is taken from Blender’s Output Blender Output Properties Icon Tab in the Properties Panel. The same you would adjust when outputting regular renders. SplatForge will always output the color images into the folder Your/Path/From/The/Settings/sf_color. It will also output metric scene depth into sf_depth.

Rendering with Blender objects

SplatForge needs to know what the Blender scene looks like when creating the Gaussian splat frame. Many modifiers, Geo Nodes, and textures/shaders will affect an object’s geometry. Therefore, SplatForge needs to know the final render shape of the scene not just the viewport representation. For accurate interactions, we need to export this in the form of the Z-Pass before we can render the Gaussian splats.

To do this, go in the Properties Panel to View Layer Blender View Layer Properties Icon and turn on Z in Passes -> Data.

Then go to the Compositing Workspace, Use Nodes and add a File Output node to the Depth of the Render Layers Node. Select the File Output Node and go into the node’s settings. There, change the base path to your desired location and the file format to OpenEXR (other file formats will corrupt the depth). Compositing Depth Setup

Now you can render your Blender scene as you are used to (e.g., with F12/Ctrl+F12) and Blender will output the Color/Combined Frames as well as the depth.

After the render is finished, go into Blender again and this time, in the SplatForge render settings, turn on Use External Depth and Use External Color Composite. If you rendered an animation, also tick the Is Image Sequence checkbox.

Render Settings with External Depth and Color

Set the two paths to where you rendered your Blender scene depth (path you set in the File Output) and Blender scene color (path you previously set in Output Blender Output Properties Icon). You can now hit the Render Frame or Animation button. SplatForge will render to the location set in Output Blender Output Properties Icon, so you may want to change it before rendering the Gaussian splats.

Note: Open the console before rendering to see an estimate of how long rendering the Gaussians will take and the current progress.

SplatForge will create a folder called sf_composite, which contains your rendered out Blender scene combined with Gaussian splats.

Note: Use Frame Offset to use a different numbered image than the current frame number.

Rendering with Blender objects and custom compositing

In the above scenario, we let SplatForge do the compositing for us while it was rendering the scene. There are use cases (e.g., color correction, adding camera effects like haze or similar) where you want to do the compositing yourself, either in external programs or Blender.

In this case, we still need to give SplatForge the depth (Use External Depth) but not the color. To get the depth, follow the instructions from Rendering with Blender objects

Depth Only Rendering Setup

If you want to composite in Blender, a typical setup looks like this Compositing Yourself Here we don’t actually need to be in the blend file of the original scene since we are using Blender just for compositing images. If you want to work with an animation you can also use Movie Clip Nodes as input. The depth images from the Blender render and the Gaussian Splat rasterization are only needed in advanced compositing cases.

Other Infos

Known Issues

Fixes are on their way!

Known quirks

Reloading

As the Gaussian objects “live” in the GPU VRAM, certain modifications will trigger auto-reloading.

Known Bugs

The shown Gaussian splat model in some of the screenshots is licensed under CC-BY-4.0 https://creativecommons.org/licenses/by/4.0 https://poly.cam/capture/0151341b-647f-4d29-884c-a21566bd4312