Frage

Ich bin ein Spiel in JOGL Schreiben und muß den im Spiel Charakter darzustellen. Ich plane für die Zeichenbewegungen Skelett-Animation zu bedienen, und natürlich wird das Zeichen sein gehäutet. Ich kann keine gute Modell Lader JOGL scheinen zu finden, so planen, ich mich Dateityp zu laden, basierend auf Spezifikationen oder so etwas. Ich habe auch Blender als meine 3D-Modellierer zu verwenden, also eine Art, die am besten wäre dort vorhanden ist.

Was Datei des Typs tun Sie empfehlen ich verwenden? .Mischung? .x, .3ds, .md2 / 05.03, ... ?? Ich erinnere mich an etwas mit einem klar definierten Format möchten, so dass ich den Loader einige zufällige Dateiformat, ohne schreiben deobfuscate und es muss die oben genannten Funktionen unterstützen. Alle anderen Informationen können Sie in Bezug auf, warum Sie es wählen und warum ist es am besten wäre zu sehr helpeful!

Danke!

EDIT: Ich werde einen Blender MS3D Exporteure schreiben. Wenn ich fertig bin, werde ich es posten hier .

Inzwischen sehe meine markierte Antwort unten; aber hat sich seitdem weitergegangen. Ich werde nicht halten diese aktualisiert mit dem, was ich tue, aber im Grunde fand ich Jmonkeyengine und es hat bereits einen MS3D Importeur und anderen Subsystemen, die ich Handschrift begonnen hatte. Trotz des Szenengraphen Sachen (weshalb ich vermied Java3D) Ich denke, es wird meine beste Wette, um sich mit ihm zu verbinden, so dass das, was ich bis zu.

War es hilfreich?

Lösung 2

Zunächst einmal vielen Dank an die beiden anderen Beantworter. Auch basszero Sie sich über die Mischung Datei waren, und ich sollte Wikipedia zuerst überprüft haben! Es ist eine nahezu nutzlos binäre Dump von Blendern Speichern.

Kurz nach dieser Frage zu schreiben, habe ich mich entschlossen voran zu gehen und einen OBJ-Loader zu schreiben, weil 1) es mir die Erfahrung des Ladens ein 3D-Dateiformates geben würde, und 2) schien es ein schönes, häufig verwendetes Format, sondern auch einfach Laden. Es endete eine große Entscheidung zu sein, weil es mir gemacht zu realisieren, habe ich nicht wirklich kenne den Unterschied zwischen einem Objekt und eine Gruppe, und ich wusste auch nicht viel über Materialien. Es hat mir geholfen, den Code für diese 3D-Strukturen herzustellen.

Beide Antworten empfehlen XML-basierte Formate. Ich will nicht, ein XML-Format. Ich glaube nicht, dies ist der richtige Ort für XML. Ich glaube, dass diese Formate erstellt wurden, weil XML flexibel, universell ist, und einfach zu erstellen Schemata für, aber das ist nicht das, was ich suche. Ich möchte ein Format, das schnell zu laden (XML ist nicht, relativ gesehen), es muss nicht flexibel oder vom Menschen lesbar sein, und etwas, das ich einen Importeur für, anstatt sich auf XML-Bibliotheken schreiben kann. basszero sagte sogar, „auf Kosten von XML zu sein“, und er ist ganz richtig; es ist ein kostengünstiges, dass ich nicht das Gefühl, ist die Belastung wert.

Mein OBJ Lader erfolgt. Ich trennte mich von den tatsächlichen Modellklassen und implementiert sie mit einer MeshFactory Schnittstelle, so dass ich in der Zukunft eine andere Lader schreiben, wenn ich wollte ... Was ist der Plan. Ich habe mehr Forschung in den letzten paar Tagen tun und entschied sich für das MS3D Format.

Das MS3D Format unterstützt Skelett Rigging (Gelenk) und Keyframe-Skelett-Animation und unterstützt weiterhin eine Textur und Alpha-Map. Darüber hinaus ist es ein leicht computerlesbares Binärformat, die keinen Platz verschwendet (wie XML und OBJ tun) mit den Menschen lesbaren Etiketten und Etiketten und so weiter.

Blender leider nicht über einen (Arbeits-) MS3D Export-Skript, so dass ich ein Skript für es selbst schreiben. Glücklicherweise ist es nicht ein schwieriger Prozess, und Sie können durch Blender Dokumentation und verwenden andere Exporteure als Beispiele lesen. Ich werde auf meinem Python auffrischen müssen, aber sonst scheint es sehr einfach, aus dem, was ich von anderen Skripten gesehen habe.

