This is the specifications for the model file which is handled by the
Game Extractor plugin
Viewer_GTC_MD2_MDL3.
Endian Order: | Little Endian |
Compression: | none |
Encryption: | None |
This format is used by the following Games:
This is the format specification information:
| // HEADER
4 - Header (MDL3)
4 - Block Length
4 - InertiaTensor X (float)
4 - InertiaTensor Y (float)
4 - InertiaTensor Z (float)
4 - Bounding Radius (float)
4 - AllowDistanceFade
4 - IncludesBoundingBox
if (IncludesBoundingBox){
4 - AABBMin X (float)
4 - AABBMin Y (float)
4 - AABBMin Z (float)
4 - AABBMax X (float)
4 - AABBMax Y (float)
4 - AABBMax Z (float)
4 - AABBCenter X (float)
4 - AABBCenter Y (float)
4 - AABBCenter Z (float)
4 - AABBYaw (float)
}
4 - UseUniqueMaterials
4 - UseUniqueTextures
4 - UseGenericGeometry
4 - VertexBufferAccessFlags
12*4 - Unknown
4 - Texture Reference Count
// for each Texture Reference
256 - Filename (null terminated, filled with nulls and junk)
4 - UsageType
4 - BaseIndex
4 - Material Count
// for each Material
4 - Ambient X (float)
4 - Ambient Y (float)
4 - Ambient Z (float)
4 - Ambient W (float)
4 - Diffuse X (float)
4 - Diffuse Y (float)
4 - Diffuse Z (float)
4 - Diffuse W (float)
4 - Specular X (float)
4 - Specular Y (float)
4 - Specular Z (float)
4 - Specular W (float)
4 - Emissive X (float)
4 - Emissive Y (float)
4 - Emissive Z (float)
4 - Emissive W (float)
4 - Shininess (float)
4 - Transparency (float)
4 - Transparency Type
4 - Property Bits
12 - Animation Name (null terminated, filled with nulls)
// GCG0 BLOCK
4 - Header (GCG0)
4 - Block Length
X - Unknown
// P2G0 BLOCK
4 - Header (P2G0)
4 - Block Length
X - Unknown
// GEO2 BLOCK
4 - Header (GEO2)
4 - Block Length
4 - Number of LODs
// for each LOD
4 - Type
4 - Max Edge Length (float)
4 - Group Count
4 - Positions Pointer
4 - Render Groups Pointer
if (PositionsPointer > 0){
// for each GroupCount
4 - X Point (float)
4 - Y Point (float)
4 - Z Point (float)
}
// Render Group
// for each GroupCount
4 - ID
2 - Primitive Count
2 - Vertex Count
2 - Materials
2 - Effects
4 - pBumpData
4 - pVertexBuffer
4 - pIndexBuffer
2 - EffectsMask
2 - RendererReference
2 - EffectCount
1 - Custom
1 - CoordsCount
// for each BlendCount (4)
4 - Effect
2 - TextureIndex
1 - CoordIndex
1 - TilingInfo
4 - PositionOffset
4 - NormalOffset
4 - ColorOffset
4 - UVOffset
4 - VertexSize
4 - UVCount
2 - VertexComponents
2 - VertexCount2
2 - ManagedBuffer
2 - CurrentVertex
4 - pSourceBuffer
4 - pVertexOffset
// for each VertexCount2
X - VertexData (length = VertexSize)
4 - PrimitiveBufferCount
4 - PrimitiveType
4 - IndexCount
// for each IndexCount
2 - Face Index |
These are the accompanying notes and further information:
| Ref: https://pastebin.com/ZwgbZBUQ (from DromeEd project - https://www.rockraidersunited.com/topic/8175-md2-blender-importexport-add-on-early-release/) |
Game Extractor is able to read files of this type, as well as files from thousands of other games. To give it a try, download
Game Extractor (Basic Version) for
free, and see what it can do.
For further information on this format, refer to the source code on our
GitHub repository.