2016-11-29 1 views
-1

Je dessine en mode ligne en utilisant glPolygonMode(GL_FRONT_AND_BACK, GL_LINE). Quand je dessine un polygone à l'aide glBegin(GL_POLYGON)-je obtenir le résultat suivant, voir les lignes bleues:GL_POLYGON ne dessine pas un polygone fermé pour 3 points

polygon is not closed

mais quand je dessine à l'aide glBegin(GL_TRIANGLES)-je obtenir le résultat suivant, voir les lignes bleues:

Je suis sur Windows 10, sur une machine virtuelle VMware.

détails OpenGL en utilisant des glcapsviewer:

OpenGL version: 2.1 Mesa 11.2.0 (git-1d8818d) 
Renderer: Gallium 0.4 on SVGA3D; build: RELEASE; LLVM; 

Que peut la question en utilisant le mode GL_POLYGON que je ne reçois pas un triangle fermé?

+0

Modifier dans un [mcve]. – genpfault

+0

le problème est très spécifique à l'environnement et à l'implémentation OpenGL, les deux exemples fonctionnent parfaitement sur d'autres implémentations OpenGL, je vais voir si je peux obtenir un exemple qui peut produire le problème ci-dessus dans l'environnement ci-dessus. J'apprécierai si je peux obtenir quelques indices, des conseils sur ce qui peut causer une telle incohérence. Merci – mkashif

Répondre

2

Vos polygones ne sont pas convexes. OpenGL permet de dessiner des polygones convexes uniquement. Si vous essayez autrement, les résultats ne sont pas définis.

+0

si la direction de l'angle n'a pas d'importance (sens horaire ou anti-horaire), un triangle est toujours un polygone convexe, – mkashif

+1

@mkashif: C'est vrai, mais si vous regardez les formes que vous avez dans votre première image, cela ne Ne ressemble pas à un triangle "pur" pour moi. Pour moi, il semble que vous ayez des sommets extranous, qui gâchent votre dessin. Cela étant dit, GL_POLYGON a été déprécié de toute façon. – datenwolf

+0

merci pour la réponse, les deux images ci-dessus sont créés avec les mêmes coordonnées, dans un le polygone est fermé dans l'autre de la ligne est tirée arbitrairement (dans les trois triangles) – mkashif