The Edit Normals modifier gives you explicit and procedural, interactive control over each of an object's vertex normals. It is meant to be used primarily with mesh objects destined for output to game engines and other 3D rendering engines that support specified normals. The results are visible in the viewports and in rendered images.
The orientation of a vertex normal affects how neighboring surfaces reflect light. By default, normals are set so that reflection of light in 3ds Max follows the rules of real-world physics: The angle of reflection equals the angle of incidence. But by reorienting vertex normals, you can set the angle of reflection to be anything you want. The Edit Normals modifier lets you specify vertex normals' directions, combine and separate them, change the type, and copy and paste values among normals.
Three types of normals are available with the Edit Normals modifier:
By default, each vertex has as many normals as the number of unique smoothing groups used by surrounding polygons. For example, each side of a box uses a different smoothing group by default, so each vertex at which three sides meet (typically a corner) has three different normals: one perpendicular to each of the three sides. On the other hand, a sphere uses a single smoothing group, so each of its vertices has one normal, perpendicular to the average facing of the polygons that share it. By default, unspecified normals are displayed as blue.
Following are two instances in which a 3D artist creating content for output to a game engine might find practical use for the Edit Normals modifier:
Please observe the following notes and precautions when using the Edit Normals modifier:
The Edit Normals modifier is useful mainly at the sub-object level, Normal, so this level is active by default as soon as you apply the modifier to an object. At this point, you can see the normals as lines emanating from the mesh vertices, select and transform them, copy and paste them, and change their settings on the Modify panel.
You can transform normals only by moving and rotating them, not by scaling them. However, moving a normal effectively rotates it, so in most cases you'll have better control by using the Rotate tool.
The following command reference includes keyboard shortcuts, which are available when the Keyboard Shortcut Override Toggle (on the toolbar) is on. In addition, you can use +0 (zero) to access the object level of the modifier.
Lets you specify how to select normals in the viewport:
Of course, with all of these methods, you can also use region selection to select multiple normals at once.
When on, selection of sub-objects affects only those facing you. When off (the default), you can select any sub-object(s) under the mouse cursor, regardless of their visibility or facing. If there are more than one sub-object under the cursor, repeated clicking cycles through them. Likewise, with Ignore Backfacing off, region selection includes all sub-objects, regardless of the direction they face.
Enables the display of handles, which are small squares at the end of each normal. Turn this on to make it easier to select normals.
Specifies the length of each normal. This is for display purposes only; the length has no effect on the normal's functionality.
Combines all selected normals at each vertex into a single specified normal . By default, with Unify/Break To Average off, Unify sets the direction for each unified normal to be perpendicular to the averaged surface at that point. With Unify/Break To Average on, Unify sets the direction be the average of the combined normals at each location.
Separates all selected, unified normals into their original components. With Unify/Break To Average off, Break orients each separated normal perpendicular to its respective face, thus splaying out the normals at each vertex if the connected faces are at different angles (as with a sphere). With Unify/Break To Average on, each separated normal uses the orientation of the original normal.
Break converts any selected normals to specified normals.
Determines normal orientation as the result of a Unify or Break operation. See the descriptions above for details. Default=off.
These controls give you different methods of averaging vertex normals; that is, setting them all to the same absolute angle, which is the average of their combined angles.
Sets selected normals to the same absolute angle: the average angle of all of them. If Use Threshold is on, averages only normals whose distance from each other is less than that specified in the Average Threshold spinner (to the button's right).
Activates the Average Threshold setting, and causes the Selected to average only normals whose distance from each other is less than the specified value.
Enters an interactive mode in which you specify pairs of normals to average. Click Target, and then select a normal. When the mouse cursor is over a normal, it changes to a + symbol. After clicking the first normal, a rubber-band dashed line connects the normal to the mouse cursor. Click a second normal to average the angles of the two normals.
The Pixels spinner next to the Target button sets the maximum distance in screen pixels between the mouse cursor and the target normal.
Copies the selected normal's orientation to the copy buffer. Available only when a single normal is selected.
Use Copy Value and Paste Value to apply a normal's orientation to one or more others within the same Edit Normals modifier. You cannot copy normals between modifiers.
Applies the paste buffer contents to the current selection. Available only after Copy Value has been used to place a normal's orientation in the copy, and one or more target normals are selected.
Converts selected normals to specified status.
Causes all selected normals to revert to unspecified status, and returns them to their initial, calculated positions. Also breaks apart unified normals.
Converts selected normals to explicit status; set to particular values.
When one normal is selected, shows its ID number. When 0 or more than one normal is selected, shows the number of normals selected.