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)
Ensure your geometry has valid vertex normals.
Unweld or duplicate the vertices along the target edges so neighboring faces do not share normal data.
For Soft Edges (Smooth Surfaces)
Weld or share vertices across adjacent faces to allow smooth shading transitions across polygon boundaries.
Blender
Select the edges you want to appear hard and mark them as Sharp in the Shading/UVs toolbox.
Add an EdgeSplit modifier to the object.
In the EdgeSplit modifier settings:
Uncheck
Edge Angle.Check
Sharp Edges.
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
Select your mesh in the viewport.
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
Set your desired crease angle:
0°: Creates completely hard edges across all faces.
180°: Creates completely soft edges across all faces.
Click Apply to recalculate the mesh shading.
