vendredi 3 février 2012

Modèles 3D comme fichiers d'entête C

Si vous avez téléchargé l'un des exemples de code OpenGL liés d'Apple, comme GLGravity ou TouchFighter, vous avez sans doute remarqué qu'au lieu d'utiliser OBJ, MD2, ou des fichiers Maya, ils ont tendance à stocker les données en 3D dans les fichiers d'entête C qui contiennent un vaste sommet, un tableau normal, un index des visages, et un nombre de faces. A peu près la même approché que j'ai utilisé dans le portage des leçons NeHe, juste avec des sommets beaucoup plus.

Il ya quelque chose à dire pour cette approche - c'est efficace car les données sont déjà dans les besoins d'OpenGL format. Mais comment ont-ils créer ces fichiers d'en-tête?

Eh bien, je ne sais pas vraiment ce qu'ils outil utilisé, mais ce qu'ils auraient pu utiliser est ce script Perl écrit par Margeret Geroch Il faudra un fichier OBJ et le convertir en un fichier d'entête C que vous pouvez nourrir directement à OpenGL sans avoir à faire travaux de conversion salissante. Pour les impatients, voici un lien direct vers le script.

Une chose ce script ne fait pas, cependant, est de convertir les coordonnées de texture, donc si quelqu'un ici sait il d'un outil similaire qui s'occupe également de mappage de texture, s'il vous plaît faites le moi savoir.

J'ai commencé à travailler sur la conversion des normales pour le chargeur d'articles, et l'espoir de le poster dans quelques jours. Si vos modèles vont être complexe, vous voudrez probablement examiner l'approche fichier d'entête, car il sera probablement plus rapide.

Aucun commentaire: