Members - Reputation: 122
Posted 12 July 2001 - 11:27 PM
Members - Reputation: 1377
Posted 13 July 2001 - 06:39 AM
Are you certain that the normals out of the md2 file are incorrect? How did you check? (I would have thought that Milkshape or whatever tool you''re using would export them correctly.)
In any case, to find the normal of a triangle, you need to just find the cross product between a vector along one edge and the vector along another edge. Then normalize the resulting cross product vector by dividing by its length. This normalized cross product is a normal to the triangle. Any two edges can be used to find the normal.
Your triangles must be oriented consistently, either all clockwise or all counterclockwise. Otherwise, your average normal will be wrong. Also, since there are two normals (one towards the inside of the surface represented by the triangle, one towards the outside of the surface represented by the triangle), you need to determine which cross product to use to get the outside-pointing normal. (For example, edge 1 cross edge 2 might give the inside normal, while edge 2 cross edge 1 would give the outside normal.)