[opengl]calcul de normales

calcul de normales [opengl] - C++ - Programmation

Marsh Posté le 26-11-2002 à 14:53:05    

bon voila mon probleme, j'ai creer une map composer de triangle, et je veux calculer les normales.
 
mais voila je veux pas les normale de chaque triangle(ca donnerai un effet pas beau a l'eclairage) mais plutot pour chaque sommet.  
si j'ai bien suivi d'autre explication, il faut calculer chaque  normal pour chaque face et ensuite faire la moyenne des normale de chaque face reliée au sommet?
c'est donc la que je sais aps trop faire car j'ai trouver une formule(ci dessous) pour calculer la normal de chaque face, mais je sais pas comment on fait une moyenne de normal?, on additionne les composantes et on les divise par leur nombre?
 
et est-ce que cette formule sert bien a calculer la normal d'un triange?
 
void Calcul_Normale(double* a,double* b,double* c,double* n)
{
 double v[3],w[3];
 double lng=0;
 
 v[0]=c[0]-a[0];
 v[1]=c[1]-a[1];
 v[2]=c[2]-a[2];
 w[0]=b[0]-a[0];
 w[1]=b[1]-a[1];
 w[2]=b[2]-a[2];
 
 n[0]=v[1]*w[2] - w[1]*v[2];
 n[1]=v[2]*w[0] - w[2]*v[0];
 n[2]=v[0]*w[1] - w[0]*v[1];
 lng=sqrt((n[0]*n[0])+(n[1]*n[1])+(n[2]*n[2]));
 if (lng>0) {
   lng=1/lng;
   n[0]=n[0]*lng;
   n[1]=n[1]*lng;
   n[2]=n[2]*lng;
   }
}
 

Reply

Marsh Posté le 26-11-2002 à 14:53:05   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed