aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: a53393eddffa9c81267489ad8ef4ab3a299ea96f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 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.|