Welches 3D-Dateiformat sollte meine Engine verwenden, wenn ich es später nicht ändern muss? [geschlossen]

8

Gibt es ein De-facto-Format zum Exportieren eines 3D-Modells aus einer Modellierungssoftware in eine Spiel-Engine?

Ich weiß, dass es je nach Engine und Situation unterschiedlich ist, aber was ist die allgemeine Idee, die einem erfahrenen Spieleentwickler einfällt, wenn diese Frage auftaucht?

In meinen Augen kommt das obj-Format auf, aber es unterstützt keine Animation.

Was könnte das beste Format sein, das mehr oder weniger alle Funktionen unterstützt / abdeckt, die eine moderne Engine abdecken kann? FBX? Collada?

Einige professionelle Einblicke würden helfen.

Quazi Irfan
quelle
Ich denke, der Begriff, den Sie gesucht haben, ist "de facto", nicht "De-Faktor".
Nicol Bolas
@ Nicole-Bolas behoben
Quazi Irfan

Antworten:

8

Es gibt kein "bestes Format"; Es gibt nur unterschiedliche ärgerliche Ebenen.

Collada macht so ziemlich alles, was Sie vielleicht wollen, auf Kosten von allem, was Sie nicht wollen. Dies macht es zu einem nützlichen Austauschformat, aber nicht zu etwas, das Sie wahrscheinlich direkt in Ihr Spiel laden sollten.

FBX wird nicht ganz so häufig unterstützt, da es sich um ein proprietäres Format handelt. Und es ist ... ein proprietäres Format, aber zumindest die Formatspezifikation ist verfügbar.

Die meisten Spieleentwickler müssen die Daten, unabhängig von der Art, in etwas einmassieren, das ihr Spiel so schnell wie möglich laden und auf den Bildschirm werfen kann. Daher verwenden die meisten Spiele-Engines, die die Austauschformate unterstützen, ein Offline-Tool, um sie in ihre spielspezifischen Formate umzuwandeln.

Und das ist im Allgemeinen eine gute Art zu arbeiten. Sie haben eine gute Trennung des Codes: Der Code, der die Daten massiert, ist getrennt von dem Code, der sie in Ihr Spiel lädt. Sie erhalten eine schnelle Ladeleistung und können die Daten dennoch so formatieren, wie Sie es für maximale Geschwindigkeit und Verwendung benötigen. Und Sie können immer noch sehen, wie die Daten in Ihrem ursprünglich exportierten Dateiformat aussehen, bei dem es sich im Allgemeinen um eine Art Textdatei handelt.

Nicol Bolas
quelle
"Aber nicht etwas, das Sie wahrscheinlich direkt in Ihr Spiel laden möchten." Warum?
Quazi Irfan
"... verwenden Sie ein Offline-Tool, um sie in ihre spielspezifischen Formate umzuwandeln." Muss es eine Binärpegelkonvertierung sein?
Quazi Irfan
4
@iamcreasy: "warum?" Hast du dir Collada angesehen? Möchten Sie das wirklich laden, so viele ASCII-zu-Float-Konvertierungen durchführen und dann nach all dem die Daten in die endgültige Form komprimieren, die von Ihrem Spiel verwendet wird?
Nicol Bolas
2
@iamcreasy: Es spielt keine hat auf eine binäre Datei sein, aber es ist keine schlechte Idee , denn es eine entweder zu sein. In einigen Fällen können Sie es direkt als Speicherabbild laden. Sie können sogar Scheitelpunktdaten direkt in einen zugeordneten Pufferobjektzeiger laden. Ladezeiten in Spielen sind schon schlimm genug, ohne dass jemand sie noch schlimmer macht.
Nicol Bolas
1
@iamcreasy Es hat Binärdaten sein, ist alles andere ist eine Verschwendung für einen Motor
Maik Semder