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 1 von 2  1 2   
the3dcloser

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

3D-Spieledateien exportieren

  Alt 12. Okt 2013, 10:31
Hallo Community,

Ich bin gerade an einem Programm zum auslesen von 3D-Spieledateien dran, diese sollen anschließend in ein bekannteres Format (z.B. 3ds/OBJ/LWO/usw.) konvertiert werden.

Die Scheitelpunkte kann ich aus der Datei ohne Probleme auslesen, jedoch bekomme ich Probleme bei den Flächen.
Angeblich sind diese irgendwie "pre-computed" bei Spielen um das Laden zu beschleunigen. Jedoch komme ich mit dem Auslesen dieser Flächen nicht klar.

Kann mir dabei jemand Tipps o.ä geben, wie man dabei am besten Vorgeht?
  Mit Zitat antworten Zitat
Medium

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

AW: 3D-Spieledateien exportieren

  Alt 12. Okt 2013, 12:02
Wenn du ein paar Infos geben könntest, könnte man dir bestimmt helfen.
"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
the3dcloser

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

AW: 3D-Spieledateien exportieren

  Alt 12. Okt 2013, 12:24
Dazu müsste ich auch wissen, welche Infos du gerne hättest.

Das hier ist der Code für einen Scheitelpunkt, neben den XYZW-Werten liegen hier auch noch ein paar andere Sachen drin:

A8C6C2F6B944000050C680FF8000343333C3DFDDDD423433B3 C3DFDD5D438C800000E7B691000000


Hier ist der erste Abschnitt der Datei, wo die Flächen anfangen müssen (der Dateiheader ist noch dabei):

00000001000200000002000300030002000400030004000500 05000600070005000400060007000800090007000600080009 0008000A0009000A000B000C000D000E000C000E000F001000 11001200100013001100140015001600140017001500180019 001A0018001A001B001B001C001D001B001A001C001D001C00 1E001D001E001F001F001E0020001F00200021002100200022 00210022002300230022002400230024002500250024002600 250026002700270028002900270026002800290028002A0029 002A002B002B002C002D002B002A002C002D002E002F002D00 2C002E002F00300031002F002E003000310032003300310030 00320033003200340033003400350035003600370035003400 3600370036003800370038003900390038003A0039003A003B 003B003A003C003B003C003D003D003C003E003D003E003F00 3F003E0040003F004000410041004000420041004200430043 00420044004300440045004500460047004500440046004700 4800490047004600480049004A004B00490048004A004B004C 004D004B004A004C004D004C004E004D004E004F004F005000 51004F004E0050005100500052005100520053005300540055 00530052005400550056005700550054005600570058005900 57005600580059005A005B00590058005A005B005A005C005B 005C005D0001005E005F0001005F0002006000610062006000 63006100630064006100640065006100640066006500660067 00650066006800670068006900670069006A0067006B006A00 69006B006C006A006C006D006A006C006E006D006E006F006D 006E0070006F00700071006F00710072006F00720073006F00 72007400730075007600770075007700780078007700790078 0079007A007B0078007A007B007A007C007D007B007C007D00 7C007E007F007D007E007F007E00800081007F00800082007F 008100820083007F0083007D007F00830084007D0084007B00 7D00840085007B00850078007B008500750078008100800086 00870081008600880081008700880082008100890088008700 890087008A008A0087008B00870086008B008A008B0069008C 008A0069008D008A008C008D0089008A008E008D008C008E00 8C008F008F008C0090008C00690090008F009000910092008F 00910093008F00920093008E008F0094009300920094009200 95009500920096009200910096009500960097009800950097 009900950098009900940095009A00990098009A0098009B00 9B0098009C00980097009C009B009C009D009E009B009D009F 009B009E009F009A009B00A0009F009E00A0009E00A100A100 9E00A2009E009D00A200A2009D00A300A3009D00A4009D00A5 00A4009D00A600A5009D009C00A600A700A800A900A700AA00 A800AB00AA00A700AB00AC00AA00AD00AC00AB00AD00AE00AC 00AF00AE00AD00AF00B000AE00B100B000AF00B100B200B000 B200B300B000B000B300B400B000B400AE00AE00B400B500AE 00B500AC00AC00B500B600AC00B600AA00AA00B600B700AA00 B700A800B600B800B700B600B900B800B500B900B600B400B9 00B500B400BA00B900B300BA00B400BB00BA00B300B200BB00 B300BC00BB00B200BD00BC00B200BE00BC00BD00BE00BF00BC 00BF00C000BC00BC00C000BB00C000BA00BB00C000C100BA00 C200C100C000C300C100C200C300C400C100C500C400C300C6 00C500C300C600C300C700C700C300C200C700C200BF00BF00 C200C000C800C700BF00C900C700C800C900C600C700CA00C6 00C900CA00CB00C600CB00C500C600CB00CC00C500CC00C400 C500CC00A400C400CD00A400CC00CE00CD00


