3D Pool Table Introduction
Hardware:
The pool table graphics are rendered on a reality engine 2. The graphics to the monitor
are split to the responsive workbench which projects them onto the underside of a
large table. LCD shutter glasses are used to present stereo images, and polhemus
trackers are used to track the users head and a stylus. The stylus has a single button
on it, which is used for input. The rendering computer doesn't have sound capability,
so we make use of networking to send sound requests to an Indigo2 that is close to
the responsive workbench.
Software:
The machines are all running SGI Irix (a unix derivative). The graphics code is
written in closed gl and C++. We made use of RWB (responsive workbench) libraries that
required this. The RWB libraries set up transformation matrixes to allow us to
easily draw in table space or stylus space. We implemented libraries that allowed
us to easily load textures, lighting models, and other features into the SGI by
use of a textual configuration file.
The Virtual World:
At the end of the real stylus, we draw a virtual cue. The user can hit balls on the
table with the end of the virtual cue. They can also point at buttons that are formed
at the far end of the table, and by pressing the stylus button, they can invoke the
virtual button. The walls and floor of the real world are rendered and a static virtual
sound is used to create a sound anchor. These help to ease the transition from the
real world to the virtual world.
The Pool Table:
The pool table is drawn with polygons. We have broken down the table into several
parts: the felt, the holes or pockets, the bumpers, the sides of the pool table, the
virtual cue, and the balls themselves. Each of these objects is configured via a
textual configuration file that is read when the program loads. We also render
2 spotlights above the table, textures and materials for all of the objects, and
draw shadows for the cue, bumpers on poolball.
Sound Effects:
Collision events are sent to the sound_server via udp packets and stereo sound is
presented to the user. A static object, the cd player can be turned on and off by
the user. These sounds are rendered in virtual space and change as the user moves
their head.
Gameplay:
The pool table initially shows up with the white cue ball at one end, and all the
other balls in formation at the remote end. The user can hit any ball with the tip
of the virtual cue, but the goal is to hit the cue ball and knock it into another
ball and cause a desired ball to fall into a hole.
Graphics Play:
Playing pool is fun. Equally fun is interacting with the virtual world to see how
things are done. By using the virtual buttons, users can turn on&off all the major
graphics effects, affect game play, change sections of the pool table itself and
modify the physics engine and sound properties.
See Also: