I've implemented a wavefront (OBJ) file loader for my OpenGL app which provides me face, texture and vertex information. However, to use lighting I obviously need normal information. I know the correct way to do this is to take the cross product of the 3 vertices that comprise a triangle and normalise. This results in a normal that you apply to all 3 vertices correct?
However, for faces/triangles that are not on the edge of the polygon, each vertex is used 3 times. So I'm guessing you just average each newly calculated normal with the previously calculated normals?
This seems like it is a hugely expensive task the way I'm thinking of doing it; iterating through all the vertices and calculating the normals for each face that use that vertex and averaging. Is there a better/quicker way to do this?
Cheers
Chris