3D: .obj oder .d3d?

  • 3D: .obj oder .d3d?

    Guten Abend allerseits,

    ich habe eine leistungstechnische Frage zum 3D-Modus des Gamemakers:
    Bekannterweise kann man 3D-Modelle auf mehrere Weisen importieren; hier bietet sich z.B. die vorausgehende Konvertierung in das *.d3d-Format (mit Marzipan) oder aber ein interner Spielimport mit Hilfe eines geeigneten Scriptes (vor allem Mosaic Light) an. Nun frage ich mich, welche dieser beiden Methoden weniger Rechenleistung und damit auch -zeit benötigt, denn der Import von komplizierten 3D-Modellen nimmt schnell eine Menge Zeit in Anspruch. Oder kennt hier jemand vielleicht sogar einen noch schnelleren Weg, solche Dateien zu laden?
    Es würde bei meinen Projekten nämlich viel weiterhelfen, wenn die Importzeiten von 3D-Modellen verkürzt werden könnten, weil sie bislang immer eine lästige Warterei darstellten.
  • Ich hab es bisher immer über Marzipan gelöst und fand es eigentlich nicht allzu schlimm. Bei "Aztec God" hab ich die 3D Modelle einfach als Scripts angelegt. Dann hast du dafür keine Ladezeiten. Allerdings musst du ja eine Unmenge an Modellen haben, wenn du von so enormen Wartezeiten sprichst.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Ich mache meine modelle immer mit anm8or. Ist zwar nicht so umfangsreich und so benutzerfreundlich, aber es bietet eine nette funktion als d3d zu exportieren. Sogar farben und transparenter faces werden mitgenommen. Das nimmt einem sehr viel arbeit ab.
    @ furchbar-lange-wartezeiten: man sollte immer beachten - der gm ist nichtgerade leistungstark. Er besitzt die wichtigestenr funktionen, und mit ein bisschen mathe und können bekommt man auch nette effekte hin, aber leistungsstark ist der gm keineswegs. Und 10 sekunden ladezeit sollte der benutzer auch wegstecken können sollen (auch wenn das schon sehr viel ist). Man sollte nur einen schönen ladebalken basteln, und das warten wird gleich ein bisschen angenehmer ;)

    MfG SDX
  • Nun ja, geradezu enorme Ladezeiten habe ich zwar (noch) nicht, aber der Import eines einzigen Fahrzeugmodells im .obj-Format (also mit Mosaic Light) mit ~800 Vertices braucht schon ca. vier Sekunden. Vor allem beim Testen wird das schnell lästig. Also suche ich hier jetzt nach Möglichkeiten, die Technik zu optimieren ;).
    Als Gamemaker-Script komplizierte Modelle anzulegen, dürfte wohl schnell äußerst unübersichtlich werden. Um Modelle zu erstellen, benutze ich deshalb Blender und exportiere sie dann in das .obj-Format.
    Ich habe bislang, wie schon erwähnt, dieses On-The-Fly-Importscript "Mosaic Light" (für .obj-Dateien) verwendet, weiß aber nicht, ob mit dem Umweg über Marzipan später mehr Ladezeit eingespart wird. Ich frage mich nun, welche Methode von beiden besser ist.
  • Richlord schrieb:

    ~800 Vertices

    Ist schon alzuviel für nur ein einziges model. Es reichen oft schon weit weniger Vertices. Mit einer guten textur lassen sich oftmals schon so einiges wett machen. Schau mal auf bekannt modelle in spielen. Z.b. CS. Wenn man genau hinschaut, merkt man dass ein spieler oft nicht aus mehr ~30-50 vercites besteht. Nur die textur und besonders die schattirungen lassen es sehr detailiert wirken.

    Und der umweg über marzipan spart ladezeit. Wie mauge schon erklärt hat, hat man dann o gut wie keine..

    MfG SDX
  • Dieses eine Modell ist das detaillierteste im gesamten Spiel, es ist das Fahrzeug, dass der Spieler steuert und ständig von allen Seiten betrachtet. Wenn es einmalig vier Sekunden lang lädt, ist das natürlich kein Problem, man muss nur aufpassen, dass sich die Ladezeiten nicht durch mehrere solcher Modelle summieren.
    Ich werde dann in Zukunft meine Modelle mit Marzipan ins Spiel einbinden, weil das anscheinend schneller vonstatten geht. Falls jemand hier allerdings einen noch schnelleren Weg dafür findet, dann immer her damit! ^^
    Ladezeiten hat man dann nur leider immer noch, das ist unvermeidbar. Mauge hat einen direkten Codeaufbau von 3D-Modellen in GML beschrieben, wobei die Ladezeiten dann tatsächlich stark minimiert werden. Beim Umweg über Marzipan werden sie hingegen nur etwas verkürzt.
  • Richlord schrieb:

    Mauge hat einen direkten Codeaufbau von 3D-Modellen in GML beschrieben, wobei die Ladezeiten dann tatsächlich stark minimiert werden. Beim Umweg über Marzipan werden sie hingegen nur etwas verkürzt.

    Ich exportiere die Modelle aber trotzdem über Marzipan. Da gibt's die Möglichkeit, direkt nach GML zu konvertieren.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Ob es der Leistungssparendste ist, kann ich dir nicht sagen. Aber es ist der schnellste Weg, was die Ladezeiten betrifft. Ich hab Marzipan z.Z. nicht hier, sonst könnt ich dir sagen, wie genau das geht. So kompliziert ist es aber nicht, musst du einfach mal schauen.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Meine Modelle erstelle ich vorzugsweise mit Blender, denn ich finde, es ist die mächtigste Freeware zur 3D-Modellierung.

    Die Ulitmate3D-Dll kannte ich schon und kann nur zustimmen, es ist tatsächlich die beste 3D-Dll für den Gamemaker. Sie macht sogar die Erstellung von kommerziellen 3D-Projekten mit dem Gamemaker möglich, würde ich sagen.
    Allerdings brauche ich sie für mein derzeitiges Projekt nicht, sie ist mehr für kompliziertere Spiele geeignet. Ich hätte dann am Ende einen zu großen Haufen unverwendeter Dateien im Spieleverzeichnis.