In Katana, you can specify the surface orientation (normal direction) of objects using the PrmanObjectStatements node.
The handedness of a coordinate system is referred to as its orientation. The initial "camera" coordinate system is left-handed: x points right, y point up, and z points in. Transformations, however, can flip the orientation of the current coordinate system. An example of a transformation that does not preserve orientation is a reflection.
Similarly, geometric primitives have an orientation, which determines whether their surface normals are defined using a right-handed or left-handed rule in their object coordinate system. RfK assume right-handed orientation: x points right, y point up, and z points out. Positive rotation is counterclockwise. If a primitive is inside-out, its normal will be computed so that it points in the opposite direction. This has implications for culling, shading, and solids (nested dielectrics for example). The outside surface of a primitive is the side from which the normal points outward; the inside surface is the opposite side. The interior of a solid is the volume that is adjacent to the inside surface and the exterior is the region adjacent to the outside.
If the current orientation is not the same as the orientation of the current coordinate system, geometric primitives are turned inside out, and their normals are automatically flipped.
Below the teapot create macro is rendered with sides = 1, meaning only single sided. Black teapots indicates the object normals are inward facing, by default PxrSurface does not shade the inside of non-transmissive objects.
- Reverse - Reverses from whatever the current coordinate system is regardless of its selection.
- 2 - default, means both sides are renderable/visible
- 1 - only the outward normal facing side is rendered/visible. Useful for backface culling visibility tricks.