Transform, advect, and warp fields
Special nodes are available to transform fields, as well as advect and warp (or deform) them. You can think of these nodes as modifying the input positions at which a field will be sampled.
Transform fields
Transforming a field moves it so that positions are sampled at an offset from where they would normally be sampled. It is equivalent to applying the inverse transformation to the positions and then sampling the original field at the modified positions.
transform_fieldapplies afloat4x4orfloat3x3transformation to the field.scale_fieldscales the field by the specified factor.rotate fieldrotates the field by the specified quaternion.translate_fieldtranslates the field by the specified vector.
Representing rotations as fields
Because fields do not support float4 values, you cannot use fields to represent rotations as quaternions or axis-angle values. However, you can use vector fields to represent rotations as "rotation vectors". Rotation vectors are 3D vectors where the direction represents the axis of rotation, and the length of the vector represents the angle in radians.
There are a few utility nodes to help you convert between rotation vectors and other representations:
euler_to_rotation_vectorquaternion_to_rotation_vectorrotation_vector_to_quaternion
For other types of rotation, you can convert them to quaternions first before converting them to rotation vectors.
Advect fields
Use advect_field to transform a given field along a vector field representing velocities across space. This is especially useful for making fields flow during simulations.
Warp fields
The warp_field node deforms a given field by a vector field that remaps its values to new positions. It is equivalent to sampling the warp field first to find new positions, and then using the new positions to sample the original field.
