transformSequence

beta
Keywords:
  • apply

Applies one or more transform operators sequentially, to coordinates, field values, etc, with support for looping.

The first input is the primary input, which can either be an arbitrary operator which will get the transformed coordinates, or it can be a field whose values are transformed, or an SDF whose UV coordinates are transformed, etc.

The second and later inputs are the sequence of transforms that are applied to the primary. The second input gets the coordinates/values to be transformed, and the vector that it produces gets passed into the next input, and so on. The output of the last connected input is used as the final value/coordinates.

Many transform filters support a mode where they have no attached primary input, in which case they act as fields producing their coordinates as a vector. But for transform filters that require a primary input, a positionField can be attached to do the same thing.

The looping feature allows this operator to behave like a custom-built version of iteratedTransform, repeating the sequence of transformations multiple times.

Parameters

Name Description Regular Handling Read-Only Handling
Enable
Apply To

What the transforms should be applied to.

Baked Baked
  • Coordinates: The transforms are applied to coordinates which then get passed to the primary input. This is equivalent to how common transform operators like `rotate` behave.
  • SDF UV: The primary input is first called with un-transformed coordinates to produce an SDF result, then the transform sequence is applied to the primary UV coordinates of that result.
  • SDF Secondary UV: Similar to primary UVs but for the secondary UVs that are used in cases where two SDFs are blended.
  • UV In Material: The transforms are applied to the UVs included in the material context that gets passed into the primary input, which would typically be something like a `diffuseContrib`.
  • Field Values: The primary input is first called with un-transformed coordinates to produce a vector. Then the transform sequence is applied to that vector, which then gets produced as an output.
Reverse Order

Whether the transforms should be applied in reverse order, last to first.

Enable Loop

Whether the transforms sequence should be applied multiple times, similar to an iteratedTransform.

Baked Baked
Iterations

How many times to apply the transform sequence.

Runtime Baked

Inputs

  • Primary Input: (required)
    • Coordinate Types: float vec2 vec3 vec4
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: float vec4 Sdf Volume Ray Light Particle
    • Supports Variables: step normstep
    • Supports Variables From Inputs: transform1 transform2 transform3 transform4 transform5 transform6
  • Transform 1: (optional)
    • Coordinate Types: float vec2 vec3 vec4
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: vec4
    • Supports Variables: step normstep
  • Transform 2: (optional)
    • Coordinate Types: float vec2 vec3 vec4
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: vec4
    • Supports Variables: step normstep
    • Supports Variables From Inputs: transform1
  • Transform 3: (optional)
    • Coordinate Types: float vec2 vec3 vec4
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: vec4
    • Supports Variables: step normstep
    • Supports Variables From Inputs: transform[1-2]
  • Transform 4: (optional)
    • Coordinate Types: float vec2 vec3 vec4
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: vec4
    • Supports Variables: step normstep
    • Supports Variables From Inputs: transform[1-3]
  • Transform 5: (optional)
    • Coordinate Types: float vec2 vec3 vec4
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: vec4
    • Supports Variables: step normstep
    • Supports Variables From Inputs: transform[1-4]
  • Transform 6: (optional)
    • Coordinate Types: float vec2 vec3 vec4
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: vec4
    • Supports Variables: step normstep
    • Supports Variables From Inputs: transform[1-5]

Variables

  • Step Index:
  • Normalized Step (0..1):