GeoNormals
The GeoNormals node creates or rebuilds mesh normals. Subdivision surfaces don't generally need normals, but there are occasional cases where creating or modifying normals is beneficial, such as when shaders need detailed lighting information to render correctly.
Tip: GeoNormals's classic 3D system equivalent is the Normals node.
Inputs and Controls
Connection Type |
Connection Name |
Function |
Input |
lookat |
An optional input that points all normals at the object connected to this input and adds the Normal xyz values to that position. Note: Action must be set to lookat for this input to work as expected. |
unnamed |
The previous stage in the scene you want to affect. |
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
GeoNormals |
|||
Mask |
mask_patterns |
{lastmodified} |
Specifies the mask pattern to match the prim names to affect. The default mask, {lastmodified}, adds or adjusts the normals for whatever was changed by the previous node. A simple way to think of it is that {lastmodified} affects the node above. You can use standard glob-style variables, such as /*, to create masks or use individual prim names separated by spaces. For example, /GeoCube1 /GeoCard3 applies the transform to only those prims. Tip: You can also use the cog menu, the Viewer picker, or drag and drop paths from the Scene Graph to create masks. |
Action |
action |
unchanged |
Determines what happens to any normals in prims selected by the Mask control: • unchanged - any normals specified in the Attribute Name are unaffected. • set - assigns normals specified in the Attribute Name to a constant value set by the Normal control's xyz values. • build - rebuild each normal specified in the Attribute Name based on the surrounding vertices. The Angle Threshold determines the break angle where two faces no longer constitute a smooth surface. • lookat - points all normals specified in the Attribute Name at the object connected to the lookat input and adds the Normal xyz values to that position. • delete - removes the normals specified in the Attribute Name from all geometry groups. |
Invert |
invert |
off |
Inverts the added or rebuilt normals. Note: The Invert control affects all actions, even unchanged. |
Normal |
normal |
0, 0, 0 |
When Action is equal to set or lookat, assigns a constant xyz value to the normals specified in the Attribute Name. Note: The Normal xyz values are added to the lookat position. |
Angle Threshold |
threshold |
45 |
When Action is set to build, sets the angle between two faces at which vertex normals are broken, which creates sharp edges under lighting. A threshold of 0 means all faces are flat, and 180 means all faces are smooth. Note: Angle Threshold only affects vertex normals. |
Attribute Name |
N_attrib_name |
primvars:normals |
Sets the name of the normal attribute affected by this node. |