====== Fichiers .e3d ====== Ce format de fichier sert au stockage des objets 3d statiques. (décors, ie : armes dans le décors, meubles, rochers, ...) __**Note : **__ la description de ce format est partielle et peut être fausse, merci de la corriger si vous avez des informations. 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 : [[http://www.assembla.com/wiki/show/elmapmaker|Projet ElmapTools]] d'Etory & XlurP