Registriert: Di Jul 26, 2005 21:13 Beiträge: 13 Wohnort: Dresden
Hallo Leute,
Vielleicht hat hier jemand eine Idee für mein Problem.
Ich bin dabei, den Loader von Mike Lischke (http://www.lischke-online.de/3DS.php) dahingehend zu modifizieren, dass ich die einzelnen Meshes eines 3DS-Modells verschieben, rotieren etc. kann. Soweit ich die Demoapplikation verstanden habe, wird die 3DS-Datei geladen und dann eine Displayliste erzeugt, die alle Meshes enthält. In der FormPaint-Prozedur des Viewers wird dann nur noch diese eine Displayliste aufgerufen, doch ich brauch an dieser Stelle irgendwie Zugriff auf die Listen der einzelnen Meshes, damit ich sie einzeln transformieren kann.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ich kenne den Loader zwar nicht, aber dann mach es doch so, dass er für jedes Mesh eine einzelne DL erstellt oder, dass du am einfachsten für jedes Mesh eine eigene 3DS Datei anlegst.
Soweit wie ich Noeskas Loader kenne erstellt er auch nur eine komplette DL.
Registriert: Di Jul 26, 2005 21:13 Beiträge: 13 Wohnort: Dresden
Ja, mit mehreren Displaylisten würde das sicher gehen, aber ich kenn mich nicht so besonders mit dem 3DS-Format aus (ist für mich eher Mittel zum Zweck) und hoffe drauf, dass das hier vielleicht schon jemand gemacht hat und eine einfache Lösung hat.
Wenn nicht, dann muss ich mir das irgendwie selbst zusammenbasteln.
Mehrere 3DS-Dateien zu nehmen, dürfte dagegen problematisch sein, da ich eigentlich beliebige 3DS-Szenen mit dem Programm manipulieren will und diese dann vorher erst aufgesplittet werden müssten - zu hoher Aufwand.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich glaube nicht das das geht. Aus dem einfachen grund, dass man nicht vorraussetzen kann, dass Exportierte Objekte jeweils aus einem Mesh bestehen. Wenn z.B. jemand einen Mann und ein Auto als 3DS Exportiert kannst du nicht davon ausgehen, dass es 2 Meshs in der Datei gibt. Sondern es könnten durchaus 5126 sein. Z.B. Box1...Box771 welche z.B. verschiedene Teile des Fahrzeugs darstellen.
Also ... ich denke das ist ein konzeptionelles Problem.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Di Jul 26, 2005 21:13 Beiträge: 13 Wohnort: Dresden
Ich verstehe, was Du meinst. Auch wenn es im Endeffekt nur Teile von Objekten sind, würde mich das interessieren.
Im Demoprogramm werden ja alle Meshes in einer Listbox angezeigt und mein Ziel ist es, wenn ich diese einzeln manipulieren könnte (also draufklicken und über Editfelder neue Translationen oder Rotationen eingeben).
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Dann guck dir mal den Loader von Noeska an (gl3DS.pas) Auf den ersten blick scheint das was da abläuft zwar recht okkult zu sein, aber man kann strukturen erkennen. Vorallem in den verwendeten Klassen. Dort gibt es eine Liste wo alle Meshs abgelegt wurden. Schau dir entsprechend mal an wie das gemacht wird, oder nimm den Laoder von Noeska für deine Manipulationen, dort hast du Zugriff auf die Meshs.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Di Jul 26, 2005 21:13 Beiträge: 13 Wohnort: Dresden
Ok, falls es jemanden interessiert, ich hab es jetzt hinbekommen, indem ich für jedes Mesh eine Displayliste generiere und dann im OnPaint alle Listen nacheinander mit den dazugehörigen Transformationen aufrufe. Das alles im Loader von Mike Lischke. Der Loader von Noeska hat mir leider nix genützt, ich hab kein einziges von seinen Programmen zum laufen gekriegt, immer haben irgendwelche Units gefehlt oder Datentypen waren nicht definiert.
Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.