Die Java-Seite der Dinge soll einfach sein, in der Tat wird es noch einfacher als das OBJ-Format, da MS3D stärker strukturiert ist. Ich fand Spezifikationen für das MS3D Format online, in C-Stil (Genie!), so sind sie unglaublich selbsterklärend und ich habe keine weiteren Fragen über das Format. Ich werde meine Umsetzung dieser Spezifikation werden stützen ab, obwohl ich zu einem späteren Zeitpunkt kann meine eigenen Variationen umzusetzen; das ist die große Sache über meinen eigenen Importeur und Exporteur zu schreiben, kann ich das Format ändern, wie ich es sehen.

Alles in allem habe ich beschlossen, dies ist die beste Lösung.

Und basszero, sind Sie absolut richtig, wie ich von meinem OBJ loader gesehen habe: „Sobald Sie haben alle es lesen in, Organisation von Daten (Anzeigeliste, Texturen, Vertex-Array, Eckenpuffer, usw.) und Rendering ist ein ganz anderes Tier. "

Cruachan: keine Java3D für mich, ich bleibe mit JOGL. Ich besitze tatsächlich das Buch (obwohl es im Moment nicht zugänglich ist), obwohl ich mich nicht erinnern, wie er Modelle geladen, aber ich bin mir ziemlich sicher, dass er das Java3D Format Lader verwendet, die es automatisch. Nicht etwas, was ich bin der Planung über die Verwendung ... Sorry!

-Ricket

Andere Tipps

Wenn Sie mit nur Geometrie leben können, oder bereit sind, Ihre eigene Texturierung zu handhaben, dann ist OBJ wahrscheinlich das einfachste und weit 3D-Dateiformat unterstützt. Es ist im Grunde die ascii von 3D-Modellierung.

Sonst würde ich in Richtung vrml neigen. Es ist gut definiert und es gibt zumindest um einige Codes zum Einstieg. Ich habe erfolgreich VRML-Modelle in JAVA3D mit frei verfügbarem Code geladen. Native Dateigröße neigt dazu, groß zu sein, aber das kann durch die Verwendung eines komprimierten Format gelöst werden.

Ich würde nicht empfehlen .3ds. Das einzige Mal, dass ich war ein Leser für dieses Format behandelt haben in Delphi Pascal, und es ist chaotisch, schlecht definierten, schwierig zu verarbeiten und neigt dazu, solche eine Menge ‚Variationen‘ zu haben, dass, obwohl ich es geschafft, meine Leser Handling Modelle aus exportiert zu bekommen 3D-MAX selbst ganz gut es viele Modelle aus anderen Paketen abgelehnt, die im 3DS-Format sein behauptet, aber waren nicht richtig ausgebildet ist.

ADDED: Auch würde ich empfehlen Ihnen einen Blick auf die Java3D API nehmen und die O'Reilly-Buch Killer-Game Programming in Java als auch wenn Sie die Java3D Route nicht nach unten gehen es wahrscheinlich ist, eine Menge Ihre Fragen zu beantworten.

Ich glaube, .blend ist meist eine binäre Dump in Speicherstrukturen aus Mixern, nicht dir hilft viel außerhalb des Mixers. Verwenden Sie Blender Modell, aber die Ausfuhr in ein anderes Format.

Es kann ein wenig umfangreich sein, aber ich habe gehört, Collada sehr schön 3D-Informationen einpackt (auf Kosten XML zu sein). Der Vorteil ist, dass es wahrscheinlich eine propery Schema-Definition, die Sie durch JAXB passieren könnten in einem vollen Parser resultierenden w / keine Arbeit von Ihnen.

Die .md * Formate können auch eine gute Alternative sein. Sie sind von iD-Motoren (q1, q2, q3, q4, doom3) und sie sind dokumentiert. Sie enthalten auch Animationen Sequenzen.

Sobald Sie haben alle sie lesen in, Organisation von Daten (Anzeigeliste, Texturen, Vertex-Array, Eckenpuffer, usw.) und Rendering ist ein ganz anderes Tier.

Woah, ein Mann, werden Sie die MS3D Exporteur lösen, wenn Sie es zu beenden? Und wenn ja, wie kommt das? Ich brauche wirklich meine Hände auf einem Exporteur zu erhalten, die für die Animation funktioniert und dass Fragmotion verwendet, und es sieht aus wie das, was Ihr tut, ist meine letzte Hoffnung.

Es ist ein Open-Source .blend Dateileser, der alle Informationen aus einer .blend Datei extrahieren kann, einschließlich Maschen, Texturen, Skelett und Animation.

Sehen Sie einige Beispiele mit Ogre und Irrlicht hier: http://gamekit.googlecode.com

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top