MD3 Format

From GICL Wiki
Revision as of 01:56, 13 May 2009 by RandallPetras (Talk | contribs)

Jump to: navigation, search

Title(s): MD3 for id Tech 3 engine

Version ID: MD3

Date released: 1999-12-02 (Released with Quake 3) -

Date: 1999 - Date the format was created

Creator(s): id Software -

Contributor(s): id Software -

Relationships: - Created by id Software for use in the id tech 3 game engine. Id tech 3 replaced id tech 2.

  • Previous Version(s): MD2
  • Syntax Format(s): A 3D file format that describes interactive objects that move in an environment. They style of animation is called mesh deformation or vertex animation.

Description: Designed to model triangle data for frame by frame animation for use in video game rendering. The data in the file contains frame, vertex, surface, and shading data, as well as animation data.

History: Originally released with Quake III, the format and engine were also licensed to other games of the time. Notable games using this format and engine are Quake III, Call of Duty, Medal of Honor & Soldier of Fortune.

Example(s): MD3 Example -
Example animation.cfg:

//Quake3 player animation file

sex     m

footsteps normal

// first frame, num frames, looping frames, frames per second

0       32      0       25              // BOTH_DEATH1 (twirl death)
32      1       1       25              // BOTH_DEAD1  (end of twirl death)
32      35      0       20              // BOTH_DEATH2 (other side twirl death)
67      1       1       20              // BOTH_DEAD2  (end of other side twirl death)
68      25      0       25              // BOTH_DEATH3 (backflip death)
93      1       1       25              // BOTH_DEAD3  (backflip dead)

94      39      0       15              // TORSO_GESTURE
133     7       0       15              // TORSO_ATTACK   (regular attack shooting)
140     11      0       15              // TORSO_ATTACK2  
151     5       0       15              // TORSO_DROP     (drop weapon)
156     6       0       15              // TORSO_RAISE    (raise weapon)
162     31      0       10              // TORSO_STAND    
193     11      0       10              // TORSO_STAND2

94      12      12      15              // LEGS_WALKCR
107     12      12      15              // LEGS_WALK
120     12      12      17              // LEGS_RUN
133     14      12      17              // LEGS_BACK
148     12      12      14              // LEGS_SWIM
159     6       0       8               // LEGS_JUMP
167     6       0       12              // LEGS_LAND
172     6       0       10              // LEGS_JUMPB
178     6       0       10              // LEGS_LANDB
185     6       6       5               // LEGS_IDLE
192     7       6       5               // LEGS_IDLECR
200     6       6       20              // LEGS_TURN

Example from:
http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html

Identifier: Specification: http://linux.ucla.edu/~phaethon/q3a/formats/md3format.html

Documentation: MD3 Documentation

File Extensions: .md3

Applications: - Applications that the engineering format uses.

Magic numbers: IDP3

Format(s): md3

Rights: gpl - While the Quake III engine is proprietary, MD3 has been GPL'd.

Sustainability Factors: - Facts about the sustainability of this particular engineering format.

  • Standardization: None, this format has been superseded by other formats, including MD5.
  • Adoption: Format was adopted by several other games, but has since been superseded.
    • Licensing and patent claims: gpl - The MD2 format is licensed under the GPL.
  • Self-documentation: None
  • External dependencies: OpenGl is needed for rendering.
  • Technical protection considerations: None

Typical use: Video Games, specifically those using the id Tech 3/Quake III engine

