Share

Space Transform - Arnold for Houdini

Convert the input coordinates from one space to another:

  • World: Absolute world coordinates.
  • Object: Local coordinates.
  • Camera: Defined such that +x is right, +y is up and looks down -z.
  • Screen: Defined such that +x is right, +y is up and looks down +z.
  • Tangent: Defined by a tangent reference frame that is built based on the input tangent vector and the shading normal. If tangent is 0, the shader attempts the following actions to build the frame:
  1. Look for vector user data named "tangent" and "bitangent".
  2. Use the UV derivatives.
  3. Build its own local frame.

Input is interpreted according to type when transformed:

  • Point: input is a position in space.
  • Vector: input is a direction, the translation part of the transformation is left out.
  • Normal: input is a normal, transformed by the inverse transpose of the transform to preserve its angle to the surface.

The input channels can be shuffled (order) and inverted (invert_x, invert_y, invert_z ). Also, they can be remapped to the [-1, 1] range, for instance when the input is an 8-bit map to be used as signed normal or vector displacement map.

The output vector is scaled by scale and can be set as the shading normal (set_normal).

Was this information helpful?