GEO Files - Galaxy1036/AL-Assets-RE GitHub Wiki
.geo files are files who contains all information about the geometry of 3d models such as vertices & indices
<form tag="ROOT">
<form tag="GEOM">
<form tag="0000">
<form tag="PRIM">
<form tag="0002">
<chunk tag="SHDR"/>
<form tag="VBF ">
<chunk tag="0003"/>
</form>
<chunk tag="VRTX"/>
<chunk tag="INDX"/>
<chunk tag="BOX "/>
</form>
</form>
</form>
</form>
</form>
Note: The 0000 form can contains multiple PRIM forms, they all represents a 3d object.
VRTX chunk contains all informations about the vertices & probably more.
| Data type | Purpose |
|---|---|
| UINT32 | Vertices block count |
Veritces block format:
| Data type | Length | Purpose |
|---|---|---|
| binary16 | 2 | vertice x position |
| binary16 | 2 | vertice y position |
| binary16 | 2 | vertice z position |
| binary16 | 2 | unknown, maybe normal x coord |
| binary16 | 2 | unknown, maybe normal y coord |
| binary16 | 2 | unknown, maybe normal z coord |
| UINT32 | 4 | unknown, maybe RGBA8888 encoded vertice color, usually 0xFFFFFFFF |
| binary16 | 2 | unknown, maybe texcoord s |
| binary16 | 2 | unknown, maybe texcoord t |
INDX chunk contains all indices used to create the object mesh
| Data type | Length | Purpose |
|---|---|---|
| UINT32 | 4 | Indices count |
| List of binary16 | Indices count | Object indices |
SHDR chunk contains info about the shader file used for the 3d object
| Data type | Purpose |
|---|---|
| STRING | Shader file path |
Probably describe a bounding box for the 3d object Note: Following uint32 are probably using big endian instead of little endian
| Data type | Purpose |
|---|---|
| UINT32 | unknown, maybe upper left back x coordinate |
| UINT32 | unknown, maybe upper left back y coordinate |
| UINT32 | unknown, maybe upper left back z coordinate |
| UINT32 | unknown, maybe box depth size |
| UINT32 | unknown, maybe box length size |
| UINT32 | unknown, maybe box height size |