iteratedTransform

iteratedTransform

Performs a transform multiple times, optionally reflecting across axes in between the steps.

This can be used to create KIFS fractals (kaleidoscopic iterated function systems).

Parameters

Name Description Regular Handling Read-Only Handling
Enable
Iterations
Reflect Mode Runtime Baked
  • None:
  • XYZ:
  • X:
  • Y:
  • Z:
  • XY:
  • YZ:
  • ZX:
Enable Translate
Enable Rotate
Enable Scale
Enable Pivot
Translate
Rotate XYZ
Scale
Uniform Scale
Pivot
Transform Order
  • Scale Rotate Translate:
  • Scale Translate Rotate:
  • Rotate Scale Translate:
  • Rotate Translate Scale:
  • Translate Scale Rotate:
  • Translate Rotate Scale:
Rotate Order
  • Rx Ry Rz:
  • Rx Rz Ry:
  • Ry Rx Rz:
  • Ry Rz Rx:
  • Rz Rx Ry:
  • Rz Ry Rx:
Scale Type
  • Separate XYZ:
  • Uniform:
Custom Code
Float Param 1
Float Param 2
Float Param 3
Float Param 4
Vec Param 1
Vec Param 2
Vec Param 3
Vec Param 4
Iteration Type
  • None:
  • Step Index:
  • Step Ratio:
Enable Accumulate
Combine

The type of combination operation to perform.

  • Simple Union:
  • Simple Intersect:
  • Simple Difference:
  • Smooth Union:
  • Smooth Intersect:
  • Smooth Difference:
  • Round Union:
  • Round Intersect:
  • Round Difference:
  • Chamfer Union:
  • Chamfer Intersect:
  • Chamfer Difference:
  • Stair Union:
  • Stair Intersect:
  • Stair Difference:
  • Column Union:
  • Column Intersect:
  • Column Difference:
  • Simple XOR:
Swap Inputs

Swaps the order of the inputs. This is only relevant for “diff” modes.

Blend Radius

The size of the blending region.

Blend Number

For stair and column modes, this controls how many steps are used in the blending regions.

Blend Offset

Inputs

  • definition_in: (required)
    • Coordinate Types: vec2 vec3
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: float vec4 Sdf
    • Supports Variables: step normstep
  • Rotate Field: (optional) Optional field used to control rotation. The field is evaluated before each iteration, and the resulting value is added to the `Rotate` parameter. If the field uses 2D/3D coordinates, the current position is used. If the field uses 1D coordinates, it is passed `i / (n-1)`, where `i` is the loop iteration, and `n` is the total number of iterations.
    • Coordinate Types: vec2 vec3
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: vec4
    • Supports Variables: step normstep
  • Translate Field: (optional)
    • Coordinate Types: vec2 vec3
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: vec4
    • Supports Variables: step normstep
  • Scale Field: (optional)
    • Coordinate Types: vec2 vec3
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: float vec4
    • Supports Variables: step normstep
  • Custom Transform Field: (optional)
    • Coordinate Types: vec2 vec3
    • Context Types: Context MaterialContext CameraContext LightContext RayContext ParticleContext VertexContext PixelContext
    • Return Types: float vec4
    • Supports Variables: step normstep

Variables

  • step:
  • normstep: