Ceci est une ancienne révision du document !
Table des matières
Fichiers .e3d
Ce format de fichier sert au stockage des objets 3d statiques. (ie : armes, meubles, rochers, …)
File Format E3D
Magic NUMBER : e3dx
Version describe : 1.0.0.0
LITTLE ENDIAN File Format
Le format de fichier possède les sections suivantes :
Inconnu
- OFFSET 0 :
4 octets avec le magic number(ASCII 7-bits format) doit être e3dx
- OFFSET 4 :
4 octets avec la version du format .e3d, actuellement : 1 0 0 0
- OFFSET 8 :
int header_offset : La position du début du header dans le fichier.
- OFFSET 12-27 :
Inconnu avec des informations.
Entête
OFFSET 28 : HEADER size 40 le header du fichier avec dedans :
- int vertex_no; position 0 nombres de vertex(sommets) dans le fichier
- int vertex_size; position 4 taille d’une vertice
- int vertex_offset; position 8 position de départ de la liste de vertex
- int index_no; position 12 nombre d’index dans le fichier
- int index_size; position 16 taille d’un index, 2 ou 4
- int index_offset; position 20 position de départ de la liste d’index
- int material_no; position 24 nombre de “material” dans le fichier
- int material_size; position 28 taille d’un material
- int material_offset position 32 position de la liste de material dans le fichier
- char vertex_options; position 36 vertex options, cela modifie comment interpreté la liste de vertex pour ce matériel, je ne sais pas comment
- char reserved_1; position 37 not used
- char reserved_2; position 38 not used
- char reserved_3; position 39 not used
Liste des VERTEX
* offset : dans l’ header, normalement 68 * nombre d’éléments : dans l’header * taille d’un élément : dans l’header , 16 bytes
VERTEX :
Un tableau de 4 flottants, utilisation inconnue mais avec dedans x, y et z
Liste des INDICES
* offset : dans l’header, changeant * nombre d’éléments : dans l’header * taille d’un élément : dans l’header, 2 ou 4 octets
INDICE
l’indice est probablement un indice dans la liste des vertex
- si la taille est de 2, un short non signé
- si la taille est de 4, un entier non signé
LIST OF MATERIALS
* offset : dans l’ header, * nombre d’éléments : dans l’header * taille d’un élément : dans l’header , 172 bytes
MATERIAL
- int options; position 0 utilisation inconnue
- char material_name[128]; position 4 nom de la texture (et de son fichier) pour cette partie de l’objet
- float min_x; position 132
- float min_y; position 136
- float min_z; position 140
- float max_x; position 144
- float max_y; position 148
- float max_z; position 152
- extrimités de l’objet, pour l’utilisation de la texture certainement
- int triangles_min_index; position 156 utilisation inconnue
- int triangles_max_index; position 160 utilisation inconnue
- int index; position 164 utilisation inconnue, certainement le premier INDICE a utiliser
- int count; position 168 nombre d’indices a utiliser
Note
Documentation source : Projet ElmapTools d’Etory & XlurP