Se connecter avec
S'enregistrer | Connectez-vous

objets 3d opengl

Dernière réponse : dans Programmation

Bonjour a tous,
Je connais les base de l'opengl ( j'utilise glut ) et je voudrais savoir comment on gere l'affichage d'objet 3d ( par exemple si je fais un bel avion avec 3ds max puis je veux m'en servir dans un programme en utilisant OpenGl ).
En fait si vous connaissez des librairies plus pratique pour gerer ce genre d'objtet je suis ouvert a tout ...
Merci

Autres pages sur : objets opengl

Lassé par la pub ? Créez un compte

Salut debz!

Perso j'utilise un petit programme appelé 3Dexploration.
Il permet à partir d'un grand nombre de fichier (dont les fichier 3ds, obj...) de générer un fichier Cpp contenant ton objet/texture/animations(il me semble), il ne te reste plus qu'à le lier dans ton projet OpenGL.
Ensuite l'appel à ton objet marche comme les listes (c'en est une dailleur ^^)
Dans ta fonction d'affichage tu appel la liste dans le cpp de ton objet (tention, par default 3dexploration donne un nom bidon à la liste, il faut que tu change ce nom, d'une part pour la lisibilité, et surtout dans le cas ou tu veux afficher plusieurs objets, qu'ils n'aient pas le même nom de liste.En plus du nom de la liste ya des p'tits noms de fonctions et de variables à changer ds le cpp de ton objet, pas de panique, tu compile une ou deux fois et tu regarde ou sont les erreurs, tu modifie et c'est dans la poche!)

J'esper que ça va t'aider :) 

Ok merci bcp il me sembleit bien qu'il etait question de liste... le bleme c'est que je ne m'y connais pas bcp dans ce domaine mais j'aprendrais vite !
Mais un probleme me viens tjrs a l'esprit.. comment puis je faire bouger un objet sans faire bouger tout ce qui est autour. J'ai essayer avec un cube en fesant comme ca a chaque points :
glVertex3d(-3+x, 3+y, 3+z);
puis je fesait bouger x,y et z mais ca ne marchait qu'une fois ... soit c'est qu c'est impossible soit j'ai un probleme pour mettre a jour mon cube ...
merci bien en tout cas !!
Expert Programmation

Il ne faut pas changer les glVertex, car là, c'est le processeur central qui fait le calcul (ton programme).
Il faut appliquer les matrices de rotations et de translations, comme ça, c'est la carte qui fait les calculs.
Par exemple, si tu veux faire tourner l'objet, il faut faire une translation pour placer l'objet en (0,0,0), faire la rotation, et faire la translation inverse pour remettre l'objet en place.
Il y a les fonction glRotate et glTranslate pour ça.
Je te conseille les excellents turoriaux de NeHe:
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=04

Meerci mais je connais ces rotations mais le probleme c'est que ca fait tourner tous les objets, en fait je voudrais savoir comment en faire bouger qu'un seul objet ! ( je vais tout de meme voir nehe parce qu'ils font des truc bien je crois ) Et j'ai bel et bien recuperer 3d exploration mais n'arrive pas a trouver de tutoriaux sur les listes !!
merci bcp
Expert Programmation

As-tu regardé le lien que j'ai donné ? car justement il fait tourner 2 éléments.
Comme indiqué, il faut utiliser glLoadIdentity(); pour éviter que les transformations des éléments précédent ne se répercutent sur l'élément courant, et pareil pour le suivant, donc pour éviter que la première rotation ne s'applique sur tout ce qui suis (les autres objets).
J'insiste sur le fait qu'il ne faut pas faire les calculs toi-même, sinon, pourquoi aurait-on inventé des cartes graphiques sur-puissantes ? ;) 
Lassé par la pub ? Créez un compte
Tom's guide dans le monde