Efficient 3D Mesh Smoothing: Ditching Neighbor Lookups

2025-03-16

This blog post presents an efficient algorithm for 3D mesh smoothing that avoids the need for complex half-edge data structures. Using a 'throwing vertices' approach, it directly iterates over triangle faces, accumulating neighbor vertex positions in a single pass to calculate average positions for smoothing. This eliminates neighbor lookups, boosting efficiency. The post also explores several parallelization methods, including using atomic operations and precomputing neighbor lists, comparing their performance differences. Finally, it shows how to recompute vertex normals after smoothing.

Development mesh smoothing