2012-10-11 6 views
3

Questions connexes: 1, 2Est-il correct d'utiliser GLUTesselator dans DirectX?

Dans mon projet OpenGL j'utilise GLUTesselator pour diviser les polygones concaves (qui provient d'une source externe) à des triangles qui sont alimentés à travers OpenGL VBO après. Maintenant j'estime l'ajout de back-end DirectX.

Je peux utiliser un triangulateur de partie tierce, mais il n'est pas facile de trouver celui qui convient. Il y a Poly2Tri, mais cela fonctionne seulement avec polygones simples, n'ayant aucun doublon, aucun contact et ainsi de suite. Sinon, il se bloque simplement. Comme mes polygones proviennent de sources externes, il n'est pas très facile de se conformer. GLUTesselator fonctionne parfaitement ici; à partir de la documentation GLU: Les contours d'entrée peuvent se croiser, se recouper ou dégénérer. De même, polygones avec plusieurs coïncidences sont pris en charge.

Je pense qu'il est possible de dessiner des polygones sans trous avec un tampon stencil (voir 4), mais cela n'offre aucune possibilité de mise en cache. Comme je vois, il était recommandé d'utiliser GLUTesselator avec DirectX (voir 5, il y a 11 ans). Est-il vrai que GLUTesselator est une pure bibliothèque de logiciels? Est-il correct de l'utiliser avec DirectX, ou existe-t-il de meilleures possibilités?

Répondre

3

Le GLU Tesselator est une bibliothèque de géométrie/mathématiques seulement. Vous pouvez l'utiliser sans initialiser OpenGL, donc cela fonctionne très bien avec DirectX.