Houdini 22.0 Nodes Geometry nodes

Bake GSplats geometry node

Converts to Houdini’s GSplat Attributes.

On this page
Since 21.0

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.

Note

Convert .ply files with this node BEFORE attempting to transform or otherwise manipulate them. This node will convert to attribute types that know how to transform properly.

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_dc_0, f_dc_1, and f_dc_2.

Input Attributes

f_dc

3 floats. Constant term for color.

rot

4 floats. Quaternion of orientation, but in wxyz order.

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.

Output 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

Use the ML Train GSplats TOP to convert geometry or images into GSplats. Note that images must have their locations registered first.

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 GSplats SOP, on the other hand, extracts and prepares the contained information for use with Karma XPU.

Then you import the output of the Bake GSplats 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 GSplats

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