1580 lines
74 KiB
Plaintext
1580 lines
74 KiB
Plaintext
|
What Is Virtual Reality? A Homebrew Introduction
|
|||
|
March 1993
|
|||
|
Jerry Isdale, i.e. Isdale Engineering
|
|||
|
email: 72330.770@compuserve.com (preferred)
|
|||
|
(alternate email: isdale@well.sf.ca.us)
|
|||
|
|
|||
|
This article is intended as a rough introduction to Virtual Reality (VR),
|
|||
|
primarily as background for (home-brew) development efforts (like the
|
|||
|
Group 3 effort). It is not meant to be The Definitive Treatise on VR. The
|
|||
|
reader is encouraged to search out other introductions and form your
|
|||
|
own opinions. Contact Information and other sources of information are
|
|||
|
listed at the end of this paper.
|
|||
|
|
|||
|
An excellent short treatment of the state of the art and a taxonomy of
|
|||
|
VR is given in the ACM Siggraph publication "Computer Graphics", Vol.
|
|||
|
26, #3, August 1992. It is a report on the US Government's National
|
|||
|
Science Foundation invitational workshop on Interactive Systems
|
|||
|
Program held March 23-24, 1992. The purpose of the workshop was to
|
|||
|
identify and recommend future research directions in the area of virtual
|
|||
|
environments. A longer exposition of that taxonomy can be found in the
|
|||
|
MIT Journal "Presence" Vol. 1 #2.
|
|||
|
|
|||
|
Contents:
|
|||
|
1. What is Virtual Reality
|
|||
|
2. Types of VR Systems
|
|||
|
2.1. Window on World Systems (WoW)
|
|||
|
2.2. Video Mapping
|
|||
|
2.3. Immersive Systems
|
|||
|
2.4. Telepresence
|
|||
|
2.5. Mixed Reality
|
|||
|
3. VR Hardware
|
|||
|
3.1. Manipulation and Control Devices
|
|||
|
3.2. Position Tracking
|
|||
|
3.3. Stereo Vision
|
|||
|
4. Levels of VR Systems
|
|||
|
4.1. Entry VR (EVR)
|
|||
|
4.2. Basic VR (BVR)
|
|||
|
4.3. Advanced VR (AVR)
|
|||
|
4.4. Immersion VR (IVR)
|
|||
|
4.5. Big Time VR
|
|||
|
4.6. SIMNET, Defense Simulation Internet
|
|||
|
5. Aspects of A VR Program
|
|||
|
5.1. Input Processes
|
|||
|
5.2. Simulation Process
|
|||
|
5.3. Rendering Processes
|
|||
|
5.3.1. Visual Renderer
|
|||
|
5.3.2. Auditory Rendering
|
|||
|
5.3.3. Haptic Rendering
|
|||
|
5.3.4. Other Senses
|
|||
|
6. World Space
|
|||
|
6.1. World Coordinates
|
|||
|
6.2. A World Divided: Separation of Environments
|
|||
|
7. World Database
|
|||
|
7.1. Storage Methods
|
|||
|
7.2. Objects
|
|||
|
7.2.1. Position/Orientable
|
|||
|
7.2.2. Hierarchy
|
|||
|
7.2.3. Bounding Volume
|
|||
|
7.3. Object Geometry
|
|||
|
7.3.1. 3D PolyLines & PolyPoints
|
|||
|
7.3.2. Polygons
|
|||
|
7.3.2.1. Vertex Join Set Polygon Format
|
|||
|
7.3.3. Primitives
|
|||
|
7.3.4. Solid Modeling & Boolean Operations
|
|||
|
7.3.5. Curves & Patches
|
|||
|
7.3.6. Dynamic Geometry (aka morphing)
|
|||
|
7.3.7. Swept Objects & Surface of Revolution
|
|||
|
7.3.8. Texture Maps & Billboard Objects
|
|||
|
7.4. Lights
|
|||
|
7.5. Cameras
|
|||
|
7.6. Scripts
|
|||
|
7.6.1. Motion Scripts
|
|||
|
7.6.2. Physical or Procedural Modeling and Simulation
|
|||
|
7.6.3. Simple Animation
|
|||
|
7.6.4. Trigger Scripts
|
|||
|
7.6.5. Connection Scripts
|
|||
|
7.7. Interaction Feedback
|
|||
|
7.8. Graphical User Interface/Control Panels
|
|||
|
7.8.1. Two Dimensional Controls
|
|||
|
7.8.2. Three Dimensional Controls
|
|||
|
7.9. Hardware Control & Connections
|
|||
|
7.10. Room/Stage/Area Descriptions
|
|||
|
8. World Authoring versus Playback
|
|||
|
9. For More VR Information
|
|||
|
9.1. On-line Services & BBS
|
|||
|
9.2. Internet NewsGroups
|
|||
|
9.3. Internet FTP Sites
|
|||
|
9.4. Local User Groups, USA
|
|||
|
9.5. Local User Groups, Other Coutntries:
|
|||
|
9.6. VRASP
|
|||
|
9.7. Journals & Newsletters
|
|||
|
9.8. Professional Societies
|
|||
|
9.9. VR Reference Books
|
|||
|
9.10. Computer Graphics Books
|
|||
|
9.11. Related Books
|
|||
|
9.12. VR Research Labs & Academia
|
|||
|
10. Companies Involved with Virtual Reality
|
|||
|
|
|||
|
1. What is Virtual Reality
|
|||
|
|
|||
|
The term Virtual Reality (VR) is used by many different people and
|
|||
|
currently has many meanings. There are some people to whom VR is a
|
|||
|
specific collection of technologies, that is a Head Mounted Display, Glove
|
|||
|
Input Device and Audio. However, the general concept of the systems
|
|||
|
goes way beyond that. The best definition of Virtual Reality I have see to
|
|||
|
date comes from the book "The Silicon Mirage" (see section on VR Books):
|
|||
|
|
|||
|
"Virtual Reality is a way for humans to visualize, manipulate and
|
|||
|
interact with computers and extremely complex data"
|
|||
|
|
|||
|
The visualization part refers to the computer generating visual, auditory
|
|||
|
or other sensual inputs. The images are graphical renderings of a world
|
|||
|
within the computer. This world may be a CAD model, a scientific
|
|||
|
simulation, or a view into a database. The user can interact with the
|
|||
|
world and directly manipulate objects within the world. Some worlds are
|
|||
|
animated by other processes, perhaps physical simulations, or simple
|
|||
|
animation scripts.
|
|||
|
|
|||
|
Some people object to the term "Virtual Reality", saying it is an
|
|||
|
oxymoron. Other terms that have been used are Synthetic Environments,
|
|||
|
Cyberspace, Artificial Reality, Simulator Technology, etc. VR is the most
|
|||
|
common and sexiest. It has caught the attention of the media.
|
|||
|
|
|||
|
The applications being developed for VR run a wide spectrum, from
|
|||
|
games to building and business planning. Many applications are worlds
|
|||
|
that are very similar to our own, like CAD or architectural modeling.
|
|||
|
Some applications provide ways of viewing from an advantageous
|
|||
|
perspective not possible with the real world, like scientific simulators and
|
|||
|
telepresense systems, air traffic control systems. Other applications are
|
|||
|
much different from anything we have ever directly experienced before.
|
|||
|
These latter applications may be the hardest, and most interesting
|
|||
|
systems. Visualizing the ebb and flow of the world's financial markets.
|
|||
|
Navigating a large corporate information base, etc.
|
|||
|
|
|||
|
2. Types of VR Systems
|
|||
|
|
|||
|
A major distinction of VR systems is the mode with which they interface
|
|||
|
to the user. There are some non-technologically mediated methods that
|
|||
|
some people stretch to include in VR, such as books, plays, movies or
|
|||
|
pure imagination. The above mentioned taxonomy can include these, but
|
|||
|
we wish to restrict VR to technology mediated systems.
|
|||
|
|
|||
|
2.1. Window on World Systems (WoW)
|
|||
|
|
|||
|
Some systems use a conventional computer monitor to display the
|
|||
|
visual world. This sometimes called desktop VR or a Window on a World
|
|||
|
(WoW). This concept traces its lineage back through the entire history of
|
|||
|
computer graphics. In 1965, Ivan Sutherland laid out a research
|
|||
|
program for computer graphics in a paper called "The Ultimate Display"
|
|||
|
that has driven the field for the past nearly thirty years.
|
|||
|
|
|||
|
One must look at a display screen, he said, as a window through which
|
|||
|
one beholds a virtual world. The challenge to computer graphics is to
|
|||
|
make the picture in the window look real, sound real and the objects act
|
|||
|
real. [quoted from Computer Graphics V26#3]
|
|||
|
|
|||
|
2.2. Video Mapping
|
|||
|
|
|||
|
A variation of the WoW approach merges a video input of the user's
|
|||
|
silhouette with a 2D computer graphic. The user watches a monitor that
|
|||
|
shows his body's interaction with the world. Myron Kruger has been a
|
|||
|
champion of this form of VR since the late 60's. He has published two
|
|||
|
books on the subject: "Artificial Reality" and "Artificial Reality II". At least
|
|||
|
one commercial system uses this approach, the Mandala system. This
|
|||
|
system is based on a Commodore Amiga with some added hardware and
|
|||
|
software. A version of the Mandala is used by the cable TV channel
|
|||
|
Nickelodeon for a game show (Nick Arcade) to put the contestants into
|
|||
|
what appears to be a large video game.
|
|||
|
|
|||
|
2.3. Immersive Systems
|
|||
|
|
|||
|
The ultimate VR systems completely immerse the user's personal
|
|||
|
viewpoint inside the virtual world. These "immersive" VR systems are
|
|||
|
often equipped with a Head Mounted Display. This is a helmet or a face
|
|||
|
mask that holds the visual and auditory displays. The helmet may be free
|
|||
|
ranging, or it might be attached to some sort of a boom armature.
|
|||
|
|
|||
|
A nice variation of the immersive systems use multiple large projection
|
|||
|
displays to create a 'Cave'. An early implementation was called "The
|
|||
|
Closet Cathedral" for the ability to create the impression of an immense
|
|||
|
environment. within a small physical space. The Holodeck used in the
|
|||
|
television series "Star Trek: The Next Generation" is an extrapolation of
|
|||
|
this technology.
|
|||
|
|
|||
|
2.4. Telepresence
|
|||
|
|
|||
|
A variation on visualizing complete computer generated worlds is
|
|||
|
"Telepresence". This is a technology that links remote sensors in the real
|
|||
|
world with the senses of a human operator. The remote sensors might be
|
|||
|
located on a robot, or they might be on the ends of WALDO like tools.
|
|||
|
Fire fighters use remotely operated vehicles to handle some dangerous
|
|||
|
conditions. Surgeons are using very small instruments on cables to do
|
|||
|
surgery without cutting a major hole in their patients. The instruments
|
|||
|
have a small video camera at the business end.
|
|||
|
|
|||
|
2.5. Mixed Reality
|
|||
|
|
|||
|
Merging the Telepresence and Virtual Reality systems gives the Mixed
|
|||
|
Reality or Seamless Simulation systems. Here the computer generated
|
|||
|
inputs are merged with telepresence inputs and the users view of the real
|
|||
|
world. A surgeon's view of a brain surgery is overlaid with images from
|
|||
|
earlier CAT scans and real-time ultrasound. A fighter pilot sees computer
|
|||
|
generated maps and data displays inside his fancy helmet visor.
|
|||
|
|
|||
|
3. VR Hardware
|
|||
|
|
|||
|
There are a number of specialized types of hardware that have been
|
|||
|
developed or used for Virtual Reality applications.
|
|||
|
|
|||
|
3.1. Manipulation and Control Devices
|
|||
|
|
|||
|
One key element for interaction with a virtual world, is a means of
|
|||
|
tracking the position of a real world object, such as a head or hand.
|
|||
|
There are numerous methods for position tracking and control. Ideally a
|
|||
|
technology should provide 3 measures for position(X, Y, Z) and 3
|
|||
|
measures of orientation (roll, pitch, yaw). One of the biggest problem for
|
|||
|
position tracking is latency, or the time required to make the
|
|||
|
measurements and preprocess them before input to the simulation
|
|||
|
engine.
|
|||
|
|
|||
|
The simplest control hardware is a conventional mouse, trackball or
|
|||
|
joystick. While these are two dimensional devices, creative programming
|
|||
|
can use them for 6D controls. There are a number of 3 and 6
|
|||
|
dimensional mice/trackball/joystick devices being introduced to the
|
|||
|
market at this time. These add some extra buttons and wheels that are
|
|||
|
used to control not just the XY translation of a cursor, but its Z
|
|||
|
dimension and rotations in all three directions. One 6D Joystick has
|
|||
|
recently become available, the Global Devices 6D Controller. It has a
|
|||
|
tennis ball mounted on a stick. You can pull and twist the ball in
|
|||
|
addition to the left/right & forward/back of a normal joystick.
|
|||
|
|
|||
|
One common VR device is the instrumented glove.(NOTE: the use of a
|
|||
|
glove to manipulate objects in a computer is covered by a basic patent.)
|
|||
|
Here a glove is outfitted with sensors on the fingers as well as an overall
|
|||
|
position/orientation tracker. There are a number of different types of
|
|||
|
sensors that can be used. VPL (holders of the patent) made several
|
|||
|
DataGloves, mostly using fiberoptic sensors for finger bends and
|
|||
|
magnetic trackers for overal position. Mattel manufactured the
|
|||
|
PowerGlove for use with the Nintendo game system, for a short time.
|
|||
|
This device is easily adapted to interface to a personal computer. It
|
|||
|
provides some limited hand location and finger position data using strain
|
|||
|
gauges for finger bends and ultrasonic position sensors. The gloves are
|
|||
|
getting rare, but some can still be found at Toys R' Us and other discount
|
|||
|
stores. Anthony Clifton recently posted this suggestion for a" very good
|
|||
|
resource for powergloves etc: small children. A friend's son had gotten a
|
|||
|
glove a couple years ago and almost NEVER used it, so I bought it off the
|
|||
|
kid. Remember children like money more than toys they never use."
|
|||
|
|
|||
|
3.2. Position Tracking
|
|||
|
|
|||
|
Mechanical armatures can be used to provide fast and very accurate
|
|||
|
tracking. Such armatures may look like a desk lamp (for basic
|
|||
|
position/orientation) or they may be highly complex exoskeletons (for
|
|||
|
more detailed positions). The drawbacks of mechanical sensors are the
|
|||
|
encumbrance of the device and its restrictions on motion.
|
|||
|
|
|||
|
Ultrasonic sensors can be used to track position and orientation. A set
|
|||
|
of emitters and receivers are used with a known relationship between
|
|||
|
the emitters and between the receivers. The emitters are pulsed in
|
|||
|
sequence and the time lag to each receiver is measured. Triangulation
|
|||
|
gives the position. Drawbacks to ultrasonics are low resolution, long lag
|
|||
|
times and susceptibility to echoes from the environment.
|
|||
|
|
|||
|
Magnetic trackers use sets of coils that are pulsed to produce magnetic
|
|||
|
fields. The magnetic sensors determine the strength and angles of the
|
|||
|
fields. Limitations of these trackers are a high latency for the
|
|||
|
measurement and processing, range limitations, and interference from
|
|||
|
ferrous materials within the fields. However, magnetic trackers seem to
|
|||
|
be one of the preferred methods.
|
|||
|
|
|||
|
Optical position tracking systems have been developed. One method
|
|||
|
uses a ceiling grid LEDs and a head mounted camera. The LEDs are
|
|||
|
pulsed in sequence and the cameras image is processed to detect the
|
|||
|
flashes. Two problems with this method are limited space (grid size) and
|
|||
|
lack of full motion (rotations). Another optical method uses a number of
|
|||
|
video cameras to capture simultaneous images that are correlated by
|
|||
|
high speed computers to track objects. Processing time (and cost of fast
|
|||
|
computers) is a major limiting factor here.
|
|||
|
|
|||
|
Inertial trackers have been developed that are small and accurate
|
|||
|
enough for VR use. However, these devices generally only provide
|
|||
|
rotational measurements. They are also not accurate for slow position
|
|||
|
changes.
|
|||
|
|
|||
|
3.3. Stereo Vision
|
|||
|
|
|||
|
Stereo vision is often included in a VR system. This is accomplished by
|
|||
|
creating two different images of the world, one for each eye. The images
|
|||
|
are computed with the viewpoints offset by the equivalent distance
|
|||
|
between the eyes. There are a large number of technologies for presenting
|
|||
|
these two images. The images can be placed side-by-side and the viewer
|
|||
|
asked (or assisted) to cross their eyes. The images can be projected
|
|||
|
through differently polarized filters, with corresponding filters placed in
|
|||
|
front of the eyes. Anaglyph images user red/blue glasses to provide a
|
|||
|
crude (no color) stereovision.
|
|||
|
|
|||
|
The two images can be displayed sequentially on a conventional monitor
|
|||
|
or projection display. LCD shutter glasses are then used to shut off
|
|||
|
alternate eyes in synchronization with the display. When the brain
|
|||
|
receives the images in rapid enough succession, it fuses the images into
|
|||
|
a single scene and perceives depth. A fairly high display swapping rate
|
|||
|
(min 60hz) is required to avoid perceived flicker. A number of companies
|
|||
|
made low cost LCD shutter glasses for use with TVs (Sega, Nintendo,
|
|||
|
Toshiba, etc). There are circuits and code for hooking these up to a
|
|||
|
computer available on many of the Online systems, BBSs and Internet
|
|||
|
FTP sites mentioned later. However, locating the glasses themselves is
|
|||
|
getting difficult as none are still being made or sold for their original use.
|
|||
|
|
|||
|
A more advanced stereoscopic system can be create by placing seperate
|
|||
|
small displays can be placed in front of each eye, with special optics to
|
|||
|
focus and stretch the perceived field of view. This setup is commonly
|
|||
|
known as a Head Mounted Display or HMD. Most lower cost HMDs
|
|||
|
($6000 range ) use LCD displays, while others use small CRTs. The more
|
|||
|
expensive HMDs use optical fibers to pipe the images from non-head
|
|||
|
mounted displays. ($60,000 and up) A HMD requires a position tracker
|
|||
|
in addition to the helmet. Alternatively, the binocular display can be
|
|||
|
mounted on an armature for support and tracking (a Boom display)
|
|||
|
|
|||
|
4. Levels of VR Systems
|
|||
|
|
|||
|
There are currently quite a number of different efforts to develop VR
|
|||
|
technology. Each of these projects has different goals and approach to
|
|||
|
the overall VR technology. Major (and Minor) University labs have big
|
|||
|
projects underway (UNC, Cornell, etc.). DARPA is investing heavily in VR
|
|||
|
and other simulation technologies. There are industry supported
|
|||
|
laboratories too, like the Human Interface Technologies Laboratory (HITL)
|
|||
|
in Seattle and Japanese NTT project. Many existing and startup
|
|||
|
companies are also building and selling world building tools (Autodesk,
|
|||
|
IBM's VUE, Sense8, VREAM).
|
|||
|
|
|||
|
There is also a number of home-brew VR projects. Some of these are
|
|||
|
highly visible, being publicized either in conventional media (PCVR
|
|||
|
magazine) or in the electronic networks (Rend386, etc.). Others are
|
|||
|
individuals and small club projects.
|
|||
|
|
|||
|
4.1. Entry VR (EVR)
|
|||
|
|
|||
|
The 'Entry Level' VR system takes a stock personal computer or
|
|||
|
workstation and implements a WoW system. The system may be based
|
|||
|
on an IBM clone (MS-DOS/Windows) machine or an Apple Macintosh, or
|
|||
|
perhaps a Commodore Amiga. The DOS type machines (IBM PC clones)
|
|||
|
are the most prevalent. There are Mac based systems, but few very fast
|
|||
|
rendering ones and no public domain versions, to my knowledge.
|
|||
|
Whatever the base computer it includes a graphic display, a 2D input
|
|||
|
device like a mouse, trackball or joystick, the keyboard, hard disk &
|
|||
|
memory.
|
|||
|
|
|||
|
Virtual Reality Studio (aka VR Studio, VRS) is a commercial example of
|
|||
|
an Entry Level VR product available from Accolade for PC and Amiga
|
|||
|
systems. VR Studio provides world creation and runtime versions of the
|
|||
|
program. Worlds created with the program can be freely distributed with
|
|||
|
the player package. There are a number of these worlds available from
|
|||
|
the networks. Compuserve's GraphDev forum has several in Library 11
|
|||
|
(VR Tech), like the company provided demo VRSDMO.ZIP (VRS.TXT gives
|
|||
|
a solution to the demo game).
|
|||
|
|
|||
|
4.2. Basic VR (BVR)
|
|||
|
|
|||
|
The next step up from an EVR system adds some basic interaction and
|
|||
|
display enhancements. Such enhancements would include a
|
|||
|
stereographic viewer (LCD Shutterglasses) and a input/control device
|
|||
|
such as the Mattel PowerGlove and/or a multidimensional mouse or
|
|||
|
joystick.
|
|||
|
|
|||
|
4.3. Advanced VR (AVR)
|
|||
|
|
|||
|
The next step up the VR technology ladder is to add a rendering
|
|||
|
accelerator and/or frame buffer and possibly other parallel processors for
|
|||
|
input handling, etc. The simplest enhancement in this area is a faster
|
|||
|
display card. For the PC class machines, there are a number of new fast
|
|||
|
VGA and SVGA accelerator cards. These can make a dramatic
|
|||
|
improvement in the rendering performance of a desktop VR system.
|
|||
|
Other more sophisticated image processors based on the Texas
|
|||
|
Instruments TI34020 or Intel i860 processor can make even more
|
|||
|
dramatic improvements in rendering capabilities. The i860 in particular
|
|||
|
is in many of the high end professional systems. The Silicon Graphics
|
|||
|
Reality Engine uses a number of i860 processors in addition to the usual
|
|||
|
SGI workstation hardware to achieve stunning levels of realism in real
|
|||
|
time animation.
|
|||
|
|
|||
|
An AVR system might also add a sound card to provide mono, stereo or
|
|||
|
true 3D audio output. Some sound cards also provide voice recognition.
|
|||
|
This would be an excellent additional input device for VR applications.
|
|||
|
|
|||
|
4.4. Immersion VR (IVR)
|
|||
|
|
|||
|
An Immersion VR system adds some type of immersive display system:
|
|||
|
a HMD, a Boom, or multiple large projection type displays.
|
|||
|
|
|||
|
An IVR system might also add some form of tactile, haptic and touch
|
|||
|
feedback interaction mechanisms. The area of Touch or Force Feedback
|
|||
|
(known collectively as Haptics) is a very new research arena.
|
|||
|
|
|||
|
4.5. Big Time VR
|
|||
|
|
|||
|
Many of the more advanced systems are being designed as software
|
|||
|
toolkits or operating systems for VR. This workbench approach allows
|
|||
|
them to substitute different input devices, renderers, simulation systems,
|
|||
|
etc. Some of these systems run as distributed processes over a network
|
|||
|
of computers.
|
|||
|
|
|||
|
4.6. SIMNET, Defense Simulation Internet
|
|||
|
|
|||
|
One of the biggest VR projects is the Defense Simulation Internet. This
|
|||
|
project is a standardization being pushed by the USA Defense
|
|||
|
Department to enable diverse simulators to be interconnected into a vast
|
|||
|
network. It is an outgrowth of the DARPA (Defense Advanced Research
|
|||
|
Projects Administration) SIMNET project of the later 1980s. The basic
|
|||
|
Distributed Interactive Simulation (DIS) protocol has been defined by the
|
|||
|
Orlando Institute for Simulation & Training. It is the basis for the next
|
|||
|
generation of SIMNET, the Defense Simulation Internet (DSI). (love those
|
|||
|
acronyms!) A good, accessible treatment of SIMNET and DSI can be
|
|||
|
found in the premier issue of WIRED magazine (January 1993) entitled
|
|||
|
"War is Virtual Hell" by Bruce Sterling.
|
|||
|
|
|||
|
5. Aspects of A VR Program
|
|||
|
|
|||
|
Just what is required of a VR program? The basic parts of the system
|
|||
|
can be broken down into an Input Processor, a Simulation Processor, a
|
|||
|
Rendering Process, and a World Database. All these parts must consider
|
|||
|
the time required for processing. Every delay in response time degrades
|
|||
|
the feeling of 'presence' and reality of the simulation.
|
|||
|
|
|||
|
5.1. Input Processes
|
|||
|
|
|||
|
The Input Processes of a VR program control the devices used to input
|
|||
|
information to the computer. There are a wide variety of possible input
|
|||
|
devices: keyboard, mouse, trackball, joystick, 3D & 6D position trackers
|
|||
|
(glove, wand, head tracker, body suit, etc.). A network system would add
|
|||
|
inputs from the net. A voice recognition system is also a good
|
|||
|
augmentation for VR, especially if the user's hands are being used for
|
|||
|
other tasks.
|
|||
|
|
|||
|
5.2. Simulation Process
|
|||
|
|
|||
|
The core of a VR program is the simulation system. This is the process
|
|||
|
that knows about the objects and the various inputs. It handles the
|
|||
|
interactions, the scripted object actions, simulations of physical laws
|
|||
|
(real or imaginary) and determines the world status. This simulation is
|
|||
|
basically a discrete process that is iterated once for each time step or
|
|||
|
frame. A networked VR application may have multiple simulations
|
|||
|
running on different machines, each with a different time step.
|
|||
|
Coordination of these can be a complex task.
|
|||
|
|
|||
|
5.3. Rendering Processes
|
|||
|
|
|||
|
The Rendering Processes of a VR program are those that create the
|
|||
|
sensations that are output to the user. A network VR program would also
|
|||
|
output data to other network processes. There would be separate
|
|||
|
rendering processes for visual, auditory, haptic (touch/force), and other
|
|||
|
sensory systems. Each renderer would take a description of the world
|
|||
|
state from the simulation process or derive it directly from the World
|
|||
|
Database for each time step.
|
|||
|
|
|||
|
5.3.1. Visual Renderer
|
|||
|
|
|||
|
The visual renderer is the most common process and it has a long
|
|||
|
history from the world of computer graphics and animation. The reader is
|
|||
|
encouraged to become familiar with various aspects of this technology.
|
|||
|
|
|||
|
The major consideration of a graphic renderer for VR applications is the
|
|||
|
frame generation rate. It is necessary to create a new frame every 1/20 of
|
|||
|
a second or faster. (1/20 is roughly the minimum rate at which the
|
|||
|
human brain will merge a stream of still images and perceive a smooth
|
|||
|
animation. 1/24fps is the standard rate for film, 1/25fps is PAL TV, 1/30
|
|||
|
is NTSC TV rates. 1/60fps is Showscan film rate.) This requirement
|
|||
|
eliminates a number of rendering techniques such as raytracing and
|
|||
|
radiosity. These techniques can generate very realistic images but often
|
|||
|
take hours to generate single frames. Visual renderers for VR use other
|
|||
|
methods such as a 'painter's algorithm', a Z-Buffer, or other Scanline
|
|||
|
oriented algorithm. There are many areas of visual rendering that have
|
|||
|
been augmented with specialized hardware.
|
|||
|
|
|||
|
The visual rendering process is often referred to as a rendering pipeline.
|
|||
|
This refers to the series of sub-processes that are invoked to create each
|
|||
|
frame. A sample rendering pipeline starts with a description of the world,
|
|||
|
the objects, lighting and camera (eye) location in world space. A first step
|
|||
|
would be eliminate all objects that are not visible by the camera. This can
|
|||
|
be quickly done by clipping the object bounding box or sphere against
|
|||
|
the viewing pyramid of the camera. Then the remaining objects have their
|
|||
|
geometry's transformed into the eye coordinate system (eye point at
|
|||
|
origin). Then the hidden surface algorithm and actual pixel rendering is
|
|||
|
done.
|
|||
|
|
|||
|
The pixel rendering is also known as the 'lighting' or 'shading'
|
|||
|
algorithm. There are a number of different methods that are possible
|
|||
|
depending on the realism and calculation speed available. The simplest
|
|||
|
method is called flat shading and simply fills the entire area with the
|
|||
|
same color. The next step up provides some variation in color across a
|
|||
|
single surface. Beyond that is the possibility of smooth shading across
|
|||
|
surface boundaries, adding highlights, reflections, etc.
|
|||
|
|
|||
|
An effective short cut for visual rendering is the use of "texture" or
|
|||
|
"image" maps. These are pictures that are mapped onto objects in the
|
|||
|
virtual world. Instead of calculating lighting and shading for the object,
|
|||
|
the renderer determines which part of the texture map is visible at each
|
|||
|
visible point of the object. The resulting image appears to have
|
|||
|
significantly more detail than is otherwise possible. Some VR systems
|
|||
|
have special 'billboard' objects that always face towards the user. By
|
|||
|
mapping a series of different images onto the billboard, the user can get
|
|||
|
the appearance of moving around the object.
|
|||
|
|
|||
|
5.3.2. Auditory Rendering
|
|||
|
|
|||
|
A VR system is greatly enhanced by the inclusion of an audio
|
|||
|
component. This may produce mono, stereo or 3D audio. The latter is a
|
|||
|
fairly difficult proposition. It is not enough to do stereo-pan effects as the
|
|||
|
mind tends to locate these sounds inside the head. Research into 3D
|
|||
|
audio has shown that there are many aspects of our head and ear shape
|
|||
|
that effect the recognition of 3D sounds. It is possible to apply a rather
|
|||
|
complex mathematical function (called a Head Related Transfer Function
|
|||
|
or HRTF) to a sound to produce this effect. The HRTF is a very personal
|
|||
|
function that depends on the individual's ear shape, etc. However, there
|
|||
|
has been significant success in creating generalized HRTFs that work for
|
|||
|
most people and most audio placement. There remains a number of
|
|||
|
problems, such as the 'cone of confusion' wherein sounds behind the
|
|||
|
head are perceived to be in front of the head.
|
|||
|
|
|||
|
Sound has also been suggested as a means to convey other information,
|
|||
|
such as surface roughness. Dragging your virtual hand over sand would
|
|||
|
sound different than dragging it through gravel.
|
|||
|
|
|||
|
5.3.3. Haptic Rendering
|
|||
|
|
|||
|
Haptics is the generation of touch and force feedback information. This
|
|||
|
area is a very new science and there is much to be learned. There have
|
|||
|
been very few studies done on the rendering of true touch sense (such as
|
|||
|
liquid, fur, etc.). Almost all systems to date have focused on force
|
|||
|
feedback and kinesthetic senses. These systems can provide good clues
|
|||
|
to the body regarding the touch sense, but are considered distinct from
|
|||
|
it. Many of the haptic systems thus far have been exo-skeletons that can
|
|||
|
be used for position sensing as well as providing resistance to movement
|
|||
|
or active force application.
|
|||
|
|
|||
|
5.3.4. Other Senses
|
|||
|
|
|||
|
The sense of balance and motion can be served to a fair degree in a VR
|
|||
|
system by a motion platform. These are used in flight simulators and
|
|||
|
some theaters to provide some motion cues that the mind integrates with
|
|||
|
other cues to perceive motion. It is not necessary to recreate the entire
|
|||
|
motion perfectly to fool the mind into a willing suspension of disbelief.
|
|||
|
|
|||
|
The sense of temperature has seen some technology developments.
|
|||
|
There exist very small electrical heat pumps that can produce the
|
|||
|
sensation of heat and cold in a localized area. These system are fairly
|
|||
|
expensive.
|
|||
|
|
|||
|
Other senses such as taste, smell, pheromone, etc. are beyond our
|
|||
|
ability to render rapidly and effectively. Sometimes, we just don't know
|
|||
|
enough about the functioning of these other senses.
|
|||
|
|
|||
|
6. World Space
|
|||
|
|
|||
|
The virtual world itself needs to be defined in a 'world space'. By its
|
|||
|
nature as a computer simulation, this world is necessarily limited. The
|
|||
|
computer must put a numeric value on the locations of each point of
|
|||
|
each object within the world. Usually these 'coordinates' are expressed in
|
|||
|
Cartesian dimensions of X, Y, and Z (length, height, depth). It is possible
|
|||
|
to use alternative coordinate systems such as spherical but Cartesian
|
|||
|
coordinates are the norm for almost all applications. Conversions
|
|||
|
between coordinate systems are fairly simple (if time consuming).
|
|||
|
|
|||
|
6.1. World Coordinates
|
|||
|
|
|||
|
A major limitation on the world space is the type of numbers used for
|
|||
|
the coordinates. Some worlds use floating point coordinates. This allows
|
|||
|
a very large range of numbers to be specified, with some precision lost on
|
|||
|
large numbers. Other systems used fixed point coordinates, which
|
|||
|
provides uniform precision on a more limited range of values. The choice
|
|||
|
of fixed versus floating point is often based on speed as well as the desire
|
|||
|
for a uniform coordinate field.
|
|||
|
|
|||
|
6.2. A World Divided: Separation of Environments
|
|||
|
|
|||
|
One method of dealing with the limitations on the world coordinate
|
|||
|
space is to divide a virtual world up into multiple worlds and provide a
|
|||
|
means of transiting between the worlds. This allows fewer objects to be
|
|||
|
computed both for scripts and for rendering. There should be multiple
|
|||
|
stages (aka rooms, areas, zones, worlds, multiverses, etc.) and a way to
|
|||
|
move between them.
|
|||
|
|
|||
|
7. World Database
|
|||
|
|
|||
|
The storage of information on objects and the world is a major part of
|
|||
|
the design of a VR system. The primary things that are stored in the
|
|||
|
World Database (or World Description Files) are the objects that inhabit
|
|||
|
the world, scripts that describe actions of those objects or the user
|
|||
|
(things that happen to the user), lighting, program controls, and
|
|||
|
hardware device support.
|
|||
|
|
|||
|
7.1. Storage Methods
|
|||
|
|
|||
|
There are a number of different ways the world information may be
|
|||
|
stored: a single file, a collection of files, or a database. The multiple file
|
|||
|
method is one of the more common approaches for VR development
|
|||
|
packages. Each object has one or more files (geometry, scripts, etc.) and
|
|||
|
there is some overall 'world' file that causes the other files to be loaded.
|
|||
|
Some systems also include a configuration file that defines the hardware
|
|||
|
interface connections.
|
|||
|
|
|||
|
Sometimes the entire database is loaded during program startup, other
|
|||
|
systems only read the currently needed files. A real database system
|
|||
|
helps tremendously with the latter approach. An Object Oriented
|
|||
|
Database would be a great fit for a VR system, but I am not aware of any
|
|||
|
projects currently using one.
|
|||
|
|
|||
|
The data files are most often stored as ASCII (human readable) text
|
|||
|
files. However, in many systems these are replaced by binary computer
|
|||
|
files. Some systems have all the world information compiled directly into
|
|||
|
the application.
|
|||
|
|
|||
|
7.2. Objects
|
|||
|
|
|||
|
Objects in the virtual world can have geometry, hierarchy, scripts, and
|
|||
|
other attributes. The capabilities of objects has a tremendous impact on
|
|||
|
the structure and design of the system. In order to retain flexibility, a list
|
|||
|
of named attribute/values pairs is often used. Thus attributes can be
|
|||
|
added to the system without requiring changes to the object data
|
|||
|
structures.
|
|||
|
|
|||
|
These attribute lists would be addressable by name (i.e. cube.mass =>
|
|||
|
mass of the cube object). They may be a scalar, vector, or expression
|
|||
|
value. They may be addressable from within the scripts of their object.
|
|||
|
They might be accessible from scripts in other objects.
|
|||
|
|
|||
|
7.2.1. Position/Orientable
|
|||
|
|
|||
|
An object is positionable and orientable. That is, it has a location and
|
|||
|
orientation in space. Most objects can have these attributes modified by
|
|||
|
applying translation and rotation operations. These operations are often
|
|||
|
implemented using methods from vector and matrix algebra.
|
|||
|
|
|||
|
7.2.2. Hierarchy
|
|||
|
|
|||
|
An object may be part of an object part HIERARCHY with a parent,
|
|||
|
sibling, and child objects. Such an object would inherit the
|
|||
|
transformations applied to it's parent object and pass these on to it's
|
|||
|
siblings and children. Hierarchies are used to create jointed figures such
|
|||
|
as robots and animals. They can also be used to model other things like
|
|||
|
the sun, <20>planets and moons in a solar system.
|
|||
|
|
|||
|
7.2.3. Bounding Volume
|
|||
|
|
|||
|
Additionally, an object should include a BOUNDING VOLUME. The
|
|||
|
simplest bounding volume is the Bounding Sphere, specified by a center
|
|||
|
and radius. Another simple alternative is the Bounding Cube. This data
|
|||
|
can be used for rapid object culling during rendering and trigger
|
|||
|
analysis. Objects whose bounding volume is completely outside the
|
|||
|
viewing area need not be transformed or considered further during
|
|||
|
rendering. Collision detection with bounding spheres is very rapid. It
|
|||
|
could be used alone, or as a method for culling objects before more
|
|||
|
rigorous collision detection algorithms are applied.
|
|||
|
|
|||
|
7.3. Object Geometry
|
|||
|
|
|||
|
The modeling of object shape and geometry is a large and diverse field.
|
|||
|
Some approaches seek to very carefully model the exact geometry of real
|
|||
|
world objects. Other methods seek to create simplified representations.
|
|||
|
Most VR systems sacrifice detail and exactness for simplicity for the sake
|
|||
|
of rendering speed.
|
|||
|
|
|||
|
The simplest objects are single dimensional points. Next come the two
|
|||
|
dimensional vectors. Many CAD systems create and exchange data as 2D
|
|||
|
views. This information is not very useful for VR systems, except for
|
|||
|
display on a 2D surface within the virtual world. There are some
|
|||
|
programs that can reconstruct a 3D model of an object, given a number
|
|||
|
of 2D views.
|
|||
|
|
|||
|
7.3.1. 3D PolyLines & PolyPoints
|
|||
|
|
|||
|
The simplest 3D objects are known as PolyPoints and PolyLines. A
|
|||
|
PolyPoint is simply a collection of points in space. A Polyline is a set of
|
|||
|
vectors that form a continuous line.
|
|||
|
|
|||
|
7.3.2. Polygons
|
|||
|
|
|||
|
The most common form of objects used in VR systems are based on flat
|
|||
|
polygons. A polygon is a planar, closed multi-sided figure. They maybe
|
|||
|
convex or concave, but some systems require convex polygons. The use
|
|||
|
of polygons often gives objects a faceted look. This can be offset by more
|
|||
|
advanced rendering techniques such as the use of smooth shading and
|
|||
|
texture mapping.
|
|||
|
|
|||
|
Some systems use simple triangles or quadrilaterals instead of more
|
|||
|
general polygons. This can simplify the rendering process, as all surfaces
|
|||
|
have a known shape. However, it can also increase the number of
|
|||
|
surfaces that need to be rendered.
|
|||
|
|
|||
|
7.3.2.1. Vertex Join Set Polygon Format
|
|||
|
|
|||
|
Vertex Join Set Polygon Format is a useful form of polygonal object. For
|
|||
|
each object in a VJS, there is a common pool of Points that are
|
|||
|
referenced by the polygons for that object. Transforming these shared
|
|||
|
points reduces the calculations needed to render the object. A point at
|
|||
|
the edge of a cube is only processed once, rather once for each of the
|
|||
|
three edge/polygons that reference it. The PLG format used by REND386
|
|||
|
is an example of a Vertex Join Set, as is the BYU format used by the
|
|||
|
'ancient' MOVIE.BYU program.)
|
|||
|
|
|||
|
The geometry format can support precomputed polygon and vertex
|
|||
|
normals. Both Polygons and vertices should be allowed a color attribute.
|
|||
|
Different renderers may use or ignore these and possibly more advanced
|
|||
|
surface characteristics. Precomputed polygon normals are very helpful
|
|||
|
for backface polygon removal. Vertices may also have texture
|
|||
|
coordinates assigned to support texture or other image mapping
|
|||
|
techniques.
|
|||
|
|
|||
|
7.3.3. Primitives
|
|||
|
|
|||
|
Some systems provide only Primitive Objects, such as cubes, cones, and
|
|||
|
spheres. Sometimes, these objects can be slightly deformed by the
|
|||
|
modeling package to provide more interesting objects.
|
|||
|
|
|||
|
7.3.4. Solid Modeling & Boolean Operations
|
|||
|
|
|||
|
Solid Modeling (aka Computer Solid Geometry, CSG) is one form of
|
|||
|
geometric modeling that uses primitive objects. It extends the concept by
|
|||
|
allowing various addition, subtraction, Boolean and other operations
|
|||
|
between these primitives. This can be very useful in modeling objects
|
|||
|
when you are concerned with doing physical calculations, such as center
|
|||
|
of mass, etc. However, this method does incur some significant
|
|||
|
calculations and is not very useful for VR applications. It is possible to
|
|||
|
convert a CSG model into polygons. Various complexity polygonal models
|
|||
|
could be made from a single high resolution 'metaobject' of a CSG type.
|
|||
|
|
|||
|
7.3.5. Curves & Patches
|
|||
|
|
|||
|
Another advanced form of geometric modeling is the use of curves and
|
|||
|
curved surfaces (aka patches). These can be very effective in representing
|
|||
|
complex shapes, like the curved surface of an automobile, ship or beer
|
|||
|
bottle. However, there is significant calculation involved in determining
|
|||
|
the surface location at each pixel, thus curve based modeling is not used
|
|||
|
directly in VR systems. It is possible, however, to design an object using
|
|||
|
curves and then compute a polygonal representation of those curved
|
|||
|
patches. Various complexity polygonal models could be made from a
|
|||
|
single high resolution 'metaobject'.
|
|||
|
|
|||
|
7.3.6. Dynamic Geometry (aka morphing)
|
|||
|
|
|||
|
It is sometimes desirable to have an object that can change shape. The
|
|||
|
shape might simply be deformed, such a bouncing ball or the
|
|||
|
squash/stretch used in classical animation ('toons'), or it might actually
|
|||
|
undergo metamorphosis into a completely different geometry. The latter
|
|||
|
effect is commonly known as 'morphing' and has been extensively used
|
|||
|
in films, commercials and television shows. Morphing can be done in the
|
|||
|
image domain (2D morph) or in the geometry domain (3D morph). The
|
|||
|
latter is applicable to VR systems. The simplest method of doing a 3D
|
|||
|
morph is to precompute the various geometry's and step through them
|
|||
|
as needed. A system with significant processing power can handle real
|
|||
|
time object morphing.
|
|||
|
|
|||
|
7.3.7. Swept Objects & Surface of Revolution
|
|||
|
|
|||
|
A common method for creating objects is known as Sweeping and
|
|||
|
Surfaces of Revolution. These methods use an outline or template curve
|
|||
|
and a backbone. The template is swept along the backbone creating the
|
|||
|
object surface (or rotated about a single axis to create a surface of
|
|||
|
revolution). This method may be used to create either curve surfaces or
|
|||
|
polygonal objects. For VR applications, the sweeping would most likely
|
|||
|
be performed during the object modeling (creation) phase, and the
|
|||
|
resulting polygonal object stored for real time use.
|
|||
|
|
|||
|
7.3.8. Texture Maps & Billboard Objects
|
|||
|
|
|||
|
As mentioned in the section on rendering, texture maps can be used to
|
|||
|
provide the appearance of more geometric complexity without the
|
|||
|
geometric calculations. Using flat polygonal objects that maintain an
|
|||
|
orientation towards the eye/camera (billboards) and multiple texture
|
|||
|
maps can extend this trick even further.
|
|||
|
|
|||
|
7.4. Lights
|
|||
|
|
|||
|
Lighting is a very important part of a virtual world (if it is visually
|
|||
|
rendered). Lights can be ambient (everywhere), or located. Located lights
|
|||
|
have position and may have orientation, color, intensity and a cone of
|
|||
|
illumination. The more complex the light source, the more computation
|
|||
|
is required to simulate its effect on objects.
|
|||
|
|
|||
|
7.5. Cameras
|
|||
|
|
|||
|
Cameras or viewpoints may be described in the World Database.
|
|||
|
Generally, each user has only one viewpoint at a time (ok, two closely
|
|||
|
spaced viewpoints for stereoscopic systems). However, it may be useful to
|
|||
|
define alternative cameras that can be used as needed. An example
|
|||
|
might be an overhead camera that shows a schematic map of the virtual
|
|||
|
world and the user's location within it (You Are Here.)
|
|||
|
|
|||
|
7.6. Scripts
|
|||
|
|
|||
|
A virtual world consisting only of static objects is only of mild interest.
|
|||
|
Many researchers and enthusiasts of VR have remarked that interaction
|
|||
|
is the key to a successful and interesting virtual world. This requires
|
|||
|
some means of defining the actions that objects take on their own and
|
|||
|
when the user (or other objects) interact with them. This i refer to
|
|||
|
generically as the World Scripting. I divide the scripts into three basic
|
|||
|
types: Motion Scripts, Trigger Scripts and Connection Scripts
|
|||
|
|
|||
|
Scripts may be textual or they might be actually compiled into the
|
|||
|
program structure. The use of visual programming languages for world
|
|||
|
design was pioneered by VPL Research with their Body Electric system.
|
|||
|
This Macintosh based language used 2d blocks on the screen to
|
|||
|
represent inputs, objects and functions. The programmer would connect
|
|||
|
the boxes to indicate data flow.
|
|||
|
|
|||
|
7.6.1. Motion Scripts
|
|||
|
|
|||
|
Motion scripts modify the position, orientation or other attributes of an
|
|||
|
object, light or camera based on the current system tick. A 'tick' is one
|
|||
|
advancement of the simulation clock. Generally, this is equivalent to a
|
|||
|
single frame of visual animation. (VR generally uses Discrete Simulation
|
|||
|
methods)
|
|||
|
|
|||
|
For simplicity and speed, only one motion script should be active for an
|
|||
|
object at any one instant. Motion scripting is a potentially powerful
|
|||
|
feature, depending on how complex we allow these scripts to become.
|
|||
|
Care must be exercised since the interpretation of these scripts will
|
|||
|
require time, which impacts the frame and delay rates.
|
|||
|
|
|||
|
Additionally, a script might be used to attach or detach an object from a
|
|||
|
hierarchy. For example, a script might attach the user to a CAR object
|
|||
|
when he wishes to drive around the virtual world. Alternatively, the user
|
|||
|
might 'pick up' or attach an object to himself.
|
|||
|
|
|||
|
7.6.2. Physical or Procedural Modeling and Simulation
|
|||
|
|
|||
|
A complex simulation could be used that models the interactions of the
|
|||
|
real physical world. This is sometimes referred to as Procedural
|
|||
|
Modeling. It can be a very complex and time consuming application. The
|
|||
|
mathematics required to solve the physical interaction equations can
|
|||
|
also be fairly complex. However, this method can provide a very realistic
|
|||
|
interaction mechanism.
|
|||
|
|
|||
|
7.6.3. Simple Animation
|
|||
|
|
|||
|
A simpler method of animation is to use simple formulas for the motion
|
|||
|
of objects. A very simple example would be "Rotate about Z axis once
|
|||
|
every 4 seconds". This might also be represented as "Rotate about Z 10
|
|||
|
radians each frame".
|
|||
|
|
|||
|
A slightly more advanced method of animation is to provide a 'path' for
|
|||
|
the object with controls on its speed at various points. These controls are
|
|||
|
sometimes referred to as "slow in-out". They provide a much more
|
|||
|
realistic motion than simple linear motion.
|
|||
|
|
|||
|
If the motion is fixed, some systems can precompute the motion and
|
|||
|
provide a 'channel' of data that is evaluated at each time instance. This
|
|||
|
may be a simple lookup table with exact values for each frame, or it may
|
|||
|
require some sort of simple interpolation.
|
|||
|
|
|||
|
7.6.4. Trigger Scripts
|
|||
|
|
|||
|
Trigger Scripts are invoked when some trigger event occurs, such as
|
|||
|
collision, proximity or selection. The VR system needs to evaluate the
|
|||
|
trigger parameters at each TICK. For proximity detectors, this may be a
|
|||
|
simple distance check from the object to the 3D eye or effector object
|
|||
|
(aka virtual human) Collision detection is a more involved process. It is
|
|||
|
desirable but may not be practical without off loading the rendering and
|
|||
|
some UI tasks from the main processor.
|
|||
|
|
|||
|
7.6.5. Connection Scripts
|
|||
|
|
|||
|
Connection scripts control the connection of input and output devices
|
|||
|
to various objects. For example a connection script may be used to
|
|||
|
connect a glove device to a virtual hand object. The glove movements and
|
|||
|
position information is used to control the position and actions of the
|
|||
|
hand object in the virtual world. Some systems build this function
|
|||
|
directly into the program. Other systems are designed such that the VR
|
|||
|
program is almost entirely a connection script.
|
|||
|
|
|||
|
7.7. Interaction Feedback
|
|||
|
|
|||
|
The user must be given some indication of interaction feedback when
|
|||
|
the virtual cursor selects or touches an object. Crude systems have only
|
|||
|
the visual feedback of seeing the cursor (virtual hand) penetrate an
|
|||
|
object. The user can then grasp or otherwise select the object. The
|
|||
|
selected object is then highlighted in some manner. Alternatively, an
|
|||
|
audio signal could be generated to indicate a collision. Some systems use
|
|||
|
simple touch feedback, such as a vibration in the joystick, to indicate
|
|||
|
collision, etc.
|
|||
|
|
|||
|
7.8. Graphical User Interface/Control Panels
|
|||
|
|
|||
|
A VR system often needs to have some sort of control panels available to
|
|||
|
the user. The world database may contain information on these panels
|
|||
|
and how they are integrated into the application. Alternatively, they may
|
|||
|
be a part of the program code.
|
|||
|
|
|||
|
There are several ways to create these panels. There could be 2D menus
|
|||
|
that surround a WoW display, or are overlaid onto the image. An
|
|||
|
alternative is to place control devices inside the virtual world. The
|
|||
|
simulation system must then note user interaction with these devices as
|
|||
|
providing control over the world.
|
|||
|
|
|||
|
One primary area of user control is control of the viewpoint (moving
|
|||
|
around within the virtual world). Some systems use the joystick or
|
|||
|
similar device to move. Others use gestures from a glove, such as
|
|||
|
pointing, to indicate a motion command.
|
|||
|
|
|||
|
The user interface to the VW might be restricted to direct interaction in
|
|||
|
the 3D world. However, this is extremely limiting and requires lots of 3D
|
|||
|
calculations. Thus it is desirable to have some form of 2D Graphical user
|
|||
|
interface to assist in controlling the virtual world. These 'control panels'
|
|||
|
of the would appear to occlude portions of the 3D world, or perhaps the
|
|||
|
3D world would appear as a window or viewport set in a 2D screen
|
|||
|
interface. The 2D interactions could also be represented as a flat panel
|
|||
|
floating in 3D space, with a 3D effector controlling them.
|
|||
|
|
|||
|
7.8.1. Two Dimensional Controls
|
|||
|
|
|||
|
There are four primary types of 2D controls and displays. (controls
|
|||
|
cause changes in the virtual world, displays show some measurement on
|
|||
|
the VW.) Buttons, Sliders, Gauges and Text. Buttons may be menu items
|
|||
|
with either icons or text identifiers. Sliders are used for more analog
|
|||
|
control over various attributes. A variation of a slider is the dial, but
|
|||
|
these are harder to implement as 2D controls. Gauges are graphical
|
|||
|
depiction's of the value of some attribute(s) of the world. Text may be
|
|||
|
used for both control and display. The user might enter text commands
|
|||
|
to some command parser. The system may use text displays to show the
|
|||
|
various attributes of the virtual world.
|
|||
|
|
|||
|
An additional type of 2D display might be a map or locator display. This
|
|||
|
would provide a point of reference for navigating the virtual world.
|
|||
|
|
|||
|
The VR system needs a definition for how the 2D cursor effects these
|
|||
|
areas. It may be desirable to have a notion of a 'current control' that is
|
|||
|
the focus of the activity (button pressed, etc.) for the 2D effector. Perhaps
|
|||
|
the arrow keys on the keyboard could be used to change the current
|
|||
|
control, instead of using the mouse (which might be part of the 3D
|
|||
|
effector at present).
|
|||
|
|
|||
|
7.8.2. Three Dimensional Controls
|
|||
|
|
|||
|
Some systems place the controls inside the virtual world. These are
|
|||
|
often implemented as a floating control panel object. This panel contains
|
|||
|
the usual 2D buttons, gauges, menu items, etc. perhaps with a 3D
|
|||
|
representation and interaction style.
|
|||
|
|
|||
|
There have also been some published articles on 3D control Widgets.
|
|||
|
These are interaction methods for directly controlling the 3D objects. One
|
|||
|
method implemented at Brown University attaches control handles to the
|
|||
|
objects. These handles can be grasped, moved, twisted, etc. to cause
|
|||
|
various effects on an object. For example, twisting one handle might
|
|||
|
rotate the object, while a 'rack' widget would provide a number of
|
|||
|
handles that can be used to deform the object by twisting its geometry.
|
|||
|
|
|||
|
7.9. Hardware Control & Connections
|
|||
|
|
|||
|
The world database may contain information on the hardware controls
|
|||
|
and how they are integrated into the application. Alternatively, they may
|
|||
|
be a part of the program code. Some VR systems put this information
|
|||
|
into a configuration file. I consider this extra file simply another part of
|
|||
|
the world database.
|
|||
|
|
|||
|
The hardware mapping section would define the input/output ports,
|
|||
|
data speeds, and other parameters for each device. It would also provide
|
|||
|
for the logical connection of that device to some part of the virtual world.
|
|||
|
For example a position tracker might be associated with the viewer's
|
|||
|
head or hand.
|
|||
|
|
|||
|
7.10. Room/Stage/Area Descriptions
|
|||
|
|
|||
|
If the system supports the division of the virtual world into different
|
|||
|
areas, the world database would need multiple scene descriptions. Each
|
|||
|
area description would give the names of objects in scene, stage
|
|||
|
description (i.e. size, backgrounds, lighting, etc.). There would also be
|
|||
|
some method of moving between the worlds, such as entering a doorway,
|
|||
|
etc., that would most likely be expressed in object scripts.
|
|||
|
|
|||
|
8. World Authoring versus Playback
|
|||
|
|
|||
|
A virtual world can be created, modified and experienced. Some VR
|
|||
|
systems may not distinguish between the creation and experiencing
|
|||
|
aspects. However, there is currently a much larger body of experience to
|
|||
|
draw upon for designing the world from the outside. This method may
|
|||
|
use techniques borrowed from architectural and other forms of Computer
|
|||
|
Aided Design (CAD) systems. Also the current technologies for immersive
|
|||
|
VR systems are fairly limiting in resolution, latency, etc. They are not
|
|||
|
nearly as well developed as those for more conventional computer
|
|||
|
graphics and interfaces.
|
|||
|
|
|||
|
For many VR systems, it makes a great deal of sense to have a
|
|||
|
Authoring mode and a Playback mode. The authoring mode may be a
|
|||
|
standard text editor and compiler system, or it may include 3D graphic
|
|||
|
and other tools. The development project I am most involved with
|
|||
|
(CompuServe's Group 3) uses the split system and calls them the World
|
|||
|
Editor and World Player.
|
|||
|
|
|||
|
An immersive authoring ability may also be desirable for some
|
|||
|
applications and some users. For example, an architect might have the
|
|||
|
ability to move walls, etc. when immersed, while the clients with him,
|
|||
|
who are not as familiar with the system, are limited to player status. That
|
|||
|
way they can't accidentally rearrange the house by leaning on a wall.
|
|||
|
|
|||
|
9. For More VR Information
|
|||
|
|
|||
|
The following information is provided to point the interested reader to
|
|||
|
more information on virtual reality. It is not a complete listing of all
|
|||
|
sources. I would appreciate hearing about other books, groups, on-line
|
|||
|
services, etc. for inclusion in future versions of this (and other)
|
|||
|
documents.
|
|||
|
|
|||
|
9.1. On-line Services & BBS
|
|||
|
|
|||
|
There are many computer bulletin boards and on-line services that
|
|||
|
support VR discussion and development. I am personally involved on
|
|||
|
several. My email address is given at the beginning of this paper.
|
|||
|
|
|||
|
I mostly use the CompuServe GraphDev Forum (Go GRAPHDEV). This
|
|||
|
forum has two message sections and two file libraries dedicate to VR (i.e.
|
|||
|
VR Concepts and VR Tech). It is the home for the Group 3 VR
|
|||
|
development project, of which I am the Project Leader. The libraries
|
|||
|
contain a number of VR programs, demos, concept papers, and an echo
|
|||
|
of the sci.virtual-worlds news group. For information on CompuServe,
|
|||
|
call (800)848-8990 or (614) 457-8650
|
|||
|
|
|||
|
The WELL (Whole Earth 'Lectronic Link) has a VR discussion area (GO
|
|||
|
VR). For information on joining The WELL, call(415) 332-4335 or modem
|
|||
|
(415)332-6106. You can also telnet into the well as 'well.sf.ca.us' and
|
|||
|
sign on as newuser.
|
|||
|
|
|||
|
The Byte Information Exchange (BIX) has a conference on VR: join
|
|||
|
virtual.world. To join BIX, call 1-800-695-4882 (2400 Baud, No Parity, 8
|
|||
|
data, 1 stop bit)
|
|||
|
|
|||
|
America On-line reportedly also has a VR section. "VIRTUS" - virtual
|
|||
|
reality conference hosted by Virtues Corp. (info on joining AOL??)
|
|||
|
|
|||
|
GENIE has an echo of sci.virtual-worlds. Contact Joel Anderson
|
|||
|
(joela@joela.apertus.com, GEnie: J.ANDERSON71) or Randall Severy -
|
|||
|
(GEnie: RSEVERY, CompuServe: 76166,3477, Internet:
|
|||
|
ge!severy@uunet.uu.net) (Info on joining GENIE???)
|
|||
|
|
|||
|
The Diaspar VR Network is a BBS dedicated to VR. David Mitchell is
|
|||
|
leading the VOID project which seeks to create low cost public access
|
|||
|
distributed VR applications. Dieaspar includes a number of 'VNET' or
|
|||
|
virtual BBS subsystems that are run by other individuals. Sense8 has
|
|||
|
one VNET on Diaspar that is used for their customer support. Diaspar
|
|||
|
can be reached at (714) 831-1776 (voice), 9600 Baud: 714-376-1234,
|
|||
|
1200 Baud: 714-376-1200. Diaspar is also available from Internet sites
|
|||
|
via Telnet as diaspar.com (192.215.11.1). On first login use the name
|
|||
|
"Diaspar" (be sure to use capital D and lowercase iaspar.) This gets you
|
|||
|
to the BBS login area and you can get set up with your username and
|
|||
|
password.
|
|||
|
|
|||
|
The AMULET BBS (Santa Monica, CA). Data access: (310)453-7705.
|
|||
|
|
|||
|
The CyberBBS (San Francisco, Bay Area CA), (510)527-9012
|
|||
|
|
|||
|
One that I have heard of but not successfully connected to is
|
|||
|
SENSE/NET (801) 364-6227 (Salt Lake City, Utah)
|
|||
|
|
|||
|
9.2. Internet NewsGroups
|
|||
|
|
|||
|
The Internet has newsgroups that are also known as the Usenet News.
|
|||
|
Some sysetms provide usenet readers that keep all usenet news in one
|
|||
|
place. Others require that you subscribe to those you wish to read and
|
|||
|
the news will be delivered as email. Subscribing requires sending an
|
|||
|
email message to either an individual or an automated list-server service.
|
|||
|
The list-servers take read the body of the message for special commands.
|
|||
|
The one you want is "subscibe <listname> <your full name>". Replacing
|
|||
|
<listname> with the name of the newslist you want and <your full name>
|
|||
|
with your *real* name, not your login name.
|
|||
|
|
|||
|
Sci.virutal-worlds (aka: virtu-l): send a mail message to
|
|||
|
listserv@uiucvmd.bitnet
|
|||
|
with a body of
|
|||
|
subscribe virtu-l <full_name>
|
|||
|
Moderator: gbnewby@alexia.lis.uiuc.edu.(Greg Newby)
|
|||
|
Note: this list is also available in 'digest' form. This method combines a
|
|||
|
full day's messages into one message. To change to the digest form, send
|
|||
|
a message to the above list server with a body of:
|
|||
|
set virtu-l digest
|
|||
|
|
|||
|
Sci.virtual-worlds.apps (aka: vrapp-l)
|
|||
|
listserv@uiucvmd.bitnet
|
|||
|
with a body of
|
|||
|
subscribe vrapp-l <full_name>
|
|||
|
|
|||
|
Glove-list: Subscribe by sending an email message to
|
|||
|
listserv@win30.nas.nasa.gov
|
|||
|
with a body of
|
|||
|
subscribe glove-list <your full name, not login id>
|
|||
|
Post to: glove-list@win30.nas.nasa.gov
|
|||
|
Moderator: jet@win30.nas.nasa.gov
|
|||
|
|
|||
|
Head-Trackers mailing list: Subscribe by sending e-mail to
|
|||
|
trackers-request@qucis.queensu.ca
|
|||
|
with an informal request (not handled by automated system)
|
|||
|
post to: trackers@qucis.queensu.ca
|
|||
|
|
|||
|
REND386 users list: Subscribe by sending an email message to
|
|||
|
rend386-request@sunee.uwaterloo.ca
|
|||
|
with a body of
|
|||
|
subscribe your full name
|
|||
|
Post to: rend386@sunee.uwaterloo.ca
|
|||
|
Moderated by the creators of REND386 - Dave Stampe and Bernie Roehl
|
|||
|
|
|||
|
9.3. Internet FTP Sites
|
|||
|
|
|||
|
milton.uwashingon.edu (128.95.136.1) (home of Sci.Virtual-Worlds
|
|||
|
Frequently Asked Questions, which is badly out of date as of 3/93)
|
|||
|
ftp.u.washington.edu
|
|||
|
|
|||
|
sunee.uwaterloo.ca (129.97.50.50) (home of REND386 (freeware VR
|
|||
|
library/package)
|
|||
|
|
|||
|
karazm.math.uh.edu (129.7.128.1) (purported to be home of the power
|
|||
|
glove list, but archives here are real old)
|
|||
|
|
|||
|
ftp.apple.com (130.43.2.3) (sites list, Macintosh VR, CAD projects info)
|
|||
|
|
|||
|
src.doc.ic.ac.uk (146.169.2.1) (usenet archive /usenet...)
|
|||
|
|
|||
|
taurus.cs.nps.navy.mil: (Info on DIS and NPSNET, including C library)
|
|||
|
|
|||
|
avalon.chinalake.navy.mil (129.131.31.11) (lots of geometry files)
|
|||
|
|
|||
|
wuarchive.wustl.edu (128.252.135.4) mirror of milton VR, usenet archive
|
|||
|
|
|||
|
sunsite.unc.edu (152.2.22.81) /pub/academic/computer-
|
|||
|
science/virtual-reality (virtual reality demos, iris info, glasses, mirrors
|
|||
|
some of milton.u.washington.edu, uforce info )
|
|||
|
|
|||
|
9.4. Local User Groups, USA
|
|||
|
|
|||
|
There are a lot of VR local user groups and 'Special Interest Groups'
|
|||
|
(SIGs) popping up around the world. Some samples are:
|
|||
|
|
|||
|
Los Angeles VRSIG: contact Virtual Ventures/Dave Blackburn, 1300
|
|||
|
The Strand, Suite A, Manhattan Beach, CA 90266 Voice:(310) 545-0369
|
|||
|
email: breeder@well.sf.ca.us (I am a member of this group, which meets
|
|||
|
at the Electronic Cafe International on 18th Street, Santa Monica, CA)
|
|||
|
|
|||
|
Chicago VRSIG: c/o Nina Adams, 3952 Western Ave, Western Springs,
|
|||
|
Chicago, IL 60558, Voice: (708)246-0766 email:
|
|||
|
71052.1373@compuserve.com
|
|||
|
|
|||
|
San Francisco VR Group, Contact Linda Jacobson, Verge (Virtual
|
|||
|
Reality Group), 16050 Kings Creek Rd., Boulder Creek, CA 95006;
|
|||
|
Voice: 415-826-4716. email:lindaj@well.sf.ca.us
|
|||
|
|
|||
|
Houston TX: CyberSociety, 3336 Richmond Ave. #226, Houston, TX
|
|||
|
77098-3022, Voice: 713/520-5020, FAX: 713/520-7395, NETt:
|
|||
|
specdyn@well.sf.ca.us
|
|||
|
|
|||
|
Stoughton WI: Andrew's VEE-AR Club, c/o Andrew or Tom Hayward,
|
|||
|
624 Jackson Street, Stoughton, WI 53589
|
|||
|
|
|||
|
Boston Computer Society VR Group, c/o Paul Matthews - Director,
|
|||
|
Building 1400, One Kendal Square, Cambridge, MA 02139, Voice: 508
|
|||
|
921 6846 24hr, Voice: 617 252 0600, email:pgm@world.std.com
|
|||
|
|
|||
|
Louisville, Kentucky: VRSIG, c/o Andrew Prell, PO Box 43003,
|
|||
|
Louisville, KY 40253, Voice:502 495-7186, email:
|
|||
|
andrewp@well.sf.ca.us
|
|||
|
|
|||
|
9.5. Local User Groups, Other Coutntries:
|
|||
|
|
|||
|
Belgium: Genootschap voor Virtuele Realiteit (Society for Virtual
|
|||
|
Reality), Philippe Van Nedervelde, Lichtaartsesteenweg 55, B-2275
|
|||
|
Poederlee - Lille, Belgium
|
|||
|
|
|||
|
Canada: Univ. of Waterloo VR Group, c/o Rick Kazman (or c/o Bernie
|
|||
|
Roehl), Dept of Computer Science, Univ. of Waterloo, Waterloo, Ontario,
|
|||
|
N2L 3G1, Voice: (519) 888-4870 (R.Kazman), (519) 885-1211 x2607
|
|||
|
(B.Roehl), email: broehl@sunee.uwaterloo.ca
|
|||
|
|
|||
|
Toronto Canada: Toronto VRSIG, c/o Caius Tenche, (416) 242-3119,
|
|||
|
email: caius.tenche@canrem.com
|
|||
|
|
|||
|
England: VR User Group, Kim Baukham, 2 Beacon Road , London,
|
|||
|
SE13 6EH, England
|
|||
|
|
|||
|
France: Les Virtualistes, 90 Avenue de Paris, 92320 Chatillon, France,
|
|||
|
Voice: 1/47 35 65 48, FAX: 1/47 35 85 88
|
|||
|
|
|||
|
Germany: Fraunhofer Institute for Computer Graphics & German
|
|||
|
Working Group on Virtual Reality (Related to Technical University in
|
|||
|
Darmstadt, and to the Computer Graphics Centre (ZGDV) in Darmstadt),
|
|||
|
Mr. Wolfgang Felger, Wilhelminenstr. 7, W-6100 Darmstadt, F.R.G.,
|
|||
|
Voice ++49-6151-155122, Fax.: ++49-6151-155199, email:
|
|||
|
felger@igd.fhg.de, email list: vr@igd.fhg.de
|
|||
|
|
|||
|
South Africa VRSIG c/o Roger Layton, Chairman, PO Box 72267,
|
|||
|
PARKVIEW, 2122, South Africa, TEL: +27-11-788-5938, FAX: +27-11-
|
|||
|
442-5529, email: 74660.2154@compuserve.com
|
|||
|
|
|||
|
9.6. VRASP
|
|||
|
|
|||
|
A group that straddles the line between an on-line group, a local user
|
|||
|
group and a newsletter is the Virtual Reality Alliance for Students and
|
|||
|
Professionals (VRASP). This group is headquartered in New Jersey, but
|
|||
|
there are members around the world. Local collections of VRASP folks are
|
|||
|
known as 'Cells'. The group operates their own BBS and is active on
|
|||
|
many of the on-line services. They have an excellent newsletter,
|
|||
|
PixElation, that offers both technical articles and humorous reviews of
|
|||
|
various events. Subscriptions to PixElation is $30/yr, $20/yr for
|
|||
|
sustaining (active) members of VRASP. ($8/yr more for international) For
|
|||
|
more information contact:
|
|||
|
|
|||
|
VRASP, c/o Karin August, PO BOX 4139, Highland Park, NJ 08904-
|
|||
|
4139, email:71033.702@compuserve.com
|
|||
|
|
|||
|
9.7. Journals & Newsletters
|
|||
|
|
|||
|
PCVR Magazine. For the home-brew enthusiast. includes Code Disks,
|
|||
|
Editor: Joseph Gradecki, 1706 Sherman Hill Road, Unit A, Laramie, WY.
|
|||
|
82060, VOICE/FAX: (307) 742-7675, email: gradecki@rodeo.uwyo.edu,
|
|||
|
email: 70711.257@compuserve.com
|
|||
|
|
|||
|
CyberEdge Journal. Excellent professional newsletter, Ben Delaney,
|
|||
|
Editor, #1 Gate Six Road, Suite G, Sausalito, CA 94965, Voice: 415 331-
|
|||
|
EDGE (3343), FAX: 415 331-3643, email: 76217.3074@compuserve.com,
|
|||
|
email:bdel@well.sf.ca.us., ISSN# 1061-3099
|
|||
|
|
|||
|
Presence: Teleoperators & Virtual Environments. Professional Tech
|
|||
|
Papers and Journal., MIT Press Journals, 55 Hayward St, Cambridge
|
|||
|
MA 02142, (800) 356-0343, (617) 628-8569, (617) 253-2889 (9-5 EST),
|
|||
|
Fax: (617) 258-6779, email: hiscox@mitvma.mit.edu, ISSN 1054-7460
|
|||
|
|
|||
|
Virtual Reality Report, Meckler Publishing, Sandra Helsel, Editor in
|
|||
|
Chief, Meckler Corporation, 11 Ferry Lane, Westport CT 06880, Voice:
|
|||
|
(203)226-6967
|
|||
|
|
|||
|
VR Monitor: Frank Dunn, Editor, Matrix Information Services, 18560
|
|||
|
Bungalow Drive, Lathrup Village, MI 48076, Voice: (313) 559-1526,
|
|||
|
email: matrix@well.sf.ca.us, email: 70117.2546@compuserve.com
|
|||
|
|
|||
|
Virtural Reality News, Brian Lareau, Editor, Magellan Marketing Inc.
|
|||
|
32969 Hamilton Courts Suite 215, Farmington Hills Mich. 48334 313-
|
|||
|
488-0330, email: larryv@msen,com
|
|||
|
|
|||
|
9.8. Professional Societies
|
|||
|
|
|||
|
There are two major professional computer associations that publish
|
|||
|
respected journals related to Virtual Reality.
|
|||
|
|
|||
|
The Association for Computing Machinery (ACM) has a number of
|
|||
|
special interest groups whose journals and newsletters often have VR
|
|||
|
related articles. SIGGRAPH is the SIG for Computer Graphics. Their
|
|||
|
national convention is The Event for Computer Graphics each year. The
|
|||
|
'93 conference will be in Anahiem CA, August 1-6. SIGCHI is the SIG for
|
|||
|
Computers and Human Interaction. This group has published a lot of
|
|||
|
research on new methods of interacting with computers, including a
|
|||
|
number of new VR applications. Contact info:
|
|||
|
|
|||
|
Association for Computing Machinery, 1515 Broadway, 17th Floor,
|
|||
|
New York, NY 10036, (212) 869-7440, email:
|
|||
|
info.Membership@siggraph.org (for membership info), email:
|
|||
|
info.Siggraph93@siggraph.org (for conference info)
|
|||
|
|
|||
|
The Institute of Electrical and Electronics Engineers (IEEE) has a
|
|||
|
computer graphics SIG that publishes an execellent journal called "IEEE
|
|||
|
Computer Graphics and Applications". Subscriptions are $26/year for
|
|||
|
society members, $47 for ACM or other society members, (six issues).
|
|||
|
(The Jan 1994 issue will have a concentration on Virtual Reality!) The
|
|||
|
IEEE also publishes a large number of books and conference
|
|||
|
proceedings. Contact info:
|
|||
|
|
|||
|
IEEE Computer Society, PO Box 3014, Los Alamitos, CA 90720-9804,
|
|||
|
(714) 821-8380, (800) 272-6657 (Publication orders), email:
|
|||
|
membership@compmail.com
|
|||
|
|
|||
|
9.9. VR Reference Books
|
|||
|
|
|||
|
There are a number of good reference works on VR and Computer
|
|||
|
Animation currently in print. There is also a whole slew of VR specific
|
|||
|
books due out in the Spring of '93. Most of these are aimed at the less
|
|||
|
technical reader, but some will include lots of good technical details.
|
|||
|
Many will include executable programs on disk, some with source code.
|
|||
|
|
|||
|
"Silicon Mirage: The Art and Science of Virtual Reality", Steve
|
|||
|
Aukstakalnis & David Blatner, Peach Pit Press 1992,ISBN 0-938151-82-
|
|||
|
7
|
|||
|
|
|||
|
"Virtual Reality", Howard Rheingold, Summit Books, 1991, ISBN 0-671-
|
|||
|
69363-8
|
|||
|
|
|||
|
"Virtual Reality Playhouse", Nicholas Lavroff, Waite Group Press, 1992
|
|||
|
ISBN 1-878739-19-0 (includes PC disk, apps are at most WoW
|
|||
|
interactive animations, but the only VR book+disk out right now)
|
|||
|
|
|||
|
"Cyberspace - First Steps", MIT Press, 1992 (collection of essays on VR),
|
|||
|
ISBN 0-262-52177-6
|
|||
|
|
|||
|
"Artificial Reality II", Myron Krueger, Addison-Wesley, 1991, ISBN: 0-201-
|
|||
|
52260-8
|
|||
|
|
|||
|
"Computers as Theatre", Brenda Laurel, Addison-Wesley, 1991
|
|||
|
|
|||
|
"Virtual Reality: Theory, Practice, and Promise", Sandra Heisle & Judith
|
|||
|
Roth, Meckler Corp, 1990
|
|||
|
|
|||
|
"Virtual Reality: Through the New Looking Glass", Ken Pimentel & Kevin
|
|||
|
Teixeira, Intel/Windcrest/McGraw-Hill, 1993 ISBN 0-8306-4064-9
|
|||
|
"Virtual Reality Creations", Dave Stampe Bernie Roehl & John Eagan,
|
|||
|
Waite Group Press, 1993 ISBN 1-878739-39-5 (Due out June/July '93,
|
|||
|
includes Rend386 on PC disk)
|
|||
|
|
|||
|
"Adventures in Virtual Reality", Tom Hayward, Que Books, 1993, ISBN 1-
|
|||
|
56529-208-1 (includes PC disk with VREAM world and other demos)
|
|||
|
|
|||
|
"International Directory of VR R&D", Meckler (to be published may 1993)
|
|||
|
|
|||
|
9.10. Computer Graphics Books
|
|||
|
|
|||
|
"Computer Graphics (Principles and Applications)", Foley, Van Dam,
|
|||
|
Feiner & Hughes, 2nd Edition, Addison Wesley, 1990 ISBN 0-201-12110-
|
|||
|
7 (This is The Bible of Computer Graphics. The classic text book.)
|
|||
|
|
|||
|
"Visualization Graphics in C", Lee Adams, Windcrest/McGraw-Hill, 1991,
|
|||
|
ISBN 0-8306-3487-8
|
|||
|
|
|||
|
"Fundamentals of Three Dimensional Computer Graphics", Alan Watt,
|
|||
|
Addison Wesley, 1989, ISBN 0-201-15442-0
|
|||
|
|
|||
|
"New Trends in Animation and Visualization", Thalmann & Thalmann,
|
|||
|
John Wiley & Sons, 1991, ISBN 0-471-93020-2
|
|||
|
|
|||
|
"Physically-Based Modeling for Computer Graphics", Ronen Barzel,
|
|||
|
Academic Press, 1992, ISBN 0-12-079880-8
|
|||
|
|
|||
|
"MAKING THEM MOVE; Mechanics, Control and Animation of Articulated
|
|||
|
Figures", (Book and Video Package) Edited by Norman I. Badler (U
|
|||
|
Pennsylvania), Brian A. Barsky (U CalBerkeley) and David Zeltzer (Media
|
|||
|
Lab, MIT),Morgan Kaufmann Publishers, ISBN Book/Video Package: 1-
|
|||
|
55860-155-4 Book only: 1-55860-106-6 Tape only: 1-55860-154-6
|
|||
|
|
|||
|
9.11. Related Books
|
|||
|
|
|||
|
The following books, while not directly about VR technology, can
|
|||
|
provide some background ideas and concepts for VR.
|
|||
|
ECCENTRIC SPACES, by Robert Harbison. Boston: David R. Godine,
|
|||
|
1988. $10.95, Subtitled, "A voyage through real and imagined worlds."
|
|||
|
|
|||
|
"The Design and Analysis of Spatial Data Structures", Haman Samet,
|
|||
|
Addison Wesley. 1990, ISBN: 0-201-50255-0
|
|||
|
|
|||
|
"Applications of Spatial data Structures", Hanan Samet, 1990, ISBN: 0-
|
|||
|
201-50300-X
|
|||
|
|
|||
|
"The Visual Display of Quantitative Information", Edward Tufte, Graphic
|
|||
|
Press, 1983
|
|||
|
|
|||
|
"Envisioning Information", Edward Tufte, Graphic Press 1990
|
|||
|
|
|||
|
"Virtual Worlds, A Journey in Hype and Hyperreality", by Benjamin
|
|||
|
Woolley, published by Blackwell, Oxford, 1992.
|
|||
|
|
|||
|
9.12. VR Research Labs & Academia
|
|||
|
|
|||
|
(partially from the Milton.U.Washington.EDU FAQ area, which lists lots
|
|||
|
of schools. However, most of the postings there are from 1990 or 1991
|
|||
|
and I know some are no longer valid contact)
|
|||
|
|
|||
|
CAD Institute, 4100 E. Broadway, Suite 180, Phoenix, AZ 85040, (800)
|
|||
|
658-5744, Dean: John Morrison 76307.1552@compuserve.com
|
|||
|
|
|||
|
HITL (Human Interface Technology Laboratory), University of
|
|||
|
Washington, FJ-15, Seattle, WA 98195, (206) 543-5075, Director: Dr.
|
|||
|
Thomas A. Furness III
|
|||
|
|
|||
|
Visual Systems Laboratory, Institute for Simulation and Training
|
|||
|
Laboratory, University of Central Florida, 12424 Research Parkway,
|
|||
|
Suite 300, Orlando, FL 32826, Director: Dr. Michael Moshell
|
|||
|
|
|||
|
UNC Laboratory, Univerisity of North Carolina, Chapel Hill, Computer
|
|||
|
Science Department, Chapel Hill, NC 27599-3175, Director: Fredrick
|
|||
|
Brooks
|
|||
|
|
|||
|
US Navy - Cyberview, David Sarnoff Research Center, Mark Long,
|
|||
|
CN5300, Princeton NJ 08543-5300
|
|||
|
|
|||
|
Naval Postgraduate School, Graphics and Video Lab, Department of
|
|||
|
Computer Science, Naval Postgraduate School, Monterey, CA 93943-
|
|||
|
5100, Contacts: Dave Pratt, pratt@cs.nps.navy.mil, Prof. Mike Zyda,
|
|||
|
zyda@trouble.cs.navy.mil
|
|||
|
|
|||
|
Computer Graphics Laboratory, University of Alberta, Edmonton,
|
|||
|
Canada, Mark Green, Associate Professor (mark@cs.ualberta.ca) (403)
|
|||
|
492-4584
|
|||
|
|
|||
|
National Center for Supercomputing Applications
|
|||
|
(NCSA) at the University of Illinois at Urbana-Champaign. Contact:
|
|||
|
Gregory B. Newby, Assistant Professor, Graduate School of Library and
|
|||
|
Information Science. Room 417 DKH, 1407 W. Gregory Drive, Urbana,
|
|||
|
IL, 61801. gbnewby@alexia.lis.uiuc.edu
|
|||
|
|
|||
|
Networked Virtual Art Museum, Studio for Creative Inquiery, Carnigie
|
|||
|
Mellon University, Pittsburgh PA 15213, Carl Loeffler, (412) 268 3452,
|
|||
|
cel+@andrew.cmu.edu
|
|||
|
|
|||
|
10. Companies Involved with Virtual Reality
|
|||
|
|
|||
|
Companies involved with or producing VR products. The following is a
|
|||
|
composite of several lists i have found on Internet and CompuServe. It is
|
|||
|
by no way an exhaustive list. There are commercial companies that sell
|
|||
|
such lists (and more info). Some of these are included in the list below.
|
|||
|
|
|||
|
1-900-VIRTUAL (yes a 1-900 number for VR) cost $1.25/minute
|
|||
|
|
|||
|
3D Imagetek , 4525-B San Fernando Rd., Glendale, CA 91204, Phone:
|
|||
|
(818) 507-1269 Fax: (818) 507-8537, Helmet Mounted Displays (HMDs)
|
|||
|
|
|||
|
3*DTV Corporation, P.O. Box Q, San Francisco, CA 94913-4316, Voice
|
|||
|
(415) 479-3516, Fax 415 479 3316 (LCD shutter glasses, other
|
|||
|
homebrew products)
|
|||
|
|
|||
|
Advanced Gravis Computer Technology Ltd. 7400 MacPherson Ave. #111,
|
|||
|
Burnaby, B.C. V5J 5B6 Canada. 604-434-7274. MouseStick (optical
|
|||
|
joystick
|
|||
|
for AT bus card) , 3D Sound Card.
|
|||
|
|
|||
|
Ascension Technology Corporation. P.O. Box 527, Burlington, VT 05402.
|
|||
|
802-
|
|||
|
655-7879. Ascension Bird (6D magnetic tracker)
|
|||
|
|
|||
|
Autodesk, Inc. 2320 Marinship Way, Sausalito, CA 94965. (800) 525-
|
|||
|
2763 Cyberspace Developers Kit
|
|||
|
|
|||
|
CAE Electronics Ltd. C.P. 1800 Saint-Laurent, Quebec, H4L 4X4
|
|||
|
Canada. 514-341-6780. Head-mount displays.
|
|||
|
|
|||
|
CiS. 285 Littleton Rd., Ste. 3, Westford, MA 01886. 603-894-5999, 508
|
|||
|
692-2600 (fax). Geometry Ball Jr. (6D joystick).
|
|||
|
|
|||
|
Clarity, Nelson Lane, Garrison, NY 10524, Phone: (914) 424-4071 Fax:
|
|||
|
(914) 424-3467,Auditory display products
|
|||
|
|
|||
|
Covox, Inc. 675 Conger Street, Eugene, Oregon 97402, Phone: (503)
|
|||
|
342-1271 Fax: (503) 342-1283, "Voicemaster Key System" - PC voice
|
|||
|
interface $150 and other sound related products
|
|||
|
|
|||
|
Crystal River Engineering. 12350 Wards Ferry Rd., Groveland, CA 95321.
|
|||
|
209-962-6382. Convolvotron (4 channel 3D audio card for PC).
|
|||
|
|
|||
|
Dimension International, Zephyr One Calleva Park, Aldermaston,
|
|||
|
Berkshire RG7 4QZ , Phone: 07 34 810 077 Fax: 816 940, "Superscape"
|
|||
|
PC-based VR, uses 34020 graphics card to speed things up.
|
|||
|
|
|||
|
Dimension Technologies, Inc., 176 Anderson Avenue, Rochester, NY
|
|||
|
14607, vox: 716-442-7450, fax: 716-442-7589, DTI 100M, projection
|
|||
|
video stereoviewing system.
|
|||
|
|
|||
|
Division Ltd. Quarry Rd., Chipping Sodbury, Bristol B517 6AX England.
|
|||
|
44-0454-324527. 80860-based VR. "Vision VR" hi-end system with
|
|||
|
multiple 80860s. PC-based, lo-end system with one 80860 and one
|
|||
|
Sharp HSSP per eye.
|
|||
|
|
|||
|
Exos 8. Blanchard Road, Burlington, MA 01803. 617229-2075. Hand-
|
|||
|
worn interface devices.
|
|||
|
|
|||
|
Fake Space Labs. 935 Hamilton Ave., Menlo Park, CA 94025. 415-688-
|
|||
|
1940. BOOM (stereo viewer on articulated arm).
|
|||
|
|
|||
|
Focal Point Audio 1402 Pine Ave. Suite 127, Niagara Falls, NY 14301.
|
|||
|
415-963-9188. 3D audio boards for Mac and PC.
|
|||
|
|
|||
|
Global Devices, 6630 Arabian Circle, Granite Bay CA 95661, (915)791-
|
|||
|
2558, fax:915-791-4358. 6D controller & navigator - joystick/ball
|
|||
|
devices.
|
|||
|
|
|||
|
Gyration, Inc. 12930 Saratoga Ave., Bldg. C, Saratoga, CA 95070. 408-
|
|||
|
255-3016. GyroPoint (optically sensed gyroscopic sensors).
|
|||
|
|
|||
|
Haitex Resources, Inc., Charleston, South Carolina, 803-881-7518,
|
|||
|
Haitex X-Specs 3D for the Amiga line. (glasses should work with PC
|
|||
|
circuit)
|
|||
|
|
|||
|
Horizon Entertainment, P.O. Box 14020, St. Louis MO 63178-4020,
|
|||
|
(800) ILLUSION (455-8746), Virtuality Entertainment Games
|
|||
|
|
|||
|
Leep Systems, 241 Crescent St., Waltham, MA 02154,, Phone: (617) 647-
|
|||
|
1395 Fax: (617) 899-9602"Cyberface" HMDs, optics for HMDs.
|
|||
|
|
|||
|
Logitech Inc. 6505 Kaiser Drive, Fremont, CA 94555. 415-795-8500. (6D
|
|||
|
mouse and head tracker).
|
|||
|
|
|||
|
Media Magic, Phone: (415) 662-2426, P.O. Box 507 Nicasio, CA 94946,
|
|||
|
Superb catalog of books and videos on VR, Chaos, Fractals, etc.
|
|||
|
|
|||
|
Mira Imaging, Inc. , 2257 South 1100 East, Suite 1A, Salt Lake City,
|
|||
|
Utah 84106, (800) 950-6472, Phone: (801) 466-4641 Fax: (801) 466-
|
|||
|
4699"Hyperspace" - 3D digitizing and modeling software
|
|||
|
|
|||
|
Myron Krueger, Artificial Reality, 55 Edith, Vernon, CA 06066, Phone:
|
|||
|
(203) 871-1375,Custom-designed virtual world environments
|
|||
|
|
|||
|
Pasha Publication, P.O. Box 9188, Arlington, VA 22219, Voice 800-424-
|
|||
|
2908, VIRTUAL REALITY HANDBOOK: Products, Services and Resources
|
|||
|
|
|||
|
The University of Pensylvania,Center for Technology Transfer, 3700
|
|||
|
Market St., Suite 300, Philadelphia, PA 19104, Phone: (215) 898-9585
|
|||
|
Fax: (215) 898-9519, "Jack" - full body sensor positioning system
|
|||
|
|
|||
|
Polhelmus, Inc. 1 Hercules Drive, P.O. Box560, Colchester, VT 05446.
|
|||
|
802-655-3159. Polhemus (3Space 6D magnetic tracker).
|
|||
|
|
|||
|
Pop-Optix Labs. 241 Crescent Street, Waltham, MA 02154. 617-647-
|
|||
|
1395. Specialized optics for headmount displays.
|
|||
|
|
|||
|
Reel-3D Enterprises, Inc, PO BOX 2368, Culver City CA 90231, (310)
|
|||
|
837-2368, Toshiba LCD Shutter glasses
|
|||
|
|
|||
|
Real World Graphics, Phone: 0992 554 442 Fax: 554 827, 5 Bluecoats
|
|||
|
Ave., Hertford SG14 1PB. 80860-based VR systems. "SuperReality" with
|
|||
|
multiple 80860s and texturing ASICs on VME cards. Lo-end "Reality PC"
|
|||
|
has a four-processor PC card with stereo framebuffer. Specialising in
|
|||
|
flight simulation.
|
|||
|
|
|||
|
Reflection Technology, 230 Second Ave., Waltham, MA 02154, Phone:
|
|||
|
(617) 890-5905 Fax: (617) 890-5918, "Private Eye" LED-based
|
|||
|
monochrome HMD.
|
|||
|
|
|||
|
RPI Advanced Technology Group, POB 14607 San Francisco, CA
|
|||
|
94114, Phone: (415) 777-3226, "The Personal Simulator" and "HMSI"
|
|||
|
(Head Mounted Sensory Interface device)
|
|||
|
|
|||
|
Sense8 Corporation. 1001 Bridgeway, P.O. Box 477, Sausalito CA 94965.
|
|||
|
415-331-6318, 415-331-9148 (fax). VR software and systems (for PC,
|
|||
|
Sun & Silicon Graphics) .
|
|||
|
|
|||
|
SimGraphics Engineering Corp. 1137 Huntington Drive, South
|
|||
|
Pasadena, CA 91030. 213-255-0900. Systems configuration house/OEM
|
|||
|
VR equipment supplier.
|
|||
|
|
|||
|
Shooting Star Technology ,1921 Holdom Ave., Burnaby, BC, V5B 3W4,
|
|||
|
Phone: (604) 298-8574 Fax: (604) 298-8580,Mechanical position sensor
|
|||
|
(approx $1499)
|
|||
|
|
|||
|
SophisTech Research, 6936 Seaborn Street, Lakewood, CA 90713-2832,
|
|||
|
(310) 421-7295, (800) 4VR SOURCE (orders only), Virtual Reality
|
|||
|
Sourcebook
|
|||
|
|
|||
|
Spaceball Technologies, Inc. 2063 Landings, Sunnyvale, CA 94043. 408-
|
|||
|
745- 0330. Spaceball (6D joystick).
|
|||
|
Spectrum Dynamics, 3336 Richmond Ave. #226, Houston, TX 77098-
|
|||
|
3022, Voice: 713/520-5020, Fax : 713/520-7395, email:
|
|||
|
specdyn@well.sf.ca.us, VR equipment distributers, VAR, etc
|
|||
|
|
|||
|
StereoGraphics. 21 71-H East Francisco Blvd., San Rafael, CA 94901.
|
|||
|
415- 459-4500. Stereoscopic displays & LCD Shutter Systems.
|
|||
|
|
|||
|
Straylight. 150 Mount Bethel Road, Warren, NJ 07050. 908-580-0086.
|
|||
|
VR authoring systems.
|
|||
|
|
|||
|
Subjective Technologies. 1106 Second Street, Suite 103, Encinitas, CA
|
|||
|
92024. 619-942-0928. Tools for controlling virtual environments.
|
|||
|
|
|||
|
TiNi Alloy Co. 1144 65th Street, Unit A, Oakland, CA 94608. 510-658-
|
|||
|
3172. Tactile feedback systems.
|
|||
|
|
|||
|
Virtual Research 1313 Socorro Ave., Sunnyvale, CA 94089. 408-739-
|
|||
|
7114. Flight Helmet (head mounted display).
|
|||
|
|
|||
|
Virtual Technologies. P.O. Box 5984, Stanford, CA 94309. 415-599-2331.
|
|||
|
Instrumented gloves and clothing.
|
|||
|
|
|||
|
Vision Research Graphics, 99 Madbury Road, Durham, NH 03824, vox:
|
|||
|
603-868-2270, fax: 603-868-1352, Resellers of Haitex LCD glasses w/PC
|
|||
|
driver & software
|
|||
|
|
|||
|
The Vivid Group. 317 Adelaide Street, W., Suite 302, Toronto, Ontario,
|
|||
|
M5V IP9 Canada. 416-340-9290. 416-348-98()9 (fax). Mandala (VR
|
|||
|
authoring systems).
|
|||
|
|
|||
|
VREAM. 256X N. Clark Street, #250, Chicago, 11. 60614. 3-12-477-0425
|
|||
|
VR authoring systems.
|
|||
|
|
|||
|
W.Industries, Phone: 0533 542 127 Fax: 548 222, 3 Oswin Rd.,
|
|||
|
Brailsford Industrial Park, Leicester LE3 1HR, "Virtuality" arcade VR.
|
|||
|
|
|||
|
World Design Inc. 5348 1/2 Ballard Ave. Seattle, WA 98107, Phone:
|
|||
|
(206) 782-8630, Robert Jacobson - VR consultants, Information
|
|||
|
Designers
|
|||
|
|
|||
|
Xtensory Inc. 140 Sunridge Drive, Scolls Valley, CA 95066. 408-439-
|
|||
|
0600. Tactile feedback systems.
|
|||
|
|