Skip to content

BaalNetbek/AEMesh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Noesis plugin imports animation.


Structure of .aem:

char magic [7] or [9] AEMesh V2AEMesh V3AEMesh V4AEMesh V5AEMesh
byte flags
ushort submesh_count (sc) ❌ just 1 ❌ just 1
mesh [sc]
float pivot_point [3]
ushort face_indicies_count (fc)
ushort face_indicies [fc/3][3] ✔***
ushort triangle_strips_count (tc) ✔ / ❌**
ushort triangle_strips [tc] ✔ / ❌**
ushort vertex_count (vc)
TYPE vertices [3*vc][3] short float float
short vertex_coord, sign [3*vc][3][2] $(x, y, z)$, (<0 or ≥0)
TYPE texture_coord [2*vc][2] $(u, v)$ short, Q8* / Q12** short, Q12* short, Q12* float float
TYPE normals [3*vc][3] $(x, y, z)$ short, Q8* / Q15** short, Q15* short, Q15* float float
TYPE material? [vc][2 or 4] $(g, b)/(a, r, g, b)?$ short short float float
float bounding_sphere [4] $(x, y, z, r)$
animation data ✔/❔

*Qn is format of storing fixed point fractional numbers as integer in which n LSB (least significant bits) store fractional part, for example in Q8:
decimal: $24$, binary: $0001,1000 \rightarrow \frac{24}{256} = 0.09375$, becouse $2^8=256$
decimal: $315$, binary: $1 \mathbf{.}0011,1011 \rightarrow \frac{315}{256} = 1.23046875$
(in binary format dot $\mathbf{.}$ is just there for visual separation of integer and fractional parts)

**There is rarer version of [V1]AEMesh similar to V2 but without sign next to vertex coord.

***Common [V1]AEmesh can have indicies count not divisable by 3 becouse of triangle strip encoding used.

[V1]AEmesh has also a diffrent used in GOF3D for BREW. There can be more undocumented version.

Animation data:

KeyFrame %d of %d
Time: %d
posx: %f
posy: %f
posz: %f
rotx: %f
roty: %f
rotz: %f
scax: %f
scay: %f
scaz: %f

About

Abyss Engine Mesh (and Image) tools

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages