I am trying to compare the two heuristics below for calculating vertex normals in a triangular mesh:
- the weighted average of face normals of the faces incident to the vertex where the weights are the area of each face
- the weighted average of face normals of the faces incident to the vertex where the weights are the angle between two edges of each face
The mesh is defined in half-edge data structure. When I see the results, each approach seems to be better in some situations and worse in others.
Which one is better in general?
An angle is a definitively better solution, because it provides you a local information in a point, where you want to construct the normal vector. An area of connected elements can vary a lot (depending on other nodes, which are away from the considered node). Look also at the example below (like a table board).