Format de fichier pour les modèles 3D statiques et animés

22

J'écris actuellement un jeu 3D en C ++ avec OpenGL et j'arrive à la partie où charger les modèles 3D. Par conséquent, je recherche des formats de fichiers et des techniques populaires pour

  • afficher les mailles statiques et
  • rendre les maillages animés.

J'ai déjà trouvé un grand nombre de formats et de techniques possibles, comme les animations d'images clés, l'animation squelettique, MD2 jusqu'à MD5, 3DS, X, Collada etc. pp.

Pour plus de simplicité, j'aimerais utiliser un format (et une technique) qui permettent les deux, à savoir les maillages statiques et animés. Ma question est donc de savoir si un format convient à cette tâche et lequel vous suggéreriez. Et pour clarifier un peu: je n'ai pas besoin d'animations super fluides ou de nouvelles fonctionnalités.

Sidenote: Parce que je suis un fan de blender (mais pas un expert ;-)) il serait utile qu'il puisse être utilisé avec ça - mais bien sûr, cela ne devrait pas être le bouchon du show, ici.

stschindler
la source

Réponses:

16

Permettez-moi de vous proposer d'utiliser Collada .

Il est largement pris en charge par les outils DCC et bien standardisé. Il prend en charge les animations squelettiques et .. eh bien, il fait presque tout, y compris les shaders et la physique - ceux-ci ne seront pas pertinents pour vous.

Les animations basées sur des sommets comme dans les formats MDL ou MD2 sont plus ou moins une relique du passé. Aujourd'hui, la plupart des animations sont des animations squelettiques (c.-à-d. Pensez à des personnages bien calés) et les outils de création de contenu sont optimisés pour eux.

Blender a un exportateur Collada fonctionnel, mais comme toujours, exporter des trucs depuis Blender peut être ennuyeux. Vous devrez peut-être essayer d'autres exportateurs ou formats de fichiers ou pirater les scripts manuellement si vous rencontrez des problèmes.

Pour charger Collada, utilisez des bibliothèques telles que FCollada ou ColladaDOM (N'essayez pas de l'analyser par vous-même, Collada est un monstre XML vraiment gros ...). Il y a aussi Open Asset Import Library , qui charge ~ 25 formats de fichiers, y compris Collada (et tous les autres formats que vous mentionnez). Ce serait un excellent choix car il vise particulièrement les développeurs de jeux et fournit sa sortie dans un format adapté au rendu en temps réel. Mais pour être honnête: je suis l'un de ses co-auteurs, donc je suis probablement un peu partisan.

Dernier point mais non le moindre : le format de fichier que vous utilisez pour importer vos actifs ne doit pas définir les capacités de votre moteur et les techniques qu'il utilise - il doit plutôt être l'inverse. Que vos animations soient super lisses n'est pas une question de format d'importation, il s'agit de la technique que vous utilisez pour animer les maillages et de la qualité de leur modélisation en premier lieu. Le format d'importation devrait simplement vous aider à importer vos données de Blender dans votre jeu.

Alexander Gessler
la source
Merci beaucoup pour votre réponse détaillée. J'ai entendu parler de Collada la première fois aujourd'hui (recommandé par un ami) et je ne savais pas s'il était vraiment prêt à être utilisé dans un environnement de production. Je vais essayer maintenant, merci. :-)
stschindler
2
Bon conseil, surtout la référence à AssImp. Je ne suggérerais pas COLLADA, cependant, car personne ne semble le supporter de manière cohérente et correcte, et il est plutôt volumineux à des fins de contenu réel. Je suggère d'utiliser quelque chose comme MD5, qui vous donne le squelette et est assez largement implémenté correctement (je pense). Je ne rejetterais pas aussi facilement MD2; il existe de nombreux exemples de modèles, et vous pouvez l'animer trivialement à moindre coût (bien qu'il soit inutile pour les ragdolls ou ce que vous avez).
ChrisE
Je vais simplement jouer avec différents formats de fichiers. Grâce à AssImp, ce sera facile à faire. MD2 était en effet ma première idée, mais il est assez coûteux de créer, je pense, au lieu d'exporter simplement les bons os. Les ragdolls ne sont pas nécessaires dans mon cas, j'ai juste besoin de modèles animés, sans physique.
stschindler
Il y a en effet de très mauvais exportateurs Collada, mais au moins le format est bien documenté, vous savez donc toujours à qui vous en prendre :-). MD5 est également un bon candidat, mais je ne sais pas à quel point les exportateurs de Blender sont bons. MD2 a une représentation très limitée des sommets et souffre de limites de taille et de précision. Je ne l'utiliserais vraiment pas, il n'y a aucune raison de le faire.
Alexander Gessler
wazim.com/Collada_Tutorial_1.htm est un très bon tutoriel approfondi pour charger collada, mais je recommanderais toujours d'utiliser une bibliothèque à la place.
Exilyth