Quel format de fichier 3D mon moteur doit-il utiliser si je ne veux pas le changer plus tard? [fermé]

8

Existe-t-il un format de facto pour exporter un modèle 3D d'un logiciel de modélisation vers un moteur de jeu?

Je sais que cela varie selon le moteur et la situation, mais quelle est l'idée générale qui vient à l'esprit des développeurs de jeux qualifiés lorsque cette question se pose?

Dans mon esprit, le format obj apparaît, mais il ne prend pas en charge l'animation.

Alors, quel pourrait être le meilleur format qui prend en charge / couvre plus ou moins toutes les fonctionnalités qu'un moteur moderne peut couvrir? FBX? Collada?

Un aperçu professionnel serait utile.

Quazi Irfan
la source
Je pense que le terme que vous cherchiez est "de facto", pas "De-factor".
Nicol Bolas
@ nicol-bolas fixed
Quazi Irfan

Réponses:

8

Il n'y a pas de "meilleur format"; il n'y a que différents niveaux de gêne.

Collada fait à peu près tout ce que vous pourriez vouloir faire, au prix de faire tout ce que vous ne voulez pas faire aussi. Cela en fait un format d'échange utile, mais ce n'est pas quelque chose que vous devriez probablement chercher à charger directement dans votre jeu.

FBX n'est pas aussi largement pris en charge, étant un format propriétaire. Et c'est ... un format propriétaire, mais au moins la spécification de format est disponible.

La plupart des développeurs de jeux doivent masser les données, quelle qu'en soit la nature, en quelque chose que leur jeu peut charger et lancer sur l'écran aussi rapidement que possible. Par conséquent, la plupart des moteurs de jeu qui prennent en charge les formats d'échange utiliseront un outil hors ligne pour les transformer en leurs formats spécifiques au jeu.

Et c'est généralement une bonne façon de travailler. Vous avez une bonne séparation du code: le code qui masse les données est distinct du code qui les charge dans votre jeu. Vous obtenez des performances de chargement rapides, tout en ayant la possibilité de formater les données selon vos besoins pour une vitesse et une utilisation maximales. Et vous pouvez toujours voir à quoi ressemblent les données dans votre format de fichier exporté d'origine, qui est généralement une sorte de fichier texte.

Nicol Bolas
la source
"mais pas quelque chose que vous devriez probablement chercher à charger directement dans votre jeu." Pourquoi?
Quazi Irfan
"..utiliser un outil hors ligne pour les transformer dans leurs formats spécifiques au jeu." Doit-il s'agir d'une conversion de niveau binaire?
Quazi Irfan
4
@iamcreasy: "pourquoi?" Avez-vous regardé Collada? Voulez-vous vraiment charger cela, faire autant de conversions ASCII en flottant, puis après tout ce qui est fait, compresser les données dans la forme finale utilisée par votre jeu?
Nicol Bolas
2
@iamcreasy: Il n'est pas nécessaire que ce soit un fichier binaire, mais ce n'est pas une mauvaise idée non plus. Dans certains cas, vous pouvez le charger directement sous forme d'image mémoire. Vous pouvez même charger des données de sommet directement dans un pointeur d'objet tampon mappé. Les temps de chargement dans les jeux sont suffisamment mauvais sans que quelqu'un ne les aggrave.
Nicol Bolas
1
@iamcreasy Ce doit être des données binaires, tout le reste est un gaspillage pour un moteur
Maik Semder