The Stereoview library. This is a set of C++ routines designed to make using
our VR setup easier. The API is designed such that most GLUT program can be
converted to work in stereo simply by changing the glutXXX() calls to
stereoviewXXX() calls. All the coordinate reading, processing,
user-feedback, optic-centre corrections and stereo rendering are then handled
by the library.
All the screenshots you'll see here are taken from programs written for - or converted to use - the Stereoview library. Of course, the library itself doesn't actually draw anything - you need a `main' program for that. For testing purposes, the ingeniously named Stereotest program was written. This creates a simple virtual room (see image to the left) with the green lines representing the walls of the room (and which do actually correspond to real walls). The aeroplane demonstrates loading and rendering 3DS .obj files, and also object manipulation using the IS900 wand (see equipment page) - the aeroplane follows the wand position and orientation allowing you to `fly' the plane just as you would a hand-held model plane. |
A 3D painting program. A wireframe cube repesenting a 3D canvas floats
in front of you. You move the wand into that region of space and a
paintbrush appears. Press the wand buttons to draw in different colours.
Now walk around your creation and view from all sorts of angles. Great fun
for all the family!
Download an movie of this program being used (AVI, 2.1Mb). Apologies for the low quality, but any other format produced much a bigger file. The real thing looks much better than this. |
A modification of a Quake
3 engine (based on the CAVE Quake 3 code) to run on our VR set up.
The image to the left is a snapshot of Quake III Arena rendered in stereo. The two views are for the left- and right-eye respectively. Unoptimized code currently gives between 10 and 20 frames per second at 1280x512x24bpp resolution (but remember that a `frame' here is actually two complete renderings of the scene). |
A virtual fishtank. Well, more of an ocean, really, since the `fish'
are actually sharks, dolphins and whales. Heavily based on the OpenGL
Atlantis demo, but with more realistic fish motion and added fog (to give a
fantastic sense of depth). The way the fish `come out' of the murky depths
toward you is great!
|
A virtual rollercoaster. Again, based on the OpenGL/Mesa rollercoaster
code this allows free head movements as you roll along the track inside the
car. Unfortunately, too fast/jerky to be realistic and induce motion
sickness. |