#0 

04-11-2009 14:28:56

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Salut les gars, je ne comprend pas ce mot, je crois avoir compris que c'est une droite perpendiculaire à un plan, mais si quelqu'un pouvait m'expliquer plus en détail ça serait cool.
nottement pour un objet 3d, comment definit-on la normale et quelle est son utilité ?
merci pour votre aide.

Hors ligne


#1 

04-11-2009 16:08:07

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

C'est effectivement une droite perpendiculaire à un plan. J'ai bien galéré mais j'ai fait ça sur un triangle d'un terrain afin d'orienter mon node face au terrain.

Code:

triangle3df tri;
vector3df A,B,C;
A = vector3df(cible->gpos().X + 5,    0,cible->gpos().Z); // positione les vecteurs en triangle
B = vector3df(cible->gpos().X - 3.57f,    0,cible->gpos().Z +3.57);
C = vector3df(cible->gpos().X - 3.57f,    0,cible->gpos().Z -3.57);
tri.pointA = A + vector3df(0,sol->terrain->getHeight(A.X,A.Z),0); // pose les vecteurs sur le sol
tri.pointB = B + vector3df(0,sol->terrain->getHeight(B.X,B.Z),0);
tri.pointC = C + vector3df(0,sol->terrain->getHeight(C.X,C.Z),0);

vector3df nor = tri.getNormal().normalize(); // normalize, il faut bien ...
cible->node->setRotation(nor.getHorizontalAngle()+ vector3df(-90,0,0)); // rotation de la cible

C'est un système perso qui ressemble bien à du bricolage mais ça fonctionne. J'espère que ça t'aidera.

Dernière modification par TUpac (04-11-2009 16:09:23)


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#2 

04-11-2009 16:36:14

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Merci Tupac, ce systeme m'aidera surement, mais pour l'instant je n'ai pas besoin de code, j'aimerais juste comprendre l'aspect théorique.
visiblement tu te sers de la normale pour definir une orientation, mais je ne comprend pas comment est definit la normale ?

Hors ligne


#3 

04-11-2009 16:42:15

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Sans trop rentrer dans les détails,
Première notion, le vecteur normal d'une face est en fait le vecteur représentant la perpendiculaire au plan formé par une face ou une surface donnée.
Deuxième notion liée au normal face, chacun de ces vecteurs doit être normalisé (longueur comprise entre 0.0 et 1.0).

Ce fameux vecteur à comme principale utilité de permettre l'interaction de nos faces dont il est la normal, avec la lumière.

Je verrais d'ici à demain pour faire un petit tuto la dessus, les lights, hmmm vaste sujet wink


Force et sagesse...

Hors ligne


#4 

04-11-2009 17:30:59

TUpac
Habitué
Date d'inscription: 08-09-2009
Messages: 387
Corrections: 1

C'est tout a fait ca  ! utilisé par le moteur pour l'éclairage , spéculaires , collisions ....

ps: tmyke, si tu nous sort un tuto complet sur les normales en un jour je te tire mon chapeau (noir, bien sur wink)


"Si vous ne partagez pas votre stabilité avec les pauvres, les pauvres partageront leur instabilité avec vous."

Hors ligne


#5 

04-11-2009 17:38:16

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Cela sera surtout un tuto sur les grands principes de l'éclairage. C'est un tuto que j'avais écris pour N3xtD, et donc il existe déjà,
je n'ai qu'a le copier et adpater pour le forum wink


Force et sagesse...

Hors ligne


#6 

04-11-2009 17:45:50

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Super tmyke, j'ai hâte d'en savoir plus.
je suis curieux de savoir comment sont calculé les vecteurs normale ,puis comment il sont normalisé(d'ailleur ça porte à confusion)
Enfin en tout cas merci pour votre aide

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
72 invités en ligne
Aucun membre connecté
RSS Feed