Transform T3D¶
Summary¶
The Transform T3D moves, rotates and scales the content of a volume within its bounds, as the Transform TOP does in 2D. Each output voxel samples the input at its inverse-transformed position, filtered by Input Smoothness; Extend decides what appears where that position falls outside the input. The default pivot is the volume's centre, and positions are fractions of each axis's extent (see Coordinates and units).
A second input makes the transform local: its red channel blends between the untransformed volume (0) and the transformed one (1) at each voxel. A gradient twists or shears one end of the volume only; a mask moves one region and leaves the rest.
Parameters - Transform Page¶
Aspect Correction Aspectcorrection - Rotates the input in undistorted space when the volume is not a cube, so rotation keeps its shape. Translate and Scale are fractions of each axis's extent either way. See Coordinates and units.
Transform Order Xord ⊞ - Order in which scale, rotate and translate are applied.
- 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 Rord ⊞ - Order of the rotations about X, Y and Z.
- 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 Tx Ty Tz ⊞ - Moves the content, as a fraction of each axis's extent: 0.1 moves it a tenth of the width along X and a tenth of the height along Y.
Rotate R1 R2 R3 ⊞ - Rotation of the content about each axis, in degrees, around Pivot.
Scale Sx Sy Sz ⊞ - Scale of the content along each axis, around Pivot.
Pivot Px Py Pz ⊞ - Pivot of rotation and scale, as a fraction of each axis's extent from the corner at the origin. The default 0.5 is the volume's centre.
Uniform Scale Scale - Uniform scale, multiplied with Scale per axis.
Extend Overlay Extend ⊞ - What the input returns where the transform samples outside it: Zero (transparent black), Hold (the edge voxel), Repeat or Mirror.
- Hold
hold - Zero
zero - Repeat
repeat - Mirror
mirror
Parameters - Common Page¶
Output Resolution Outputresolution ⊞ - Where the output's width, height and depth come from. With nothing connected to the first input the operator always uses Resolution, whichever option is set.
- Use Input
useinput- The first input's width, height and depth. - Custom
custom- The Resolution parameter.
Resolution Resolution1 Resolution2 Resolution3 ⊞ - Width, height and depth of the output in voxels. Used when Output Resolution is Custom, or when the first input is not connected. Memory is width × height × depth × bytes per voxel of the Pixel Format: 256³ at 16-bit float RGBA is 128 MiB.
Input Smoothness Inputfiltertype ⊞ - Filtering of the internal GLSL TOPs' input samplers, as TouchDesigner's Input Smoothness. Inputs are read at normalised coordinates, so this matters whenever the input and output resolutions differ or an input is transformed. Nearest Pixel returns voxels unblended; Interpolate Pixels is trilinear.
- Nearest Pixel
nearest - Interpolate Pixels
linear - Mipmap Pixels
mipmap
Passes Npasses - Has no effect on this operator: its shaders are compute shaders, which read the connected input on every pass, so extra passes repeat identical work. Leave it at 1.
Pixel Format Format ⊞ - Pixel format of the output. Use Input takes the first input's format. With nothing connected, Use Input resolves to 8-bit fixed (RGBA), which clamps values to 0–1 and quantises them to 1/255: set a float format for signed distances, densities above 1, velocities or anything else outside 0–1.
Bypass Bypass - Passes the first input through unchanged and skips the operator's work. With nothing connected the output is a single black voxel.
Version Version - T3D version of this operator. Read-only information; include it when reporting a problem.
Copyright Copyright - Author and licence information. Read-only.
Operator Inputs¶
- Input 0: Input
T3D_in1- The volume to transform. Sets the output resolution unless Output Resolution is Custom. - Input 1: Weight
T3D_in_weight- Optional. Its red channel blends, voxel by voxel, between the untransformed input (0) and the fully transformed one (1), so the transform can be applied to part of the volume or ramped across it.
Operator Outputs¶
- Output 0: Output
T3D_output- The transformed volume.
Performance¶
GPU time when the operator recooks: 0.028 ms at 64³, 0.024 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.