2010-03-06 7 views

Répondre

4

Réponse courte: Non, pas dans le cadre d'OpenGL ES.

La tessellation de polygones est fournie dans le cadre de la bibliothèque GLU (OpenGL Utility), par plate-forme, par version, par implémenteur, car elle est facultative et non centrale à OpenGL.

Si vous travaillez sur iPhone, vous devriez jeter un oeil à iphone-glu qui prétend prendre en charge la tessellation polygonale.

Voici un walkthrough plus général d'utilisation de la tessellation dans OpenGL avec GLU (pas ES cependant) qui pourrait aider à éclairer votre chemin.

+0

i rouge son difficile à faire triangulation 3D et je ne comprends pas vraiment pourquoi le soutien opengl ne marche pas si c'est la seule façon de créer des polygones complexes. l'algorithme n'a pas besoin d'être très efficace car il est seulement exécuté lors de la création du polygone, donc je peux écrire le mien mais je ne m'y pose vraiment pas –

+1

Il n'est pas inclus dans OpenGL car OpenGL est uniquement destiné au rendu. Il n'est pas destiné à être utilisé pour pré-traiter les données à afficher. Est-il impossible de traiter vos données dans un format convivial OpenGL hors ligne? – CaseyB

1

"Il est difficile de faire une triangulation 3D". Eh bien, cela dépend du type de triangulation que vous essayez de faire. Si vous essayez, par exemple, de trouver une triangulation de Delaunay, cela équivaut à trouver une coque convexe, ce qui est un problème assez difficile.

Mais vous n'aurez peut-être pas besoin de quelque chose de très spécial. Si tout ce dont vous avez besoin est juste une triangulation, c'est plus simple. Mais généralement, vous devez garder une trace des surfaces cachées, ce qui est un autre exemple de pourquoi ils ne l'ont pas inclus dans l'API principale: il y a trop d'algorithmes différents qui peuvent être utilisés en fonction des besoins réels de l'utilisateur. Ils ne voulaient pas alourdir le téléphone mobile à ressources limitées avec tout ce dont le développeur pourrait avoir besoin, ni avec un algorithme lent qui couvrirait toutes les bases. Rappelez-vous que lorsque OpenGL-ES a été développé, les téléphones mobiles étaient encore plus limités que maintenant. Le 16M qu'un G1 a été rare à cette époque. La vitesse du processeur était seulement d'environ 25Mhz, aussi.