Vielleicht ist es noch erwähnenswert, dass die Datei >400k Flächen besitzten muss, es handelt sich um ein Szenario.

Wenn das nicht die benötigten Informationen waren, einfach nochmal melden, danke.

PS: Ist es möglich, dass es hier keine Toggle-Funktion gibt?

Geändert von the3dcloser (12. Okt 2013 um 12:26 Uhr)
  Mit Zitat antworten Zitat
hstreicher

Registriert seit: 21. Nov 2009
219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: 3D-Spieledateien exportieren

  Alt 12. Okt 2013, 12:57
du willst die Daten in ein bekannteres Format exportieren , schön

wie wäre es wenn du uns verräts welches "nicht so bekannte" Format verwendet wird ,
welches Spiel, / Engine / PC oder irgendeine Spielekonsole

irgendwas ??
  Mit Zitat antworten Zitat
Medium

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

AW: 3D-Spieledateien exportieren

  Alt 12. Okt 2013, 13:30
Ähm, was meinst du können wir hier so aus einer Wand von Hex-Ziffern sehen? Wie wäre es mal mit einer Formatbeschreibung? Also so um überhaupt mal anfangen zu können? (Also etwas genauer als "ein paar andere Infos sind da auch noch drin"...) Und was sind Scheitelpunkte in diesem Zusammenhang? Die kenne ich nur von Parabeln. Flächen ergeben sich üblicherweise auch aus den Verbindungen der Vertices. Daher: Was sind für dich hier Flächen? Zudem: Was für Werte erwartest du, welche hast du statt dessen? Mit dem was du so bisher gebracht hast kann man einfach genau überhaupt nix anfangen.
"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
Der schöne Günther

Registriert seit: 6. Mär 2013
5.742 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: 3D-Spieledateien exportieren

  Alt 12. Okt 2013, 15:56
Ich dachte, genau darum geht's: Er hat auch keine Beschreibung des Formats.

Aber wenn man wenigstens eine Dateiendung oder einen Produktnamen hätte, könnte man damit vielleicht etwas anfangen.
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: 3D-Spieledateien exportieren

  Alt 12. Okt 2013, 16:59
Aber wenn man wenigstens eine Dateiendung oder einen Produktnamen hätte, könnte man damit vielleicht etwas anfangen.
Vlt = da kommen auch nur dann jene in Frage, die auch Wissen über das Format haben. Der Rest, der helfen will, müsste selber sich über das Format schlau machen - und seien wir ehrlich.. wer würde das tun?

Am besten ists, wenn der Threadstarter alle nötigen Informationen liefert und dann versucht, das Problem gemeinsam zu lösen.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
the3dcloser

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

AW: 3D-Spieledateien exportieren

  Alt 12. Okt 2013, 17:40
OK, danke für die Aufklärung, ich versuche möglichst alles mir bekannte noch zu sagen:

