OpenGL eclairage

Résolu
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 - 5 mai 2005 à 19:20
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 - 7 mai 2005 à 18:06
bonjour,

J'aimerais savoir comment dessiner un objet en 3D avec openGL en appliquant des groupes de lissages a l'objet.

C a dire que je voudrais que certains groupe de poly soient lissés par un eclairage de type gouraud ainsi on ne verrait pas les arretes de tous les polys d'un groupe mais par contre on verrait les arretes des polys delimitant le groupe.

j'espere m'etre bien fait comprendre! Enfn les amateurs de 3dsmax ou maya devraient comprendre de koi je parle.

2 réponses

neodelphi Messages postés 442 Date d'inscription jeudi 4 avril 2002 Statut Membre Dernière intervention 11 août 2008
6 mai 2005 à 14:00
Utilisateur de 3dsmax je comprend ton problème

Je n'ai jamais fait d'openGl mais du directX, donc je pense que cela
fonctionne de la même façon. Dans directX il faut pour dessiner un
objet 3d une liste de points constituant des triangles (vertexBuffer).
Les points sont d'un format qui peut varier selon ce que tu as besoin
de faire. Dans ton cas ce format contiendrai :



XYZ : la position 3d du point

Couleur : un entier représentant la couleur du triangle au point courant (dispensable)

Normal : un vecteur 3d qui dit l'orientation de ta normale.



Tout doit se jouer dans se vecteur normal car c'est avec celui-ci que
l'éclairage est calculé. Par exemple dans une sphere, les normales aux
points sont calculées en fonction des faces autour du point, ce qui cré
un effet gouraud. Si tu veut la même sphere avec un éclairage flat il y
aura plusieurs normales pour chaque point (en fait si deux faces se
touchent les points sont en commun et peuvent avoir des normales
diférentes). Bref, si tu exporte correctement ton model maya ou 3dsmax,
tu ne devrait pas avoir grand chose a faire, juste a dire à oGl de
prendre les normales de ton mesh, si tu récupère juste les coordonnées
des triangles oGl sera incapable de distinguer les groupes de lissage.


neodelphi
3
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
7 mai 2005 à 18:06
Merci bcp pour ta reponse!

En effet je mesuis un peu cassé la tete sur ce coup la! puisque que le format ASE (format a partir duquel je charge mes objet 3D) tout est deja prevu! les normales sont calculées de sorte que l'on obtienne les groupes de lissages ciomme tu disais
0
Rejoignez-nous