An overview of the animation data can be seen on the Animation-tab. and of course the View-tab..
You can change the animation-speed by choosing some other "FPS"..
You start/stop the animation by checking/unchecking the "Play"-checkbox..
Playback can be looped over any part of the animation. Just set the "Start Frame" and/or "End Frame" as desired..
This MD3-tool is able to show textured models. To do so, it has to locate all necesary files.
These needed files can be texture-files and/or shader-files, which can come from several locations (Game, PK3, local directory, skin-file or shaderlist).
This application will show the locations of used textures and/or shaders on the Surface-tab, so You can easily look-up the files if needed.. It also shows the priorities on how textures are obtained from the several resources.
The image below shows a surface with just a single texture:
The image below shows a surface with a shader assigned. The shader is found in the game's pak0.pk3. The shader itself consists of 2 textures.
The first texture is seen on this image, along with some extra information.. You can see that the texture has an alpha-channel.. The relevant shader-info is stated on the lower-right, where You see this texture is marked as an environment-map (tcGen environment):
The next image shows a surface that has no shadername given at all. This surface needs a skin assigned, which contains the shadername for this surface.
I loaded the proper skin-file, and the program found a shadername for this surface:
Skin: models/mapobjects/cmarker/cflag_allied.tga
(what it found was actually the name of a texture, not a shader.. a shader has no extension .tga)
The program found the specific shader (in the game pak0.pk3), and lists the name of the shaderfile:
Filename: (pak0.pk3) scripts\models_mapobjects.shader
It also shows the name of the shader:
Shader: models/mapobjects/cmarker/cflag_allied
It then determines the names of the textures, along with some needed shader-info (for displaying).
The image below shows how it looks when the shaderlist is used.
Any shader found in one of the shader-files of the shaderlist will overrule any original shader.
As seen in the image, a shader for the current surface is now found via the shaderlist:
This MD3-Viewer tries to find what it needs.. If the model-maker gives "false" information, the program tries to find alternate data..
The image below shows a surface-shadername of: models\mapobjects\egypt\gold.jpg
What a mess.. The given name contains backslashes, and an extension .jpg, furthermore the texturefile doesn't even exist at all..
Luckily the program comes up with a shaderfile and a shader, and eventually 3 textures are found for this surface.. And the found gold-texture seems to be named: gold.tga
The models are rendered on the View-tab.
You can rotate the model by clicking the left- (or right-)mousebutton while moving the mouse (called dragging)..
You can rotate the camera by holding down the Ctrl-key, while dragging the mouse..
You can shift/strafe the model by holding down the Shift-key, while dragging the mouse..
Doubleclicking the 3D-View will reset the view..
You can select any existing tag to act as a pivot-point. Tags are represented as a Red/Green/Blue axis (RGB=XYZ). The model's origin is represented as a tiny yellow dot..
Here is an image of 3D-view.. it's the body of the well known truck:
The "ET MD3-viewer" application is written in Delphi 7.. (no, not in C :)
OpenGL is used for the graphical view..(of course). I used only OpenGL 1.1 code, so this program will run on all systems.. (even with a crappy videocard)
source of information, describing the MD3-fileformat:
http://icculus.org/homepages/phaethon/q3a/formats/md3format.html
Note: Many shader-properties are not supported by this program. Things like rgbGen, alphaGen and deformVertexes are not supported.. Neither are animMap- & videoMap-shaders..
C..