Skip to main content

Vertex Normals

Learn how vertex normals affect geometry shading and edge behavior

Written by Elaine

If your model file is encoded with valid vertex normals, they will be preserved. If they are missing, or null (0, 0, 0), we will automatically recompute them for the entire geometry. Some formats, like STL do not include vertex normals, so we always recompute them. We use a "crease angle" of 45° (normals will be smoothed together if the angle between two faces is less than 45°).

We also remove vertex normal data from point clouds, to reduce download time and improve performance, since they are typically not useful in this context.

Troubleshooting

If your model appears completely black or has other strange shading issues, it could indicate inverted normals. Viewing the model in Shadeless or Matcap mode is a quick way to check if normals are the cause. You can also switch to single-sided rendering in 3D Settings. If the object disappears unexpectedly, the normals are likely inverted.

Normals can also behave unexpectedly if the mesh has a "non-uniform" scale, commonly caused by Mirror modifiers. For example, a scale of [1, -1, 1] might occur on an object flipped over the Y-axis.

In any of these cases, it's usually best to apply any modifiers, apply scale/rotation/potion transformations (so that everything is [1, 1, 1]), and if necessary recalculate normals. This is usually best practice before uploading even if you're not experiencing issues with normals/shading.

Managing Soft and Hard Edges

For Hard Edges (e.g., 3D Printable Models)

  1. Ensure your geometry has valid vertex normals.

  2. Unweld or duplicate the vertices along the target edges so neighboring faces do not share normal data.

For Soft Edges (Smooth Surfaces)

  1. Weld or share vertices across adjacent faces to allow smooth shading transitions across polygon boundaries.

Blender

  1. Select the edges you want to appear hard and mark them as Sharp in the Shading/UVs toolbox.

  2. Add an EdgeSplit modifier to the object.

  3. In the EdgeSplit modifier settings:

    • Uncheck Edge Angle.

    • Check Sharp Edges.

  4. Apply the hard edges:

    • Option A (.blend): Apply all modifiers on the mesh before saving/exporting.

    • Option B (.OBJ): Ensure Apply Modifiers is checked in the OBJ export dialog window.

Note: Blender's native Edge Creasing (Shift + E) does not export to external formats.

Maya

  1. Select your mesh in the viewport.

  2. Open the normal angle menu:

    • Maya 2018+: Go to Mesh Display $\rightarrow$ Set Normal Angle...

    • Legacy Maya: Go to Mesh Display $\rightarrow$ Soften / Harden Edges

  3. Set your desired crease angle:

    • 0°: Creates completely hard edges across all faces.

    • 180°: Creates completely soft edges across all faces.

  4. Click Apply to recalculate the mesh shading.

Did this answer your question?