how to calculate face normals?
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.
the face normal will be the cross product of two lines defined each by two of the three vertices of a triangle.
If you have three points of the triangle: A,B,C, then you do this:
"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( );
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( );
This is the cross-product:
~CGameProgrammer( );
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
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement