STEREO2 - A stereoscopic geometry viewer

Written by Paul Bourke
October 2000


Introduction

"stereo2" was designed to project static geometry in a stereoscopic projection environment using OpenGL assisted 3D cards. It initially supported frame sequential stereo (active glasses) and was subsequently updated to support dual screen stereo (passive glasses). It was compiled under various flavours of UNIX including, but not limited to, OSF, Linux, and Mac OS-X.

Input data

"stereo2" can read two types of data file, GEOM and OFF files. GEOM files are the usual way of describing geometry for stereo2, the format is described here, they can describe basic geometry including points, lines, faces, spheres, cylinders, cones, etc. An example of what a GEOM file looks like is given below.

# Example geom file, this is a comment
l 0 0 0 1 0 0 1 0 0 red x axis
l 0 0 0 0 1 0 0 0.5 0 green y axis
l 0 0 0 0 0 1 0 0 1 blue z axis
s 0 0 0 0.5 1.0 0.5 0.5 ball
f4 -1 -1 -1   
    1 -1 -1   
    1 -1  1   
   -1 -1  1   0.5 0.5 0.5  bottom face of cube
f4 -1 -1  1  
   -1 -1 -1  
   -1  1 -1   
   -1  1  1   0.5 0.5 0.5  left face
p 0 0 0 1 0 0

The second format called OFF is a file with two sections, the first lists the vertices and the second describes the faces in terms of the vertex indices. Each section is preceeded with the number of items in that section. The vertex section is just a list of x,y,z coordinates, normal, and colour starting at index 0. Each line of the face section starts with an integer indicating the number of vertices and is followed by that many vertex index numbers.

An example OFF file is given below with 1022 vertices and 376 faces. he first two faces have 3 vertices, the third 4 vertices, and the fourth is a line (2 vertices).
1022
1.0 0.5 4.0    1.0 0.0 0.0   1.0 0.0 0.0
2.3 5.4 1.2    0.0 0.5 0.3   1.0 0.2 0.2
:   :   :
:   :   :
376
3 1 0 3
3 5 3 7
4 2 3 600 601
2 5 40
: : :
: : :

In addition to the above geometry formats, stereo2 can read preset camera positions (see the save camera menu item and subsequent file for the format) and flight paths.

Command line options

The command line options and keystrokes are displayed by typing "stereo2 -h", the output is listed below although since this is an evolving package the exact options may change in time.

Usage: stereo2 [command line options]
Command line options    -h         this text
                        -s         active stereo mode
                        -ss        dual screen stereo
                        -f         full screen mode
                        -fps n     target frame rate
                        -r [wfds]  render mode
                        -as        start in autospin mode
                        -ap fn     start in autopilot mode
                        -c         show construction lines
                        -og        open geom file
                        -oo        open off file
                        -vf        open view file
                        -bg r g b  background colour (default=black)
                        -sh n      change default material shininess
                        -dm n      delta movement
                        -bs        background star field (default=off)
                        -bb        show bounding box (default=off)
                        -cd        collision detection (default=off)
                        -cw        clockwise polygons (default=CCW)
                        -cf        back face culling (default=off)
                        -fly       start off in fly mode
                        -walk      start in walking mode
Key Strokes             h          home position for camera (also "home")
                        f          focus camera
                    1...7          standard camera views
                      i,k          translate camera up, down
                      j,l          translate camera left, right
                      -,+          increase/decrease velocity
             page up/down          zoom in or out
                      [,]          roll anticlockwise, clockwise
                      <,>          increase/decrease 3D cursor
                        w          write the current image to disk
                        W          write a higher resolution image to disk
                        c          append camera position to "camera.path"
                        p          create PovRay rendering
               left arrow          rotate camera left
              right arrow          rotate camera right
               down arrow          rotate camera down
                 up arrow          rotate camera up
                        D          delete all geometry
                        q          quit (also ESC, "end")
Function keys          f1          toggle screen info
                       f2          toggle 0 eye separation
                       f3          toggle frame recording
                       f4          toggle construction lines
                       f5          toggle bounding box

The most important options above regarding stereo are "-s" for frame sequential stereo or "-ss" for passive side-by-side stereo. In both cases it is common to also the '-f" for full screen. The software will make a best guess at the correct stereo settings, these will almost always be suitable when an object is being viewed from the outside. The focel point will be set to the center of the bounding box of the object, the camera will be outside the bounding box so the whole object is visible, the eye separation will be 1/30 of the zero parallax distance.

Navigation

The most common navigation is performed with the mouse or the arrow keys, these move the camera around the environment (they do not move the object). If you get lost, the "h" key will return the camera to the default position.

Saving images

Images of the current screen contents can be written to disk as TGA files by pressing the "w" key.

  Examples