File classification: - Specific properties that pertain to this engineering format.

  • Type {Binary, Text}: Binary
  • Raster data: - Section describes whether or not the engineering format supports raster data.
    • Raster data 2D: - Can the format support 2D raster data? Example: A format that can contain 2D pixelated data supports 2D raster data.
      • Is Supported: - No.
      • Description: - The format is a mesh/animation format.
    • Raster data 3D: - Can the format support 3D raster data? Example: A format that can contain 2D pixelated data of a 3D model supports 3D raster data.
      • Is Supported: - No.
      • Description: - The format is a mesh/animation format. Though not specifically raster data it does contain data for skin and shading.
  • Geometric representation: - Section describes whether or not the engineering format supports geometric representations.
    • Implicit representation: - Section describes whether or not the engineering format supports implicit representations.
      • Implicit surfaces: - Can the format support implicit surfaces? Example: A format that can contain surfaces that are generated with mathematical equations that contain the independent variables x, y, and z, like x^2 + y^2 + z^2 * R^2 = 0, supports implicit surfaces.
        • Is Supported: - No.
        • Description: - The format is a mesh/animation format.
      • Implicit curves: - Can the format support implicit curves? Example: A format that can contain curves that are generated with mathematical equations that contain the independent variables x, y, and z, supports implicit curves.
        • Is Supported: - No
        • Description: - The format is a mesh/animation format.
      • Point set: - Can the format support point sets? Example: A format that supports surfaces and lines that are generated by points that form triangles supports point sets.
        • Is Supported: - Yes.
        • Description: - The format is a mesh/animation format. This is a primary function of the MD3 type.
    • Mesh: - Section describes whether or not the engineering format supports mesh.
      • Manifold surface meshes: - Can the format support manifold surface meshes? Example: A format that supports surfaces that are mathematical spaces in which every point has a neighborhood which resembles Euclidean space
        • Is Supported: - Yes.
        • Description: - The format is a mesh/animation format. This is a primary function of the MD3 type.
      • Manifold volume meshes: - Can the format support manifold volume meshes? Example: A format that supports volumes that are mathematical spaces in which every point has a neighborhood which resembles Euclidean space
        • Is Supported: - Yes, but this is not the primary use of the format.
        • Description: - MD3 is a triangular surface map, therefore a manifold volume could be created. However, the primary use of the format is for 3D animation, and internal volume representation is not a primary use.
      • Non-manifold meshes: - Can the format support non-manifold meshes? Example: A format that supports meshes that are not manifolds
        • Is Supported: - Yes.
        • Description: - Non-manifold meshes can be created with the format.
    • Parametric representation: - Section describes whether or not the engineering format supports parametric representations.
      • Parametric surfaces: - Can the format support parametric surfaces? Example: A format that can contain surfaces that are generated with parametric equations supports parametric surfaces.
        • Is Supported: - No
        • Description: - The format is a mesh/animation format.
      • Parametric curves: - Can the format support parametric curves? Example: A format that can contain curves that are generated with parametric equations supports parametric curves.
        • Is Supported: - No.
        • Description: - The format is a mesh/animation format.
    • Contour sets: - Can the format support contour sets?
      • Is Supported: - No.
      • Description: - The format is a mesh/animation format.
    • NURBS: - Can the format support Non Uniform Rational Basis Splines? Examples: The engineering formats IGES, STEP, ACIS, and PHIGS
      • Is Supported: - No.
      • Description: - The format is a mesh/animation format. While a NURBS surface could be created from the points, there is nothing intrinsic to the format that allows for them.
  • Multi-resolution models: - Can the format support models with multiple resolutions? Examples: A format that supports a highly detailed and lowly detailed model simultaneously supports multi-resolution models.
    • Is Supported: - Somewhat
    • Description: - Multiple scales can be rendered from a single mesh, but the subsequent renders would be separate files.
  • Dynamics: - Section describes whether or not the engineering format supports dynamics.
    • Kinematics: - Can the format support kinematics? Example: Does the format allow model parts to rotate?
      • Is Supported: - Yes.
      • Description: - Framebase animation is one of the primary functions of the format.
    • Assembly: - Can the format support assembly? Example: Does the format allow the assembly instructions to be explicitly specified with a model?
      • Is Supported: - Yes.
      • Description: - One of the primary uses is character modeling. It is intrinsic to the format to separate head, upper and lower body models as well as weapons. In addition, skin and shading data is also added.
    • Force(s): - Can the format support forces? Example: Does the format support acceleration forces?
      • Is Supported: - No.
      • Description: - Primarily used for animation, force data is not implicit in the format.
  • Boundary representation - Can the format support models with boundary representations?
    • Manifold surface boundary representations: - Can the format support manifold surface boundary representations? Example: The engineering format STEP
      • Is Supported: - No.
      • Description: - No boundary data, outside of the mesh itself, is called out in the format specification.
    • Manifold volume boundary representations: - Can the format support manifold volume boundary representations? Example: The engineering format STEP
      • Is Supported: - No.
      • Description: - No boundary data, outside of the mesh itself, is called out in the format specification.
    • Non-manifold boundary representations: - Can the format support non-manifold boundary representations? Example: The engineering format STEP
      • Is Supported: - No
      • Description: - No boundary data, outside of the mesh itself, is called out in the format specification.
  • Material transparency: - Can the format support transparency? Example: Does the format allow models to have a clear window in a car?
    • Is Supported: - Yes
    • Description: - Because the format allows for any skin data to ride atop the mesh data, transparency would be possible.

References: - A list of references regarding any aspects of this engineering format; any reading material supplemental to this page.
http://linux.ucla.edu/~phaethon/q3a/formats/md3format.html
http://www.math.ucsd.edu/~sbuss/CourseWeb/CSE167_2004F/ProjectFinal/svoboda_matthew_john/readme.html
http://www.fileinfo.com/extension/md3
http://www.misfitcode.com/misfitmodel3d/olh_quakemd3.html