opengl - read - stl file format example




Format simple filaire? (4)

Je ne connais aucun des formats qui ciblent activement les vues filaires. (Bord / sommet seulement) Vous aurez presque toujours à faire face à des visages à tout le moins. La partie chanceuse là est que, sauf si vous avez un besoin très spécifique pour rien, mais un rendu filaire de liste de bord peut être fait avec à peu près n'importe quelle API à partir d'une liste de visage.

En ce qui concerne le format, OBJ est bon et simple, mais un peu dépassé. C'est aussi probablement le format le plus facile à trouver pour la documentation. Les fichiers X de Microsoft sont parfaits pour un rendu rapide et grossier, mais j'ai toujours été un peu partial par rapport aux formats Quake. Ils ont tendance à être très axé sur le jeu, et comprennent donc beaucoup d'informations que vous ne voulez probablement pas.

Si aucun d'entre eux ne répond à vos besoins, pensez peut-être à COLLADA . Cela ne fonctionnera probablement pas pour vous seul, mais vous pouvez écrire un exportateur rapide dans votre propre format qui ne contient que des informations de bord / vertex, et à ce stade, vous avez essentiellement un support pour chaque package de modélisation sur la planète :)

Je suis à la recherche d'un format de fichier simple à utiliser pour les modèles filaires. Je suis conscient de VRML, u3D, etc, mais ceux-ci semblent lourds pour mes besoins. Mes critères sont:

  • Doit avoir une spécification claire. Ouvert ou très bien établi / documenté.
  • Je n'ai besoin que de simples modèles (sommets et arêtes). Je ne veux pas gérer les visages ou les objets. Si le format supporte plus, c'est bien tant que je peux les ignorer.
  • Les outils de l'utilisateur final ne sont pas une exigence, mais ce serait génial. Sinon, il doit être lisible par l'homme (et modifiable pour les modèles simples).
  • Ce serait bien (mais pas nécessaire) de pouvoir annoter ou au moins étiqueter des nœuds.
  • Peu importe la langue que j'utilise, mais les options possibles sont Java / C ++ et OpenGL

Ou est-ce que je ferais mieux d'écrire des sommets / listes de bord dans un fichier texte et d'en finir?


Le format triangle RAW de POV-Ray est ce que je considère comme le plus simple. Vous ne pouvez vraiment pas être plus simple à mon avis. J'ai implémenté une charge pour cela en quelques minutes - c'est un format vraiment très simple .


Wavefront OBJ est un format de fichier texte très simple pour stocker des modèles 3D et il est pris en charge par toutes les applications de modélisation 3D (par exemple maya, 3dsmax, lightwave) pour exporter et importer vos modèles très facilement.

Vous pouvez en lire plus et les spécifications ici:

http://www.fileformat.info/format/wavefrontobj/

Je recommanderais de ne pas faire votre propre format de fichier. Le Wavefront OBJ est aussi simple que possible et bien spécifié.

Voici un exemple d'un plan 2x2. v est pour les coordonnées de vertex, f pour la description des faces (auxquels les vertices sont connectés):

v -0.500000 -0.000000 0.500000
v 0.000000 -0.000000 0.500000
v 0.500000 -0.000000 0.500000
v -0.500000 0.000000 0.000000
v 0.000000 0.000000 0.000000
v 0.500000 0.000000 0.000000
v -0.500000 0.000000 -0.500000
v 0.000000 0.000000 -0.500000
v 0.500000 0.000000 -0.500000
v -0.500000 -0.000000 0.500000
v 0.000000 -0.000000 0.500000
v 0.500000 -0.000000 0.500000
v -0.500000 0.000000 0.000000
v 0.000000 0.000000 0.000000
v 0.500000 0.000000 0.000000
v -0.500000 0.000000 -0.500000
v 0.000000 0.000000 -0.500000
v 0.500000 0.000000 -0.500000
f 1/1 2/2 5/5 4/4
f 2/2 3/3 6/6 5/5
f 4/4 5/5 8/8 7/7
f 5/5 6/6 9/9 8/8
f 10/10 11/11 14/14 13/13
f 11/11 12/12 15/15 14/14
f 13/13 14/14 17/17 16/16
f 14/14 15/15 18/18 17/17

OBJ est le plus répandu et le plus simple, mais il se décompose si vous avez besoin de plus d'une position vertex, normale et d'une seule coordonnée de texture. Ce n'est pas extensible du tout. Il est également basé sur du texte, donc il a des problèmes avec les grandes mailles.

GTO a émergé comme un nouveau format d'échange. C'est simple, rapide et extensible, et il existe un code open source prouvé en production pour les lire et les écrire:

Format de fichier Gto

Cela a été utilisé en production dans plusieurs studios VFX et jeux, et pourtant c'est à peu près la même quantité de travail pour écrire un chargeur qu'un fichier OBJ (et l'un des échantillons est un convertisseur OBJ vers GTO).

Vérifiez-le, et aidez à arrêter la propagation du virus de la météorisation Collada.







wireframe