Difference between revisions of "Calculating a Surface Normal"

From OpenGL.org
Jump to: navigation, search
 
Line 4: Line 4:
  
 
Nx = UyVz - UzVy
 
Nx = UyVz - UzVy
 +
 
Ny = UzVx - UxVz
 
Ny = UzVx - UxVz
 +
 
Nz = UxVy - UyVx
 
Nz = UxVy - UyVx

Revision as of 03:24, 5 April 2006

A surface normal for a triangle can be calculated by taking the vector cross product of two edges of that triangle. The order of the vertices used in the calculation witt affect the direction of the normal (in or out of the face w.r.t. winding).

So for a triangle p1, p2, p3, if the vector U = p2 - p1 and the vector V = p3-p1 then the normal U X V is calculated by:

Nx = UyVz - UzVy

Ny = UzVx - UxVz

Nz = UxVy - UyVx