Skip to content

Voltrace T3D

Summary

The Voltrace T3D path-traces a volume. For every pixel of its Render TOP it traces Iterations light paths per frame through the density, scattering at random in all directions, and gathers the light of the environment and of rectangular area lights where the paths lead. The frames accumulate: the image converges from noise to a smooth result while nothing changes, and restarts on any change of a parameter, the input, a light or the camera.

The medium. RGB of the input, times Density Scale and Absorption per channel, attenuates light along each step; negative values emit. Scattering Coefficient sets how readily light scatters, inversely: larger values scatter less. Steps are Step Size Scale voxels on average, randomised so the result does not depend on the step size. A path that is still inside after Max Steps, or has lost all but Transmittance Threshold of its light, ends as opaque black: Max Steps has to cover the volume (about twice its resolution for dense, scattering volumes).

Lights. An Environment image (latitude-longitude) lights the volume from all directions and, with Render Env, forms the background. The Lights blocks add textured rectangles, one- or two-sided. A path gathers a light only when a scattered direction happens to hit it, so small lights converge slowly: prefer large lights or an environment.

In the scene. The operator draws a full-frame image into its Render TOP, from that Render TOP's camera (or Camera), with thin-lens depth of field from Aperture and Focal Length. It replaces the whole frame rather than compositing into the scene, so render geometry separately and combine the images. The Render TOP must include the operator in its Geometry.

The render pass samples its inputs with extend mode Zero: the density fades over the last half voxel at the box's faces, and environment lookups right at the image's seam and poles blend slightly with black.

Parameters - Voltrace Page

Reset Reset - Restarts the accumulation. Pulse

Render TOP Rendertop - The Render TOP that draws the operator. Its camera and resolution are used, and it must include the operator in its Geometry. The path-traced image covers its whole frame. TOP · default render1

Camera (optional) Camera - A camera to trace from instead of the Render TOP's. Object

Lock Input Lockinput - Holds the current density, so changes to the input neither show nor restart the accumulation. Toggle · default Off

Iterations Iterations - Paths per pixel per frame. The image averages every frame's paths until something changes. Int · default 1

Max Steps Maxsteps - March steps per path. A path that is still inside the box after this many steps ends as opaque black, so it must cover the volume: about 2 × the resolution at Step Size Scale 1 for dense, scattering volumes. At 0 nothing is marched. Int · default 0

Step Size Scale Stepsizescale - The march step, in voxels. Each step's length is randomised between 0.5 and 2 times it, which keeps the result independent of the step size (measured); larger steps are faster and noisier. Float · default 1

Transmittance Threshold Transmittancethreshold - A path ends as opaque black once less than this share of its light gets through. Float · default 0.01

Temporal Smoothing Temporalsmoothing - Blends each frame with the previous output, 0 to 1. The accumulation restarts on any change; smoothing keeps motion from looking like one frame of noise, at the cost of trails. Float · default 0

Density Scale Densityscale - Multiplies the density. Float · default 10

Scattering Coefficient Scatteringcoefficient - Controls how readily light scatters. The chance of scattering at a step is about 10 × the step's optical depth ÷ this value, so larger values scatter less and let light through; the chance saturates in dense regions. Float · default 1

Absorption Gammacolorr Gammacolorg Gammacolorb ⊞ - Absorption per colour channel: multiplies the density's red, green and blue (with Density Scale). A channel absorbed less lets that colour through. RGBA × 3 · default 1

Aperture Aperture - Lens aperture for depth of field. 0 is a pinhole, everything sharp. Float · default 0

Focal Length Focallength - Sets the plane in focus: it lies at half this value from the camera, in world units (the shader receives Focal Length / 2). Float · default 5

Input Smoothness Inputfiltertype ⊞ - Filtering of the density between voxels. Menu · default Interpolate Pixels

  • Nearest Pixel nearest
  • Interpolate Pixels linear

T3D Transform Reference Transformreference - An operator that exports the mapping between the volume and world space (geo_to, point_cloud, metaball, sprinkle, advect): the volume is drawn where that operator's source was. COMP

Parameters - Lights Page

Environment Environment - An equirectangular (latitude-longitude) image lighting the volume from all directions. Paths that leave the volume take its colour. TOP

Render Env Renderenv - Shows the environment as the background. Off, the background is transparent. Toggle · default Off

Render Lights Renderlights - Shows the light rectangles themselves to the camera. Toggle · default Off

Lights Lights - Rectangular area lights, one block each. A scattered path gathers a light's colour when its new direction hits the rectangle; small lights are found rarely and converge slowly. Sequence · default 0

Color Lights0colorr Lights0colorg Lights0colorb ⊞ - Colour of the light. RGBA × 3 · default 1

Dimmer Lights0dimmer - Intensity multiplier. A single light at 0 turns lighting from lights off. Float · default 1

Transform Order Lights0xord ⊞ - Order of scale, rotate and translate for the light. Menu · default Scale Rotate Translate

  • Scale Rotate Translate srt
  • Scale Translate Rotate str
  • Rotate Scale Translate rst
  • Rotate Translate Scale rts
  • Translate Scale Rotate tsr
  • Translate Rotate Scale trs

Rotate Order Lights0rord ⊞ - Order of the light's rotations. Menu · default Rx Ry Rz

  • Rx Ry Rz xyz
  • Rx Rz Ry xzy
  • Ry Rx Rz yxz
  • Ry Rz Rx yzx
  • Rz Rx Ry zxy
  • Rz Ry Rx zyx

Translate Lights0tx Lights0ty Lights0tz ⊞ - Position of the light's centre in world space. Float × 3 · default 0, 0, 1

Rotate Lights0rx Lights0ry Lights0rz ⊞ - Rotation of the light, in degrees. Float × 3 · default 0

Scale Lights0sx Lights0sy Lights0sz ⊞ - Size of the rectangle along each axis. Float × 3 · default 1

Uniform Scale Lights0scale - Uniform scale of the rectangle. Float · default 1

Texture Lights0texture - An image on the light: its colour at each point of the rectangle multiplies the light. TOP

Bi-Directional Lights0bidirectional - Emits from both sides of the rectangle. Off, only from its front. Toggle · default On

Version Version - T3D version of this operator. Read-only information; include it when reporting a problem. Str

Operator Inputs

  • Input 0: Density T3D_in_density - The volume to render. Its RGB is the density per channel (tinted by Absorption); negative values emit light. The box is one unit wide, with the volume's proportions.

Performance

GPU time when the operator recooks: 0.197 ms at 64³, 0.203 ms at 128³, all of its passes summed (GeForce RTX 4090, TouchDesigner 2025.33230). An operator whose inputs and parameters are unchanged does not recook and costs nothing.

The cost is paid every frame the Render TOP renders: pixels × Iterations × the steps a path takes, which grows with the density's resolution, Max Steps and how much the medium scatters.