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

Format

IFF representation

<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.

Chunks format

"VRTX"

VRTX chunk contains all informations about the vertices & probably more.

Format
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"

INDX chunk contains all indices used to create the object mesh

Format
Data type Length Purpose
UINT32 4 Indices count
List of binary16 Indices count Object indices

"SHDR"

SHDR chunk contains info about the shader file used for the 3d object

Format

Data type Purpose
STRING Shader file path

"BOX "

Probably describe a bounding box for the 3d object Note: Following uint32 are probably using big endian instead of little endian

Format
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
⚠️ **GitHub.com Fallback** ⚠️