Does geometry.computeVertexNormals() use weighted normals?

I understand that when calculating vertex normals, one can get the “weighted” average of normals attached to a vertex versus “unweighted” average of normals. With a “weighted” average, “bigger” triangles have a higher weight when calculating the average normal for a vertex. With an “unweighted” average, all the triangles attached to a vertex have equal weight, no matter their size.

Programmatically, a “weighted” average does not normalize each triangle’s normal vector before averaging, whereas an “unweighted” average normalizes each triangle’s normal vector before averaging.

Does the calculation for geometry.computeVertexNormals() use weighted normals?

Looking at the source code of computeVertexNormals(), the answer is NO. No weighted normals, just the plain average of the face normals of the faces sharing a vertex.

2 Likes

You mean it is weighted, since the normals of the faces connected to a vertex are not being normalized before being averaged?

not normalized before averaging → weighted
normalized before averaging → unweighted