# Normals

Started by Sep 23 2001 05:43 PM

,
8 replies to this topic

###
#1
Members - Reputation: **122**

Posted 23 September 2001 - 05:43 PM

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

###
#2
Members - Reputation: **122**

Posted 23 September 2001 - 05:55 PM

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)

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)

###
#3
Members - Reputation: **122**

Posted 23 September 2001 - 06:10 PM

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_

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_

###
#5
Members - Reputation: **122**

Posted 24 September 2001 - 10:38 AM

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

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

###
#6
Anonymous Poster_Anonymous Poster_*
Guests - Reputation:

Posted 24 September 2001 - 10:39 AM

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

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

###
#7
Members - Reputation: **1087**

Posted 24 September 2001 - 11:15 AM

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!]

[Resist Windows XP''s Invasive Production Activation Technology!]

###
#8
Members - Reputation: **122**

Posted 24 September 2001 - 12:09 PM

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 )

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 )

###
#9
Members - Reputation: **122**

Posted 27 September 2001 - 12:56 PM

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.*