2014-06-13 5 views
0

j'ai lu que le premier paramètre de la glDrawElements est le mode: http://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xmlglDrawElements dessiner un polygone

constantes symboliques GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY et GL_TRIANGLES_ADJACENCY sont acceptés.

Je n'y vois pas GL_POLYGON. Est-ce que cela signifie que je ne peux pas utiliser GL_POLYGON? et si j'ai 10 indices? Ai-je besoin de le transformer en quelques polygones qui contiennent chacun 3 indices? Si c'est vrai, comment puis-je le faire?

Répondre

4

Les pages de manuel de niveau GL3 et GL4 sur www.opengl.org ne documentent que le profil de base d'OpenGL. GL_POLYGON est obsolète et ne faisait pas partie du profil Core lorsque la spécification a été scindée en profils Core et Compatibility dans OpenGL 3.2.

Vous pouvez toujours utiliser GL_POLYGON si vous créez un contexte qui prend en charge le profil de compatibilité. Mais si vous commencez, je vous suggère de vous en tenir aux caractéristiques du profil de base. Si vous avez besoin de documentation pour les fonctionnalités obsolètes, vous devrez revenir au GL2 man pages.

Pour dessiner un polygone, GL_TRIANGLE_FAN est le remplacement le plus facile. Vous pouvez utiliser le même ensemble de sommets pour un ventilateur en triangle que vous utiliseriez pour GL_POLYGON, et il produira le même résultat.

+0

Pourquoi 'GL_POLYGON' est-il déprécié? J'ai vérifié avec "GL_POLYGON" et avec "GL_TRIANGLE_FAN" et le FPS reste le même. – DarkStorm97

+1

Tous les deux 'GL_POLYGON' et' GL_QUADS' ont été supprimés. Les polygones et les quads ouvrent un tas de problèmes (que faire si vous soumettez un polygone non planaire et si votre polygone n'est pas convexe, comment interpolez-vous les valeurs entre les sommets d'un polygone, comment les découpez-vous?). Juste trianguler vous-même vos visages et soumettre des triangles. Il existe des bibliothèques pour cette utilisation. – peppe

+0

Quel est le nom de ces bibliothèques? – DarkStorm97

0

En passant, vous utilisez les pages de manuel GL3.

Depuis GL_POLYGON a été déprécié en 3.0 et supprimé en 3.1, vous ne trouverez pas il répertorié là. En fait, vous y trouverez des jetons qui ne sont supportés que dans GL 3.2 (primitives d'adjacence, qui ont été introduites quand Geometry Shaders l'était); heureusement que est réellement documenté dans la page de manuel elle-même contrairement au fait que GL_POLYGON a été déprécié.

Pour les profils de compatibilité (que vous utilisez), vous devriez voir la page de manuel GL2. La page de manuel GL2 peut être trouvée here.

Questions connexes