Entwickler-Ecke
Multimedia / Grafik - Wie 3d-objekt laden
Fighter#1 - Do 23.02.06 21:43
Titel: Wie 3d-objekt laden
Guten Tag,
Neben dem das ich dür delphix mein Delphi 5 wieder auspacken musste bin ich damit ganz zufrieden *höhö* hab ja auch noch nix damit gemacht.
Ich möchte bitte keine Antworten, wie nimm doch bitte GLScenne, GLXtreem, . . .
Ich möchte nur wissen wie ich damit eine *.3ds Datei anzeige.
Phobeus - Fr 24.02.06 02:53
Du schließt gut gemeinte Ratschläge aus, die Dich davor bewahren sollen, einmal ziemlich frustriert zu sein? Kein Problem! Solche wünsche können erfüllt werden... breche hier ab zu lesen!
Nimm irgendetwas anderes... und zwar am besten die Header einer Grafik-API direkt, da Dir das ermöglicht auch aktuelle Features zu verwenden und vor allem die Anleitung des Herstellers. DelphiX schafft die Illusion, dass man schnell etwas erreichen kann. Dies ist absolut falsch. Man erreicht ein paar Ziele und stellt dann fest, dass viele Dinge, sich nicht so realisieren lassen, wie man es sich wünscht. Wenn es dann auch noch niemand richtig mehr nutzt, steht man alleine da und kommt zu dem Punkt, dass das selbstschreiben der Initalisierung schneller geht als das rumdoktern.
Lieber technische Gründe gegen DelphiX? Das 3D von DelphiX basiert auf dem Retained Mode von Direct3D, der von Microsoft selbst gegen DirectX 5 zur Hölle gejagt wurde. Entsprechend wenig Spass wirst Du damit haben, entsprechend wenig wirst Du dafür finden. IMAO gab es Möglichkeiten auch den Intermediate Mode anzusteuern, das Erlernen von diesen, gab ich vor ca. 5 Jahren auf, da er zahlreiche Fehler enthielt und nicht alles Features ermöglichte. Seither wurde DelphiX nicht aktualisiert, ergo wirst Du stets auf einer DirectX5/6-Implementation herumkrebsen und da hat sich die Jahre über ja doch schon einiges geändert...
Eine 3DS-Datei ist ein Chunk-basierendes Format. Im Netz findet man zahlreiche Anleitungen wie man diese dann auswertet und bestimmt. Du mußt also alle Chunks der Datei durchgehen, schauen, ob es sich dabei um das Chunk handelt, dass die Struktur beinhaltet und kannst den Teil dann entsprechend auslesen. Gleiches gilt in jedem Fall auch für Materialien und Texturkoordinaten. Hast Du diese ermittelt müßtest Du die daraus resultierenden Dreiecke nur noch an die Grafikkarte schicken.
Dafür wirst Du allerdings vermutlich den Immendiate Mode von Direct3D benötigen. Darüber hinaus ist von 3ds als Format eher abzuraten, da doch eine Menge Mist herum geschleppt wird. Das ganze ist schließlich gedacht um eine Szene zu speichern und nicht ein Modell. Auch ist die Implementation gerade für einen Einsteiger eher komplex. Ein vorhandener Loader (für die Header, nicht DelphiX) ist mir nicht bekannt (was nicht heißt, es würde keine geben).
Einfachere Formate sind unter DirectX (.x) (wobei Leute, die nicht DelphiX verwenden, sondern die richtigen Headern, die Möglichkeit haben die Loader zu verwenden, die DirectX mitliefert) oder Milkshape, dass man in ein paar Stunden ausgelesen haben könnte und darüber hinaus sogar Bones unterstützt. Eine OpenGL-Implemtation von md3ds gibts bei DGL, für etwaige Loader für 3DS und .x musst Dich an die Kollegen von delphidev wenden. Verfügbare Loader (jedoch für OpenGL, aber das läßt sich relativ schmerzfrei an Direct3D anpassen) gibt es von Mike Liscke (sehr ausführlich) oder von Noeska als eine Variante, die sich weitesgehend auf jene Chunks beschränkt, die man typischerweise bei einem 3D-Programm erwartet.
Sollte also die schwebende Forderung nichts gegen DelphiX zu sagen aufgehoben werden, kann ich gerne deine Fragen weiter beantworten. Ansonsten... gute Nacht!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!