SplatRender
The SplatRender node allows you to render Gaussian Splats, with controls to adjust colorspace, output AOVs, and motion blur.
To learn more about the workflow, see Rendering Gaussian Splats.
Inputs and Controls
|
Connection Type |
Connection Name |
Function |
|
Input |
cam |
An optional camera input. The scene is rendered from the perspective of this camera. If the camera input is not connected, SplatRender uses a default camera positioned at the origin and facing in the negative Z direction. |
|
scene |
Connect to the scene you want to render. |
|
|
bg |
An optional background input. This can be used to composite a background image into the scene and to determine the output resolution. If not used, this defaults to root.format or root.proxy_format defined in the ProjectSettings. If this input contains a depth channel, SplatRender considers it when doing Z-buffer and Z-blending calculations. |
|
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
|
SplatRender Tab |
|||
| Format | format | root.format | Sets the format to render out in Nuke. |
| Splats | splats_mask |
Custom {isa:ParticleField_3DGaussianSplat} |
Specifies the mask pattern to target the splats you want to include in the render. This defaults to Custom: {isa:ParticleField_3DGaussianSplat} which targets any splats in the scene. You can also use standard glob-style variables, such as /*, to create masks. Default - Injected/All Roots - selects the default prim(s) for the node. The default will be the injected mask prim paths if there is an upstream node with this. Otherwise the default mask for this node type is evaluated. All roots - selects the top level Xform(s) in your scene. Last modified - selects whatever the last node modified was. All Cameras - selects all Cameras in your scene graph. All Lights - select all lights in your scene graph. All Meshes - selects all meshes in your scene graph. Custom - sets a custom selection of prims that exist in your scene graph. |
| Colorspace | output_colorspace | ACEScg | Select a colorspace to apply to the elements targeted in the mask. |
| Output AOVs | |||
| Channels | channels | rgba | Specifies channels for render. You can also use the checkboxes on the right to select individual channels. |
| Depth (enable) | N/A | on | Enable depth channel named to the right. Turning this off is the same as setting the channel to None. |
| Depth (channels) | depth_channels | depth.Z | Specifies depth channels for render. |
| 1/Z | one_over_z | on |
on: Output classic-style Nuke Z which is l/Z-distance. ‘No Object’ is black 0.0 and the Z value *decreases* the further from camera. This is convenient to use in a compositor because it looks and acts much like a color channel and can be directly viewed. It will also pass through a filter without creating illegal ‘nan’ floating-point values. Note that 1/Z is -NOT- normalized Z. 1/Z is easily converted back to absoluteZ-distance by using another 1/Z. Normalizing involves scaling the Z by some near/far range and thus destroys the scene- space scale of the distance value. off: Output absolute Z-distance where ‘No Object’ = inf and the Z value increases the further from the camera. This is the world-space distance from the camera to the object. |
| Alpha Threshold for Depth | alpha_threshold_for_depth | 0.5 | Set the depth at the sample where this alpha value is reached. A value of 0 means the depth of the closest sample will be set, while a value of 1 means the depth is set at the sample where the pixel is fully opaque. |
| Motion Blur | |||
| Motion Samples | motion_samples | 0 |
The number of samples used to interpolate motion blur. A sample count of 0 effectively disables motion blur while a count of 1 or more samples the splats at multiple times over the shutter interval to create motion blur. NOTE: time samples are evenly spaced over the shutter interval, in contrast to ScanlineRender’s stochastic sampling. |
| Shutter Length | shutter | 0.5 | Enter the number of frames the shutter stays open when motion blurring. For example, a value of 0.5 corresponds to half a frame. |
| Shutter Offset | shutteroffset | start |
Select when the shutter opens and closes in relation to the current frame value when motion blurring: • centered - to center the shutter around the current frame. For example, if you set the shutter value to 1 and your current frame is 30, the shutter stays open from frame 29.5 to 30.5. • start - to open the shutter at the current frame. For example, if you set the shutter value to 1 and your current frame is 30, the shutter stays open from frame 30 to 31. • end - to close the shutter at the current frame. For example, if you set the shutter value to 1 and your current frame is 30, the shutter stays open from frame 29 to 30. • custom - to open the shutter at the time you specify. In the field next to the dropdown menu, enter a value (in frames) you want to add to the current frame. To open the shutter before the current frame, enter a negative value. For example, a value of -0.5 would open the shutter half a frame before the current frame. Nuke has always defaulted to start and going forward in time, so at a given frame the shutter is open. However often it can be useful to change this to end when you want a motion blur trail to an impact point on a specific frame. |
| Shutter Bias | shutter_bias | 0 | Biases shutter towards shutter close or shutter open for stylized motion blue. Negative values bias towards shutter open and positive values bias towards shutter close. |
| Scene Time Offset | scene_time_offset | 0 |
Shifts the time frame of input geometry, lights and cameras while keeping the renderer at the same output frame. This means you can slip your render in time (with subframe accuracy) without affecting the camera or the objects in the stage, which can be really helpful when you are trying to slip the camera to get vector motion blur aligned properly. |
| Camera Xform | camera_motion_blur | on | Enables or disables camera motion blur. |
| Object Xform | object_motion_blur | on | Enables or disables object motion blur. |
| Deep | |||
| Deep Mode | deep_mode | Combined |
Combined: Merge all splat samples into a single deep sample using the closest depth. Each pixel will have one deep sample per motion blur time sample. Separate: Keep each splat sample as a separate deep sample, preserving the splat’s original depth. Each pixel will have one deep sample per splat sample multiplied by the number of motion blur time samples. WARNING: motion blur will not correctly render as averaged samples in this setting! |