ApplicationET MD3-Viewer v1.00
CoderRon Driessen, aka [UJE]C or just C
GameTo be used with an installed version of the game "Wolfenstein - Enemy Territory"
PurposeTool for viewing MD3-models, and all information stored in the MD3
AbilitiesSee all info on: animation, tags, surfaces and shaders
Animated models
Textured models
Load models right from the game, any custom PK3, or local (unpacked) files
Load skin-files for relevant models
Possibility to create a shaderlist of shader-files to overrule original model-shaders
3D-view the model
InstallationUnpack all files into a new directory, and run the program..
Setup the Game-Path to Your game (once), and You're ready to go.
Tags


Ever wanted to browse through all models from Your Wolfenstein-ET game?.. animated and textured?.. This tool provides the means to see the information stored in an MD3 model-file and it also displays the model in a 3D-view.

Once You've loaded a model, all MD3-internal data is listed on:
Animation:Number of frames
Frame names
Bounding-box
Local origin
Bounding-sphere radius
Tags:Number of tags
Tag names
Tag-origin (per animation-frame)
Tag-axis (per animation-frame)
Surfaces:Number of surfaces
Surface names
Number of shaders
Shader names
Number of vertexes
Number of triangles
Animation


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..
Tags


Tag-information is listed on the Tags-tab.
Tip: It is easy to scroll through all tags, by clicking in the combobox of the tag-names, (like i did on the image below), and then use the mousewheel..
If a model is animated, there is tag-information for every animation-frame.. If the model does not hold any animation, the "Frame"-combobox is disabled (like in the image below)..
Surfaces


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
View


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:
About


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..