06.09.2015, 07:36
(Dieser Beitrag wurde zuletzt bearbeitet: 06.09.2015, 07:37 von Borbaradwurm.)
(17.07.2014, 15:00)Shihan schrieb: Hihi, ich hatte gerade eine Eingebung bezgl. der Faces. Und habe dann gemerkt, dass ich doof bin. Im Wiki hatte ich schon einige Dinge eingetragen, die mir wieder eingefallen sind. Und zwar hatte ich im Objekt-Header einige Stellen mit "Unbekanntes Offset im Objekt-Eintrag" bezeichnet. Kurz geprüft, eines von denen ist die Face-Liste!PAL/PIX Format
Habe mir dann eben Zeit genommen und meinen Exporter angepasst (der bisher nur Vertices konnte). Nun kann ich also auch Faces exportieren, d.h. damit ein komplettes 3D-Mesh.
Habe das dann fünf mal gemacht, hier sind die Ergebnisse:
Boronsacker
Boronsacker-Dungeon
Umland
Mine, 1. Ebene
Riva
Der Exporter ist noch ein wenig fehlerträchtig, insb. bei Riva oder dem Umland sieht man noch verdammt viele Lücken. Da muss ich nochmal reinsehen, woher das Problem jetzt kommt. Aber das wird auch noch werden
Als nächstes (nach der Fehlerbehebung) also dann Texturen.... OpenGL-Renderer, wir kommen!
Fast alle PAL/PIX Dateien sind BoPa komprimiert in DUNGEON.ALF gespeichert, aber nicht alle.
PAL/PIX Header:
Code:
Offset Länge
0x0 4 Byte unbekannt, immer 0x00000012
0x4 4 Byte unbekannt, immer 0x00000008
0x8 4 Byte unbekannt, immer 0x00000002
0xC 4 Byte unbekannt, immer 0x00000002
0x10 4 Byte unbekannt, immer 0x00000003
0x14 4 Byte eine unbekannte Größe oder ein Offset (dies + 40 = Offset der Daten (Pixel/Farben); dies - 12 = Länge des Herkunftpfadstring)
0x18 1 Byte PAL/PIX-Typ: bei PIX-Texturen immer 0x03, bei PAL-Paletten immer 0x07
0x1B 2 Byte bei PAL/PIX-Typ = 0x03: Breite der Textur
0x1D 2 Byte bei PAL/PIX-Typ = 0x03: Höhe der Textur
0x23 variabel (s.o.) Herkunftpfadstring
Ein Breite * Höhe langer Array von 1 Byte Integern der Indexe der Farbe des Pixels aus der Farbpalette. Das erste Byte entspricht der oberen linken Ecke, das letzte Byte der unteren rechten.
Daten bei PAL/PIX-Typ = 0x07:
Ein Array von 256 Farben, wobei eine Farbe in vier Byte gespeichert ist:
Code:
1. Byte immer = 0x00
2. Byte RGB-Wert für Rot
3. Byte RGB-Wert für Grün
4. Byte RGB-Wert für Blau