AW: 3D-Spieledateien exportieren
Wahrscheinlich ist das 3D-Objekt in mehrere unabhängige Teile partitioniert, wovon jedes Teil bis zu 2^16 Vertices haben kann.
Aber ohne die komplette Datei zu haben, ist es wohl unmöglich, das exakte Format zu rekonstruieren. Ich glaube außerdem auch nicht, dass irgendjemand Lust dazu hat... Eventuell könntest du auch das eigentliche Programm reverse-engineeren/debuggen (Stichwort IDA Pro). Allerdings bewegst du dich dann rechtlich u.U. zumindest in einer Grauzone. Und Software von dieser Komplexität zu reverse-engineeren ist auch nicht gerade einfach, schon gar nicht, wenn man es vorher noch nie gemacht hat. Oder du betreibst noch ein bisschen Social Engineering, um mehr Informationen von diesem Programmierer rauszukriegen ;). Das dürfte wahrscheinlich noch das erfolgsversprechenste sein. |
AW: 3D-Spieledateien exportieren
Ok, ich hab den Programmierer nochmal ausgequetscht, es scheint als ob die Grundlegende Struktur dieser Flächen in einer anderen Datei in form einer Tabelle hinterlegt ist, somit muss ich mich jetzt erstmal damit anfreunden (juhu^^)
Danke trotzdem für die Hilfe. PS: Kennt sich jemand in der Speicherung von Tabellen in binärdateien aus? |
AW: 3D-Spieledateien exportieren
Die Flächen erzeugt doch die Grafikkarte selber. Man kann der Grafikkarte einen Vertex- und Indexbuffer übergeben und die macht daraus die Fläche.
Beispiel für ein Dreieck - Koordinaten x,y,z: Punkt 1 - Index 0: 1,1,0 Punkt 2 - Index 1: 1,0,0 Punkt 3 - Index 2: -1,1,0 Der Vertexbuffer enthält nun (1,1,0), (1,0,0), (-1,1,0). Der dazugehörige Indexbuffer enthält: 0,1,2. Die Grafikkarte weiß nun das Punkt 1, der am Index 0 im Vertexbuffer ist, also 1,1,0 ... usw. Wenn du an die Vertices (deine "Schnittpunkte") und an die Indices kommst, kannst du über die entsprechenden OpenGL oder DirectX Funktionen das Modell am Bildschirm zeichnen. Das alles ist hier stark vereinfacht erklärt und da gibt es noch eine Menge mehr zu beachten. Dazu bitte weiterführende Dokumentation lesen. |
AW: 3D-Spieledateien exportieren
Aha, langsam wird mir das System etwas klarer. Auf Deutsch gesagt, brauche ich dann eigentlich nur 2 rießige Arrays, die ich dann in eine Ausgabedatei speichern muss (will ja nur einen Konvertor schreiben, die 3D Veränderungen laufen dann über "bessere" Programme).
Letzendlich wird also das ganze wie in einer OBJ gespeichert, bei der pro Zeile ein Punkt oder eine Fläche angegeben wird, sprich v -1.986 0.75 4.654 //Erstelle Point an angegebener XYZ Pos f 1 53 4 // Erstelle Face (Fläche) aus 1. 53. und 4. Scheitelpunkt Werde mich mal darüber etwas schauer machen, danke im vorraus. |
AW: 3D-Spieledateien exportieren
Zitat:
Mir ist vor allem noch immer nicht ganz klar, was du überhaupt machen willst. Möchtest du nun Modelle des Spiel in dein Programm laden? Oder möchtest du 3D-Daten die du selber irgendwie erzeugt hast in ein für das Spiel lesbares Format ausgeben? Und an welcher Stelle kommen diese ominösen "besseren Programme" ins Bild? Ich glaube nicht, dass es mit dem blanken "rauswürgen" eines Vertex- und Indexbuffers getan sein kann. (Zumal diese ebenfalls in einer Fülle verschiedener Formate vorliegen können, ohne dabei überhaupt auf die konkrete Dateistruktur einzugehen.) Wie man es auch dreht und wendet, sobald du Daten eines bestehenden Programmes lesen oder schreiben willst, MUSST du irgendwie an eine genaue Beschreibung kommen. Eine, in der Wörter wie "irgendwie", "andere Infos", "in etwa", und "grob gesagt" nicht vorkommen. Und genau diese brauchen auch wir hier, um dir dann bei konkreten Fragen dazu helfen zu können. Das. Wird. Sonst. Nichts. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz