                             OOF View v0.4
                       by Chris Ledwith aka Gwar
             _____________________________________________

                            README File

OOF View is a utility for viewing Descent 3's 3D objects (.OOF files). 
You will need an OpenGL driver, and ideally, a 3D accelerator that 
supports OpenGL in hardware.

                          ________________

                             1. SYSTEM
                            REQUIREMENTS
                          ________________


To run OOF View, you need:
-Windows 95, 98, or NT 4.0
-an OpenGL implementation for your video card
-Descent 3 Demo (or at the very least some OOF files from it)

IMPORTANT!!! If you have a Voodoo card, YOU NEED TO DOWNLOAD SPECIAL 
OPENGL DRIVERS (see URL below). This will greatly enhance OOF View's 
performance, by allowing it to use your Voodoo card.

3Dfx Voodoo - 
If you have a card based around a 3Dfx Voodoo-series 
chipset, you have two choices:

1) Download the 3Dfx driver for Mesa (www.mesa3d.org) at:
http://www-hmw.caribel.pisa.it/fxmesa/index.shtml
Put the extracted OpenGL32.DLL and GLU32.dll in the same directory as 
OOF View (NOT into your Windows system directory!) Don't extract 
the GLUT32.dll, OOF View does not require this.

-OR-

2) Until 3Dfx releases their OpenGL ICD, you can download their beta 
OpenGL 1.2 driver:
http://www.3dfx.com/view_io.asp?ID=26
Rename the extracted 3dfxopengl.dll to opengl32.dll, and put it in the 
same directory as OOF View (NOT into your Windows system directory!)
This driver is really only intended for development, but its a viable 
alternative until 3Dfx's real OpenGL ICD comes along (should not be 
too long after this writing!).


Riva TNT - 
For TNT owners, Microsoft's OpenGL implementation is all you 
need, and it should already be in your Windows system directory. If not, 
you can download the driver from Microsoft's website:
ftp://ftp.microsoft.com/Softlib/MSLFILES/opengl95.exe


                          ________________

                          2. INSTRUCTIONS
                          ________________


Start OOF View by double-clicking on its icon. Then, find your Descent 
3 Demo directory using the open window. Click on d3demo.hog and click 
OK. Click "First in HOG", and then specify a resolution. Try 640x480 
just to make sure that OOF View will run properly at the lowest setting.
That's it! You should now be staring at a 4-pack of concussion missiles. 
Use Page Down to skip to the next model. See the next section for plenty 
more to do!

                          ________________

                             3. COMMANDS
                          ________________


There are three sets of commands -- basic, advanced, and detail 
settings. You can get the basic list by pressing 'h' while in the 
program, the advanced list by pressing ctrl+'h', and the detail 
settings by pressing ctrl+'d'. The definitions of the various commands 
are provided here:

Basic commands - 

left mouse button
numpad 5                 - move towards object
right mouse button
numpad 0                 - move away from object
Shift+left/right mouse button - move more slowly
Ctrl+left mouse button   - move (drag) object
left arrow               - rotate object left
right arrow              - rotate object right
up arrow                 - rotate object up
down arrow               - rotate object down
numpad 7                 - rotate object counter-clockwise
numpad 9                 - rotate object clockwise
Ctrl+<any rotation key>  - auto-rotate object
Page Up                  - previous object (in HOG or in path)
Page Down                - next object (in HOG or in path)
minus (-)                - previous subobject (of current object)
plus (+)                 - next subobject
o                        - all subobjects (redisplay entire object)
d                        - reset all settings to default
n                        - show filename of object, and name of 
                           submodel if one is selected (on by default)
h                        - help: basic command list
Ctrl+h                   - help: advanced command list
Ctrl+d                   - help: detail settings
q, Esc                   - quit


Advanced commands - 

