# Amalgine 3D model file format (.a3d) All types are stored in little endian format. Any type with a * is optional. |Type |Description | |-------|-------------------------------------------------------------------------------------| |uint |The magic number, the value will always be 0x036144AF. | |uint |Version of the file format. This is backwards compatible but not forwards compatible.| |mesh[] |The mesh data. | mesh: |Type |Description | |-----------|-------------------------------------------------------------------------------------| |uint |The number of vertices, normals and optionally texture coordinates. | |vec3f[] |A list of vertices. | |vec3f[] |A list of normals. | |uint |The number of faces. Each face has 3 indices of type uint. | |uint[] |The face indices. | |uint |1 if the model has texture coordinates, otherwise 0. | |vec3f[]* |A list of texture coordinates. | |uint |1 if the model has materials, otherwise 0. | |material[3]|The material data. This is a list of [diffuse, specular, ambient] materials. | vec3f: |Type |Description | |-----|----------------| |float|The x coordiate.| |float|The y coordiate.| |float|The z coordiate.| material: |Type |Description | |------|-------------------------------------------------------------------------| |uint |The number of textures. | |char[]|The filepath to the texture (relative). This is a null-terminated string.|