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:
- Look for vector user data named "tangent" and "bitangent".
- Use the UV derivatives.
- 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).