
Engine features
id Tech 3 loads 3D models in the MD3 format. The format uses vertex movements (sometimes
called per-vertex animation) as opposed to skeletal animation in order to store
animation. The animation features in the MD3 format are superior to those in id
Tech 2's MD2 format because an animator is able to have a variable number of key
frames per second instead of MD2's standard 10 key frames per second. This
allows for more complex animations that are less "shaky" than the models found
in Quake II.
Another important feature about the MD3 format is that models are broken up into
three different parts which are anchored to each other. Typically, this is used
to separate the head, torso and legs so that each part can animate independently
for the sake of animation blending (i.e. a running animation on the legs, and
shooting animation on the torso). Each part of the model has its own set of
textures.
The character models are lit and shaded using Gouraud shading while the levels (stored
in the BSP format) are lit either with lightmaps or Gouraud shading depending on
the user's preference. The engine is able to take colored lights from the
lightgrid and apply them to the models, resulting in a lighting quality that was,
for its time, very advanced.
The engine is capable of three different kinds of shadows. One just places a
circle with faded edges at the characters' feet, commonly known as the "blob
shadow" technique. The other two modes project an accurate polygonal shadow
across the floor. The difference between the latter two modes is one's reliance
on opaque, solid black shadows while the other mode attempts (with mixed success)
to project depth-pass stencil shadow volume shadows in a medium-transparent
black. Neither of these techniques clip the shadow volumes, causing for the
shadows to extend down walls and through geometry.
Other features included a high-level shader language and a method for rendering
volumetric fog.
In the GPLed version of the source code, most of the code dealing with the MD4
skeletal animation files was missing. It is presumed that id simply never
finished the format, although almost all licensees derived their own skeletal
animation systems from what was present. Ritual Entertainment did this for use
in the game, Heavy Metal: F.A.K.K.², the SDK to which formed the basis of MD4
support completed by someone who used the pseudonym Gongo. (More information
about the file format can be found at his site)