probleme affichage polygone [C++/OpenGl] - C++ - Programmation
Marsh Posté le 28-04-2005 à 12:53:48
Salut,
Tu peux poster ta liste de points stp ? Et es-tu obligé de faire un GL_POLYGON pour ça ? (c'est pas vraiment optimisé)
Marsh Posté le 28-04-2005 à 13:25:40
IrmatDen a écrit : Salut, |
Les points qui servent à tracer le polygone sont :
Code :
|
Et qu'est-ce que tu me conseillerais de mettre dans le glBegin() ? GL_POLYGON est le seul paramètre que je connaisse, avec GL_QUADS lol...
Marsh Posté le 28-04-2005 à 14:11:02
Je pense qu'il vaut mieux le dessiner en 2 étapes avec la primitive GL_TRIANGLE_FAN.
D'après ton tableau, on va dessiner les triangles:
- {4,3,2} ; {4,2,1} ; {4,1,5}
- {5,1,8} ; {5,8,7} ; {5,7,6}
Je te laisse faire une petite recherche google pour savoir comment l'implémenter...
Marsh Posté le 29-04-2005 à 00:12:11
Pas les triangle fans pitié. En plus ça ne marchera pas pour sa forme non étoilée (je vous laisse chercher ce que c'est).
à la rigueur des triangle strips mais les listes de triangles indexée c'est pas mal aussi.
Marsh Posté le 29-04-2005 à 00:31:57
Oops
Pourquoi cela ne pourrait pas marcher si on fait 2 de ces primitives autour des 2 points intérieur du U (4 et 5) :
1____________2 |
Pour les strip, je savais pas comment faire avec son tableau. Et pour les vertex arrays, je ne pensais pas que c'était vraiment mieux que les fans.
Edit : mieux en ce qui concerne cette utilisation s'entende
Marsh Posté le 29-04-2005 à 01:46:21
IrmatDen a écrit : Oops
|
Ca marche mais y a plus élégant.
IrmatDen a écrit : Et pour les vertex arrays, je ne pensais pas que c'était vraiment mieux que les fans. |
Y a mélangeage la... Le type de primitive n'a rien à voir avec le mode de transfert.
Sinon pour en revenir à la question initiale : le probleme vient de la non-convexité du polygone. OpenGL n'accepte que des polygones convexes.
Marsh Posté le 28-04-2005 à 12:12:41
bonjour,
j'ai un probleme d'affichage en openGl, en utilisant GLUT.
je tente de creer un polygone en forme de U que voici en vue filaire:
et voici ce qu'il m'affiche en vue normale:
voici le code source de ma fonction qui est censée tracer le polygone:
si qq peut m'aider, ça serait sympa (j'ai déjà tenté de changer mes librairies sans succès)
Merci.