Es handelt sich um ein PC-Computerspiel aus dem Hause Synetic mit dem Namen Alarm für Cobra 11 - Das Syndikat. Ich möchte von diesem Spiel einen Scenario-Editor schreiben, mir fehlt jedoch nur noch der Export/Import des 3D Modells. Das schreiben der Exportdatei macht keine Probleme, ich weis leider nur nicht, wie ich mir noch fehlenden Sachen aus der Spieledatei auslesen kann.
  • Das Format der Spieledatei ist GEO, ich kann jedoch garantieren, dass kein anderes Programm im WWW diese Datei bereits öffnen kann
  • Die Scheitelpunkte beinhalten neben der XYZW-Position auch UV Koordinaten, Spiel-shader, usw.
  • Die Flächen (die jeweils von drei Scheitelpunkten aufgespannt werden) müssen irgendwie in diesem Bytecode integriert werden. (Hierzu noch ein Zitat von einem Programmierer aus früheren Zeiten von älteren Synetic-Spielen:
Zitat:
Anyway, faces are created from index buffer (synetic uses several int16 sets of numbers, for up to 400k vertices) and vertex buffer (just a big array) and that vertex buffer has normals encoded into 3 int8 numbers.
Jedoch versteh ich davon außer Array, Vertex, normals und noch ein bisschen weiterem nicht wirklich viel...


Das waren nun alle Informationen, ich hoffe es langt ansatzweise.

Grüße
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.742 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: 3D-Spieledateien exportieren

  Alt 12. Okt 2013, 21:30
Ich verstehe noch weniger.
  1. several int16 sets of numbers, for up to 400k vertices - "Several" ist jetzt nicht sonderlich genau. Ein Int16 für den Vertex-Index gibt maximal ~64.000 adressierbare Vertices für den Index Buffer her. Wären wir jetzt bei 2^18 kommen wir auf 262144 Möglichkeiten, bei 2^19 auf maximal 524288 adressierbare Vertices. Und der Kerl erzählt jetzt von 400.000. Ist ja fast genau die Mitte
  2. Du sagst weiter oben, dass mehr als 400.000 möglich sein müssen, deine Quelle von "up to".
  3. Deine Quelle spricht von einem nicht näher definierten Vertex Buffer, gibt aber an, dass auf jeden Fall pro Vertex noch die Normale dabei ist. UV-Koordinaten kann man mit Sicherheit erwarten, du erwähnst jetzt noch "Spiel Shader". Vielleicht bin ich schon zu lange aus der Materie draußen, aber Shader-Informationen hätte ich jetzt eher auf den Flächen erwartet. Oder meinst du weitere Mapping-Koordinaten für andere Maps auf den Vertices?
  4. GEO habe ich irgendwie noch als Endung für irgendein eher einfacheres standarisiertes Format in Erinnerung. Welche Tools hast du ausprobiert? Mein Favorit war immer Deep Exploration (mittlerweile von SAP geschluckt, heißt jetzt glaube ich "SAP Visual Author" oder sowas...)
  Mit Zitat antworten Zitat
the3dcloser

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

AW: 3D-Spieledateien exportieren

  Alt 12. Okt 2013, 23:44
1. Sehr schön, wir sind bei dem ersten Problem. Jedoch gehe ich tendenziell von 2^19 aus, näheres dazu unten.

2. Diese "Quelle" ist der Programmierer von einem Szenariotool des 7.Vorgängers. Da hatten die Szenarien ca. 280k an Faces, er setzte das Limit damals auf 400k. Sieben Spiele später kann man damit rechnen, dass wohl noch min. 130k hinzukamen, da zwischen jedem Spiel ca. 3-4 Jahre lagen.

3. Ja, das ist damit gemeint.

4. Es gibt sehrwohl einige 3D Formate die auf die Endung *.geo enden, darunter dein Deep Exploration, jedoch auch zB GEOcontrol 2. Jedoch kann keins dieser Tool diese Art von geo lesen. Ich nehme an, dass das daran liegt, dass die GEO für den Game-Einsatz weiterentwickelt wude (pre-computed Faces) damit der Ladeaufwand geringer ausfällt. So war es zumindest bei den Früheren Spielen von diesem Hersteller. Die Tools von diesem Programmierer kennen jedoch dieses GEO Format nicht, es ist ein Zusammenschluss von mehreren alten Dateien.

Ich weis, dass dies nicht umbedingt weiterhilft, ich hoffe, dass ich wenigstens die aufkommenden Fragen beantworten konnte.
  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 04:57 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