Project #2: Make Dr. Welch Sick!
Kenny Hoff
2/13/97
The purpose of this project was to animate and immersively interact
with the model we created in project #1. I implemented the following:
- An animation hierarchy for the ride.
- A viewing system that allows the user to examine the environment from
a "bird's eye" view using trackball, fly, drive style navigation
techniques using the mouse (this system includes path recording and playback
features, and a screen "snapshot" utility). The tracker sensor
axes can be seen from this view.
- Stereo/Mono view from the head-mounted display with head-tracking.
- Tracking of both hands for use in model interaction and navigation.
- A two-handed "fly" mode that works as follows: the user
is holding both ends of an imaginary arrow. When a button is pressed the
direction and length of the array determine the direction and speed of
flight (pressing another button reverses the current direction). Also,
using the locking button the fly mode can always be enganged so the user
can navigate through the world without pressing buttons; a "dead zone"
is incorporated so that when the hands are brought close together, all
motion stops. This provides a VERY intuitive and simple navigation method.
(this idea was borrowed from Mark
Mine's remarkable CHIMP system).
- Two viewing modes from within the HMD/Tracker system: view from
the ground and view from a chair on the ride. Head-tracking is still incorporated
in both modes.
- An extremely simple hmd/tracker library module that allows users to
quickly and easily utilize the head-mounted display, hmd tracking, two-handed
tracking, and all 10 buttons (five for each hand).
- A viewing system that allows the user to navigate and interact with
a model with both the 2D display and mouse, and the HMD and magnetic trackers
simultaneously.
- A firm basis for a possible graphics demonstration for subsequent demo
days.
The entire demo source code and needed extras:
- hmdlib.h, hmdlib.c,
main.c, opengl.hpp,
opengl.c
- textures.hpp, textures.c,
textures.dat
- trimodel.hpp, tridisp.c,
trimodel.c
- vec3f.hpp, camera.hpp
- readme, Makefile,
hmdscript, init.dat
Model files:
A handy and very simple hmd/tracker module and test program: