Normals

Started by
7 comments, last by _Buster_ 22 years, 6 months ago
Hello everyone. I can''t seem to get the hang of normals . . . I just don''t understand how to calculate them. I don''t know what to say other than that . . . I want to fully understand this before I continue on with lighting. any help? _BUSTER_ www.dotspot.cjb.net ______________________________ Check out my for sale domain name! http://www.theatermonkey.com
Advertisement
Try thinking of a normal as a direction surface is facing.

If you set a piece of paper on the ground, its normal would be facing up(if you ignore the backside of the paper)

normals are used to calculate lighting and collition detection (or collition response),

The normal faces strait outward from a surface, on a 90 degree angle. (although for some lighting techniques you might want to change that)
but does it matter where on the "paper" it is? see example below:


the + is the normal
_____________
| |
| |
| |
| + |
|___________|

-------------
| |
| + |
| |
|___________|

can it be ANYWHERE? or does it have to be in a certain place on the surface?

Thanks for the help!

_BUSTER_
It''s a /direction/, not a position. The normal is the direction that is up, not saying ''from this point on the plane to the point defined by (your normal coords)''.
. . . oh,

Well. . . whats the formulas for then? Thanks for your help! I think I get it now. Oh yeah, my above "drawings" were messed up. . .

_BUSTER_



www.dotspot.cjb.net
______________________________
Check out my for sale domain name!

http://www.theatermonkey.com

. . . oh,

Well. . . whats the formulas for then? Thanks for your help! I think I get it now. Oh yeah, my above "drawings" were messed up. . .

_BUSTER_



www.dotspot.cjb.net
______________________________
Check out my for sale domain name!

http://www.theatermonkey.com

You''d use the cross product (a formula for calculating perpendicular vectors). See this tutorial (I think this one covers normals): http://www.gamedev.net/reference/articles/article415.asp

[Resist Windows XP''s Invasive Production Activation Technology!]
Edge1 = P1 - P2
Edge2 = P3 - P2

Normal = Edge1 X Edge2

so if:

P1 = (-2, 2)
P2 = (-2,-2)
P3 = ( 2,-2)
P4 = ( 2, 2)

Edge1 = (-2, 2) - (-2,-2) == 4 (right?)
Edge2 = ( 2,-2) - (-2,-2) == 4 (right?)

Normal = 16

Is that right? Maybe I''m doing this all wrong. . .

This is the part I don''t get:
(from http://www.gamedev.net/reference/articles/article415.asp)

Ax + By + Cz + D = 0

What about the D component of the equation? We simply isolate D, plot the
values of any of the three point in the equation, and we get it:
D = - (Ax + By + Cz)
or
D = - (A·P1.x + B·P1.y + C·P1.z)
or even trickier:
D = - Normal · P1
But to compute the A, B, C components (because sometimes, we need
themselves, not the normals), you can simplify all these operations with
these equations:
A = y1 ( z2 - z3 ) + y2 ( z3 - z1 ) + y3 ( z1 - z2 )
B = z1 ( x2 - x3 ) + z2 ( x3 - x1 ) + z3 ( x1 - x2 )
C= x1 ( y2 - y3 ) + x2 ( y3 - y1 ) + x3 ( y1 - y2 )
D = - x1 ( y2z3 - y3z2 ) - x2 ( y3z1 - y1z3 ) - x3 ( y1z2 - y2z1 )
quote:
Edge1 = P1 - P2
Edge2 = P3 - P2

Normal = Edge1 X Edge2

so if:

P1 = (-2, 2)
P2 = (-2,-2)
P3 = ( 2,-2)
P4 = ( 2, 2)

Edge1 = (-2, 2) - (-2,-2) == 4 (right?)
Edge2 = ( 2,-2) - (-2,-2) == 4 (right?)

Normal = 16

Is that right? Maybe I''m doing this all wrong. . .

Actually it''s not quite right.
Edge1 = (0,4) these are VECTORS
Edge2 = (4,0)
although the length (euclidean) of each edge is 4.

cheers



/Mankind gave birth to God.
/Mankind gave birth to God.

This topic is closed to new replies.

Advertisement