The Edit Normals modifier gives you explicit and procedural, interactive control over each vertex normal in an object.
Edit Normals is intended for use 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.
Warning: Don't apply an Edit Normals modifier to the low-res object used in
normal bump projection. Normal bump projection relies on the low-res object having standard normals, and altering them causes normal bump maps to have unpredictable results.
Types of Normals
Three types of normals are available with the Edit Normals modifier:
-
Unspecified: These are the normals that the modifier derives from smoothing groups and initially assigns to the modified mesh vertices.
3ds Max calculates the direction of an unspecified normal based on the average facing of all polygons to which it belongs that are in its smoothing group.
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.
-
Specified: These are normals that are intended for use by particular corners of particular faces, without regard to smoothing groups. For instance, you might create a box, apply Edit Normals, select a group of normals at a particular vertex, and click Unify. Now those three faces are told specifically to use that one unified normal, and they ignore their smoothing groups at that vertex. But specified normals are not set to
explicit values; they ignore smoothing groups, but they're still based on the face normals of the faces that use them. Specified normals are displayed as
cyan.
-
Explicit: These are normals that are set to particular values. For instance, if you use the Move or Rotate command to change a normal from its default value, it has to be made explicit, so it won't be recomputed based on the face normals. Explicit normals are
green by default.
Note: Explicit normals are also considered to be specified.
Note: A selected normal is always
red. When not selected, its color indicates as type, as noted above. You can find the
customizable color entries for these normal types in the Elements
Geometry list. The three entry names are:
- Normals - Explicit
- Normals - Specified
- Normals - Unspecified
Usage Examples
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:
- An artist is working on a knight with a chrome shield. The chrome shield has a DirectX cube map
shader on it so that the artist can see the reflections in the viewport. The artist would like to make the reflections in the shield look "dented" by fights in battle. The artist applies the Edit Normals modifier to the shield object. He then adjusts several of the normals slightly, viewing the results in real time, thanks to the pixel shader. He then exports the character with a custom export tool designed to handle normal information.
- A game artist is working on an object that will explode in the game. To do this, the game engine requires the object to be split into multiple objects: the broken pieces that will result from the explosion. When the object is broken apart in
3ds Max (using Slice), the normals are pointing in different directions; this makes it easy to see the seams between the broken pieces. To fix this, the artist selects all the pieces of the breaking object and applies the Edit Normal modifier to all of them at once. She then selects the normals across the seam and unifies them so they are pointing in the same direction. The artist then exports to the game engine.
Usage Notes
Please observe the following notes and precautions when using the Edit Normals modifier:
- Edit Normals supports both poly objects (polygon-based) and mesh objects (triangle-based). If you apply Edit Normals to a poly object, the result is a poly object. If you apply Edit normals to any other object type, the result is a mesh object.
- Edit Normals also supports embedding of edited-normal data when collapsing the stack and when converting from poly object to mesh object, and vice versa. If you apply Edit Normals to a primitive object, adjust the normals, and then collapse the stack (or convert to Editable Mesh or Editable Poly),
3ds Max embeds any changes to the normals in the mesh object, including selection status. You can subsequently regain access to embedded, edited normals in a collapsed object by applying another Edit Normals modifier.
- Any modifiers that can change topology will remove changes applied to the normals with the Edit Normals modifier. These include MeshSmooth, Tessellate, Slice, Mirror, Symmetry, Face Extrude, and Vertex Weld. This also means that the Normal modifier, which can flip face orientations, does not support the edited normals. Turn To Poly can be used to modify face topology by joining triangles into polys, so it also strips off the edited normals.
- All compound objects strip off the edited normals from their operands.
- The good news: All deformation and map modifiers preserve the normals. For instance, if you apply a Bend, the normals should be bent along with the geometry. Map modifiers, such as Unwrap UVW, won't affect the normals at all.
- However, a few geometric modifiers do not fully support the new normals. They won't strip them away, but neither will they correctly deform any explicit normals. Modifiers in this category include Push and Relax.
- Like Mesh Select and Poly Select, Edit Normals “inherits” attributes from below it in the stack. For example, if you create a box, apply an Edit Normals modifier, change some normals, and then apply a second Edit Normals modifier, the top Edit Normals "inherit" the user-specified normals from the pipeline, just as Mesh Select adopts the current selection when you apply it. But the top Edit Normals modifier ignores any subsequent changes to the original Edit Normals modifier, just as Mesh Select ignores any changes made to the selection below it in the stack after it is applied.
- The
Weighted Normals modifier generates explicit normals when applied to a mesh. If you wish to further edit these normals, you have to apply the Edit Normals modifier to manually adjust the normals.