Bonjour,
Je voudrais dessiner des formes un peu plus compliquées que les habituels Sphere, cube en OPENGL. Je cherche donc des tutoriels pour créer des modèles d'objets.
Si quelqu'un peut m'indiquer où en trouver...
Merci
Laurent
Version imprimable
Bonjour,
Je voudrais dessiner des formes un peu plus compliquées que les habituels Sphere, cube en OPENGL. Je cherche donc des tutoriels pour créer des modèles d'objets.
Si quelqu'un peut m'indiquer où en trouver...
Merci
Laurent
Je pense que pour des choses plus compliqué, il faut se tourner vers la création à partir de logiciel de modélisation 3D comme Blender et de faire un loader ou en trouver un pour intégrer le modèle 3D dans ton application OpenGL.
Parce que faire depuis OpenGL en spécifiant à la main chaques vertices (donc savoir où les mettres etc...), je pense que cela doit être très laborieux pour pas dire impossible.
Donc tourne toi sur un tutoriel Blender genre sur le site et après fais toi un beau truc 3D et hop exportation.
Merci pour ta réponse mais mon problème est que je veux coder une application qui définie les paramètres des objets puis les déssine. Je ne peux donc pas créer mon modèle avec un logiciel de modélisation 3D...
Une question pour pouvoir peut être t'aider d'avantage : Qu'entends tu par objet plus complexe qu'une sphère, cube, etc... Est ce que c'est des choses comme des objets du type voiture, bâtiment, etc... en gros peut être faire un univers ou alors toujours dans les formes géométriques "classiques" mais plus complexe qu'une sphère et un cube ?
Salut,
Ben ca dépendra de ton objet, c'est quoi à peu près?
Pour mon soft je génère également les objets "manuellement". Il s'agit de verres de lunettes, donc là par exemple je fais un mesh (avec des GL_TRIANGLE_STRIP) pour la face avant, un pour la face arrière, et un pour la bordure qui relie les deux.
En gros, avec des triangles tu peux faire ce que tu veux, faut juste que tu refléchisses à comment les organiser pour optimiser l'affichage. Essaie de réfléchir à partir d'un dessin de l'objet à représenter, décompose les différentes parties et vois comment organiser ca. Désolé mais il n'y a pas de méthode "générale" que tu pourrais trouver dans un tutorial, ca dépend vraiment de ce que tu veux afficher.
Si t'as une image je peux peut être t'aider à décomposer ca.
Salut,
J'ai jamais vraiment compris le concept de pouvoir dessiner ce que l'on veut avec des triangles.(Je sais que c'est possible mais j'avoue que je me demande bien comment).
Je te donnerais un exemple ce soir, si tu peux me donner des conseils ça serait super sympa...
Salut,
en fait il faut savoir qu'OpenGL ne sait dessiner QUE des triangles (et aussi des lignes et des points), mais c'est tout, rien de plus complexe. Lorsque tu affiches une sphere comme tu le fait actuellement en fait tu reconstitues une sphere avec plein de petit triangle.
Ensuite les facettes sont lissées à l'aide des normales, pour les les triangles ne soient plus visibles.
Voici une autre image où l'on voit les facettes triangulaires :
http://gts.sourceforge.net/gallery/horses_head.png.html
Pour encore mieux comprendre cela je te propose d'ajouter dans ton application cette instruction pour réaliser un affichage en filaire :
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
ainsi tu verras que les sphères que tu as déjà dessinées ne sont pas des surfaces pures comme ça peut être le cas avec PovRay par exemple, mais sont bien appriximées avec une série de facettes triangulaires.
J'avais pas vu ton message AuraHxC, désolé.
Je cherche à dessiner des parties d'avions mais qui sont extremements simplifiés. Cela reste donc des formes géométriques plutôt classique.
Je donne le type d'objet que j'aimerais créer.
Si quelqu'un a une idée pour dessiner cela en OPENGL ...
La réponse t'a déjà été donnée... triangles, quads, etc etc... il faut décomposer tout ça en primitives OpenGL, y'a pas de secret...
Pour des formes cylindriques comme ça, c'est relativement simple, vu que tu t'appuies sur des profils, il suffit de lancer des droites d'un profil à l'autres, couper suivant des nervures, et tu as tes quads automatiquement.
Merci pour vos réponses.
Je vais finalement essayer un truc sur lequel j'avais travaillé l'année dernière.
Je détermine la fonction distance de ma surface.
Puis je créé une distribution de points dans l'espace.
Je sélectionne grâce à ma fonction distance les points proches de ma surface et projette ces points sur ma surface.
J'effectue ensuite une triangulation de Delaunay et créé un algorithme pour sélectionner uniquement les surfaces des tétraèdres obtenus situés sur la surface.
J'obtiens ainsi une mesh de mon objet.
Je peux ensuite faire une analogie entre la meh créée et une une réseau de ressorts afin de choisir la densité de mes points au niveau de ma surface en jouant sur la constante de raideur des ressorts.
Ca m'a l'air compliqué ton truc...
Si tu as ta surface, tu peux avoir le profil là où tu veux, tu peux donc discrétiser comme tu veux, tu peux donc dessiner des quads comme tu veux...
Mais bon, si tu préfères partir sur un delaunay 3d, pourquoi pas... ça marchera aussi bien, c'est juste plus lourd pour des pièces de ce style ;)