MD5 is a 3D skeleton based model format formed by ID Software. It is very good for file size and is widely open for use and easy to work with as it is stored as ASCII plain text. It is not supported by any versions of Glest, MegaGlest or GAE, but may be considered in the future. One good thing about MD5 is how it stores meshes and animations separately into two formats MD5MESH (stores mesh and skeleton) and MD5ANIM (store skeletal animation). To use MD5 an MD5MESH is loaded for the model mesh then multiple MD5ANIMs are used to animate that model, also other MD5MESH meshes can share the same MD5ANIMs so long as there skeletons are the same (they can be as varied as they want so long as they have the same amount of bones with the same names and hierarchical structure, though odd results can occur if the skeletons are positions too differently).
MD5MESH - Model Mesh with Skeleton
- Stores individual meshes and mesh names (objects)
- Stores wireframe and normals
- Links texture to the model and maps it to the mesh
- Supports double-sided and single sided meshes (teamcolor or transparency)
- Stores a bind-pose skeleton and bone weights (links skeleton bones to vertices)
MD5ANIM - Skeleton Animation
- Stores skeletal animation
- Compatible with all MD5MESH meshes that have a matching skeleton
- Uses a base frame to base other frames off (saves space)
- Stores a bounding box for each animation frame
- Not supported by any Glest engines (Glest, MegaGlest and GAE) but may be considered in the future
- All faces must be triangle
- MD5MESH and MD5ANIM skeletons much match (bone structure, count and name)
Benefits vs G3D
- Skeletal animation rather than frame by frame animation which dramatically decreases file size
- Much more support with import and export scripts for numerous 3D applications including the latest Blender, 3DS Max and Lightwave.
- Separate mesh and animation formats means having one mesh and multiple animations for that mesh and also similar meshes can share the same animations rather than having one frame by frame morph animated mesh per animation
- Bones could be used to specify key locations on a mesh such as the tip of a gun for where projectiles are fired from or locations where particles should emit rather than having to specify xyz coordinates in the unit XML which can be inaccurate
- Stored in ASCII plain text rather than compiled which means minor adjustments such as texture renames can be done using a basic text editor rather than having to re-export the mesh. Bones could possibly be renamed using a Find and Replace text editor tool.
Importing, Exporting and Viewing MD5
There are many import and export scripts out there for lots of 3D modelling software, such as the one found at Katsbits. There are a few MD5 model viewers available too, follow the link above. If Glest was to support MD5 I would recommend that the G3D viewer had MD5 implemented because of its team colou feature and other Glest based features such as how textures are loaded in it.