blob: 5592fcf965563f5524856bd0fc6f59125e45f14d (
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
34
35
36
|
This is a program that uses assimp to convert different 3d model formats to file format that amalgine can read (.a3d).
To see a list of supported file formats, see https://github.com/assimp/assimp#supported-file-formats (this is for the latest version of assimp).
# 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.|
|