AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

3D-Spieledateien exportieren

Ein Thema von the3dcloser · begonnen am 12. Okt 2013 · letzter Beitrag vom 14. Okt 2013
Antwort Antwort
Seite 2 von 2     12
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#11

AW: 3D-Spieledateien exportieren

  Alt 12. Okt 2013, 23:56
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.
  Mit Zitat antworten Zitat
the3dcloser

Registriert seit: 5. Okt 2013
19 Beiträge
 
#12

AW: 3D-Spieledateien exportieren

  Alt 14. Okt 2013, 13:46
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?

Geändert von the3dcloser (14. Okt 2013 um 13:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#13

AW: 3D-Spieledateien exportieren

  Alt 14. Okt 2013, 14:58
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.
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
the3dcloser

Registriert seit: 5. Okt 2013
19 Beiträge
 
#14

AW: 3D-Spieledateien exportieren

  Alt 14. Okt 2013, 16:32
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.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.628 Beiträge
 
Delphi 2007 Enterprise
 
#15

AW: 3D-Spieledateien exportieren

  Alt 14. Okt 2013, 17:04
PS: Kennt sich jemand in der Speicherung von Tabellen in binärdateien aus?
Man kann das auf theoretisch unendlich viele Arten und Weisen machen. Nochmal: Ohne ganz genaue, bitweise, verlässliche Dateiformatbeschreibung ist alles nur Raten - und selbst dann noch echt langwierig. Wenn man überhaupt weiter kommt. Hast du diese nicht, vergiss dein Vorhaben lieber. Das ist nicht böse gemeint, aber du klingt nicht wie jemand, dem man Reverse-Engineering völlig unbekannter Dateiformate zutrauen könnte. Würde ich mir selbst auch nicht. Eigentlich nur recht wenigen hier, und dann braucht man noch Unmengen an Zeit und Muße dafür.


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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf