A detailed walkthrough of the algorithm Blender uses to compute 'smooth by angle' (formerly 'auto-smooth') shading normals for 3D meshes. Covers the concept of loops (per-face-per-vertex instances), the half-edge data structure and a custom LinkedMesh variant, and the three-step algorithm: merging coincident vertices, marking edges as sharp or smooth based on face normal angle thresholds, and partitioning faces around each vertex into smooth fans to compute weighted loop normals. Includes edge cases like single-sharp-edge fans and topological constraints when exporting indexed vertex data.

8m read timeFrom cprimozic.net
Post cover image
Table of contents
BackgroundData StructuresThe AlgorithmUnique Cases

Sort: