Houdini 21.0 Nodes Geometry nodes

Bake GSplat geometry node

Converts to Houdini’s GSplat Attributes.

On this page
Since 21.0
This feature is still under development. The current functionality is unfinished and subject to change, and may have thin or no documentation. Please bear this in mind when using it.

Gaussian Splats are a type of augmented point cloud that allows for the efficient creation and representation of highly complex environments.

This node provides a way to convert the common representation in literature to one that works with Houdini’s GSplat rendering.

The defaults should allow the common .ply files in literature to be converted to Houdini-compatible Gaussian Splats.

The input attributes can be either in a vector-form or an expanded form. The vector form of, for example, f_dc will be a 3-float f_dc attribute. The expanded form will be f_dc0, f_dc1, and f_dc2.

Input Attributes

f_dc

3 floats. Constant term for color.

rot

4 floats. Quaternion of orientation.

opacity

1 float. Alpha value requiring sigmoid conversion.

scale

3 float. Local axis sizes, requiring log conversion.

f_rest

45 floats. The Spherical Harmonic coefficients.

Ouptut Attributes

Cd

3 floats. Color.

scale

3 floats. Local axis scales.

orient

4 floats. Normalized quaternion of orientation

restorient

4 floats. Original orient, so successive transform operations can be tracked.

GS_Alpha

1 float. Opacity, and also used as a flag that these are Gaussian Splats.

GS_SPH_R

16 floats. The spherical harmonic terms for the red component.

GS_SPH_G

16 floats. The spherical harmonic terms for the green component.

GS_SPH_B

16 floats. The spherical harmonic terms for the blue component.

Data processing

When you reconstruct a model with Gaussian Splats, you need a set of photos that shows the model from different perspectives. Then you extract the original camera data from the images to get data like position, color, orientation and size. What you get is a point cloud. Up to this point, the method is a photogrammetry process. The special thing with Gaussian Splats is that this method optimizes the distribution of the points in 3D space. The algorithm tries to find the best distribution with the help of an iterative training.

Depending on the number and resolution of images, the training pass can take very long. In most cases the process is executed on the GPU, so hardware aspects also play an important role.

Note

Houdini is not capable of creating or optimizing point clouds and you need a special external application.

After the optimization you have a point cloud that contains all necessary attributes and information. You can then save the points to a PLY file.

Setup

The import and extraction process is done inside a SOP network. This can be on Houdini’s obj level. The File SOP can read PLY files. The Bake GSplat Splat SOP, on the other hand, extracts and prepares the contained information for use with Karma XPU.

Then you import the output of the Bake GSplat SOP to Solaris, for example with a SOP Import LOP. Another way is to do the SOP part directly on the Solaris stage inside a SOP Create LOP.

To render the reconstructed object you must be on the stage level. Go to the viewport’s first dropdown menu (set to Persp by default) and choose Karma XPU. Other delegates like Storm or Karma CPU will only show the colored point cloud, not the reconstructed object. After a couple of moments you should see the result.

Parameters

Linearize Color

The Cd attribute is expected to be scene:linear in Houdini, but often has been learned in sRGB; this option will linearize the colours.

Compute GSplat

Create the common GSplat attributes. The presence of these will trigger GSplat rendering in Houdini.

Compute SPH Coefficients

Gaussian Splats can be more than a simple ellipsoid, but have higher order, view dependent, lighting information. This option adds these extra terms along with a restorient to ensure any transformations can be handled.

Delete Original Attributes

The attributes used from the source are deleted leaving only the Houdini specific attributes.

Disable Shadow Casting in Karma

Usually Gaussian Splats do not cast shadows, and adding shadow casting will make them very slow. This option adds a special detail attribute that will cause Karma to not cast shadows from these.

Geometry nodes