Ctrl+z - Decrease fov (zoom in). Range is 0 to 180 degrees.
Ctrl+Shift+z - Increase fov (zoom out). Range is 0 to 180 degrees.
The following commands are togglable (on/off):
v - Shows the vertices of the object.
g - Shows the gun points of the object. These points are where 
    the object fires projectiles from.
p - Shows the special points of the object. These points are treated 
    in some special way by the game.
e - Shows the edges of each face of the object. For a wireframe view, 
    enable this and disable faces.
f - Show the faces of the object. This is enabled by default. If 
    textures are enabled, and provided the texture could be found, the 
    faces will be textured. They will be flat-shaded otherwise.
t - Shows the textures on each face of the object. If faces are 
    disabled, the textures will not be shown until faces are reenabled.
Ctrl+v - Shows the normals of each vertex of the object. A vertex 
         normal points in the direction of the average of the face 
         normals of each attached face (see below).
Ctrl+g - Shows the firing vectors of the gun points of the object. 
         These point in the direction of firing.
Ctrl+f - Shows the normals of each face of the object. A face normal 
         points outwardly from the face and perpendicular to its plane.
Ctrl+a - Shows the x/y/z Cartesian axes. Each is 10 units in length.
Ctrl+c - Performs backface culling. Each face has a front and a back. 
         This means that if you are viewing the object from the inside, 
         you will not see the inside (back) faces.


Detail settings - 

Ctrl+e - Toggles texture filtering. On by default, but you can disable 
         it for faster performance.
Ctrl+t - Toggles translucency. This is enabled by default. Some 
         textures are designed to be viewed with translucency enabled; 
         turning this option off forces opaqueness. The change will not 
         take effect until the next object is loaded.
Ctrl+m - Toggles mipmapping. This is enabled by default. Switches 
         between texture mipmap levels, when the object is at varying 
         distances from the viewpoint.
Ctrl+l - Toggles line antialiasing. On by default, but you can disable 
         it for faster performance.

                          ________________

                           4. COMMAND-LINE
                             PARAMETERS
                          ________________


You may optionally run OOF View using command-line parameters to specify the 
locations of various resources. This is handy if you want to make a 
batch file with the settings you always use.

-hogfile <name>
Specify a HOG file containing the resources (objects and textures) that 
you'd like to view.

-objdir <path>
If your objects (.OOFs) are not in a HOG, you can specify their path 
here.

-texdir <path>
If your objects are not in a HOG, you can specify the path to their 
textures (.OGFs) here. If the textures are in the same dir as the 
objects, you will not need this.

Note:
If you specify -hogfile on the command line, -objdir and -texdir will 
be ignored.

                          ________________

                          5. BUGS, PROBLEMS
                          ________________


Q: OOF View does not release my mouse cursor! How can I use my other 
apps?!
A: I did this so that you can continuously spin an object. In fullscreen 
mode (i.e. on all Voodoo cards), this ability is essential. But in a 
window, it's admittedly a bit of an annoyance. I will probably change 
this in the next version. In the meantime, try hitting ALT-TAB to 
switch to another window. OOF View should no longer capture your mouse.

If you have found a bug and would like to report it, please do so. Email 
me at the address below.

                          ________________

                           6. FINAL NOTES
                          ________________


Currently, OOF View does not fully understand all data concerning an 
object stored in an OOF file. This is because the complete file spec 
is not publically available, and I have not gotten around to hacking it 
all out yet. If you're a developer or just curious, you can find the 
latest version of my written spec at Descentia 
(http://www.descent.org/descentia/).

Disclaimer:
OOF View is third-party software, and is NOT supported by Interplay 
Productions, Parallax Software, or Outrage Entertainment.

Thank you for using OOF View.

Chris Ledwith aka Gwar
Email: gwar@descent.org -OR- syrinx1@mindspring.com
URL: http://www.descent.org/descentia/

Thanks to BUZZkYLL, Vyper, Arch_Angel!, fathom, Nirvana, and Hal 9000 
for testing.

Special thanks go to Parallax Software for the Descent series and 
especially Outrage Entertainment for making Descent 3.