Archived

This topic is now archived and is closed to further replies.

amish1234

how to calculate face normals?

Recommended Posts

I now have a clue about BSP, but I need to calculate the face normals for all my polygons. I tried looking in the SKD docs, but they didn''t say. (it says normals are calculated by D3D when needed, so you don''t have to worry about them). Anyone know a formula to do this? Proceeding on a brutal rampage is the obvious choice.

Share this post


Link to post
Share on other sites
the face normal will be the cross product of two lines defined each by two of the three vertices of a triangle.

Share this post


Link to post
Share on other sites
If you have three points of the triangle: A,B,C, then you do this:

vector Normal;
vector U;
vector V;

U = A - C;
V = A - B;

Normal = U cross V;

"Cross" is the cross-product. If A, B, and C are in counterclockwise order, this will return the correct normal... either that, or clockwise order, I forget.

~CGameProgrammer( );

Share this post


Link to post
Share on other sites
This is the cross-product:

      
Vector( (V1.Y * V2.Z) - (V1.Z * V2.Y),
(V1.Z * V2.X) - (V1.X * V2.Z),
(V1.X * V2.Y) - (V1.Y * V2.X) );


~CGameProgrammer( );



Edited by - CGameProgrammer on January 30, 2002 8:26:24 PM

Share this post


Link to post
Share on other sites