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?
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;
}
}