J'ai besoin d'un exemple de polygone qui ne peut être fait que par GL_TRIANGLE_STRIP
et un autre polygone qui ne peut être fait que par GL_TRIANGLE_FAN
.
En connaissant la différence entre Triangle Strip et Triangle Fan une forme sera facile à faire.
Par exemple, un Triangle Strip est un ensemble de triangles connectés qui partagent des sommets.
En utilisant Triangle Strip nous pourrons obtenir la sortie suivante, en utilisant ces sommets donnés.
Où un Triangle Fan est également un ensemble de triangles connectés, bien que tous ces triangles aient un sommet commun, qui est le sommet central.
Dans OpenGL, le sommet central est le premier sommet donné, dans le Triangle Fan.
En utilisant Triangle Fan et les mêmes sommets que dans l'autre exemple, nous ne pourrons obtenir que zone colorée en sortie. Cela est dû à l'importance de l'ordre arrangé des sommets dans Triangle Fan. Fondamentalement, tous les sommets doivent faire le tour du sommet central.
Comme vous pouvez le voir sur nos 2 exemples de sommets, ces "formes de sortie" sont uniques aux deux Triangle Strip et Triangle Fan.
J'ai fait une réponse similaire ici , vous pouvez le lire si vous le souhaitez, j'ai en fait utilisé les mêmes images car les questions sont étroitement liées.
Difficile de répondre en texte pur. Pour Fan, une forme en S serait impossible (en général, rappelez-vous que le ventilateur est limité en ce qu'il y a un point commun à chaque triangle).
Quant à l'inverse, c'est une question piège. triangle_strip peut faire tous les polygones triangle_fan, même si cela nécessite un peu de ruse. Considérez le polygone suivant (l'ordre indiqué est pour triangle_fan)
3--4--5
|\ | /|
2--1--6
| \|
8--7
Cela pourrait être fait comme suit
2-----4
| \ /|
1--3/7|
| \|
6--5
Notez les polygones qui se chevauchent. Si vous n'autorisez pas les polys double face ou les chevauchements, alors ce serait un exemple de poly uniquement en éventail, je suppose.