• ### Announcements

#### Archived

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

# how to calculate face normals?

## Recommended Posts

amish1234    104
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

##### Share on other sites
Sneftel    1788
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

##### 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

##### 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