A Note on Calculating Normals

The easy way to compute proper vertex-based normals for indexed sets is to set all the normals to [0, 0, 0], then, for every triangle calculate it’s normal and simply do a vector add of the calculate tri normal to the normal for each vertex associated with the triangle. When all the triangles are traversed, normalize all the vertex normals.

To transform a normal from one coordinate space to another you must you must use the inverse transpose of the matrix, the transpose of the inverse of a matrix. Sometimes also known as the adjunct and not to be confused with the adjoint.