Notes on delivering
Interactive 3D Worlds via the Internet
Written by Paul Bourke
The problem of presenting interactive 3D environments to a user over the
internet is for the most part a tradeoff between bandwidth and processing
The goal is to create a highly realistic rendition of the 3D environment
at the same time giving the viewer the ability to interact with the
environment. Interaction can be at many levels from just being able to
move around and view the environment, being able to modify and add to
the geometry, being able to change material and lighting, being able
to interact with other users within the 3D space.
There are two prevalent approaches being pursued on the internet today
each with an emphasis on either realism or interaction.
The first is the VRML approach where a description of the environment is
transfered to viewing software on the users personal computer. After this
transfer is complete the interaction of the viewer within the 3D world and
the rendering of the views is done locally.
The other approach is to render the current environment remotely and
transmit the resulting image to the user. Subsequent interaction (generally
movement) is sent to the remote rendering machine/server for processing.
The advantages and disadvantages of these two approaches as well as some
other methods will be discussed below.
Local "VRML" model
- The entire geometric description
is transfered once to the users computer,
this results in the most interactive environment.
- The viewing software can be designed specifically for the users
hardware and operating system interface. It can make optimal use
of hardware and fit seamlessly into the operating system interface.
- Modifying the geometry is just as easy as moving around the scene.
- The main restriction is the limit on realism possible given the
desire for an interactive experience, for example, each frame
needs to be rendered in at least 0.25 seconds. Usually the models
are facet based and flat shaded, subtle texture and lighting effects
are not feasible.
- Each users computer is different, there are different makes and
models, different operating systems and graphics capabilities.
This means that it is often difficult to ensure a minimal
performance level. It is likely that users will have different
experiences depending on their computers capabilities.
- The development of software on multiple platforms can be time
consuming. Without multiple platform and operating system support
there is the risk of a percentage of the potential userbase not
being able to view the material.
- Interacting with other users in the scene is more difficult
especially if local users can make geometric modification. All
any user movement or interaction needs to be transmitted to all
other users who are within the same space, bandwidth constraints
limit update times.
Remote server model
- It is quite likely that a specialised rendering server will always
out perform user platforms. The possibility of much more realistic
renditions can result from both the improved performance but also
from software and solutions only feasible or available on higher
end platforms. Subtle lighting, texture, and additional
geometric complexity greatly enhance the virtual 3D experience.
- It is more likely that the experience users have will be the same
irrespective of the platform they are using. "Standard" graphical
front ends such as WWW browsers are available for the vast majority of
users and present in most cases the same quality on different platforms.
- Interacting with other users in the 3D space should be easier as the
the one server "knows" what all the users are doing.
- The main drawback to remote rendering is bandwidth. Few users today
can receive a reasonable quality image from a server in say 0.25 seconds.
- There are different types of interaction, while moving around the
environment is straightforward, interactively modifying the scene or
changing the lighting is problematic.
This involves rendering all the views the user is ever going to see
and storing them as images. CGI programs or static HTML files manage
the users movement though the space presenting the appropriate image
at the right time.
Hybrid Server-Client processing
The primary advantages are: the views can be rendered with the most
realistic techniques available and the geometry/textures/lighting can
be precisely controlled;
there aren't any CPU requirements for the server; the designer is assured
that everyone experiences the same quality view.
Of course it isn't possible for the user to change the environment, also
the degree of movement is discrete (the finer the steps the more storage
space is required for the view database)
An example of this can be seen in the
Brain Dynamics Gallery, the
and a description of an
earlier experiment called uview.
There are many techniques which would allow higher realism than standard
VRML and have lower bandwidth requirements than totally server
systems. One such system is based around a method of being able to
interactively view in any direction from a given point in space by
precomputing 6 images. The server then computes 6 images each time the
user changes position, the 6 images are sent to the user where
they can smoothly look around.
This can present high quality renderings, the user can view in any
direction in real time. On the down side there is still discrete movement
and download delays when the view position is changed and it isn't
readily possible to allow the user to interact with the geometry making
up the environment.
For more details on the particular technique discussed above see
CubeRender. This approach
is similar to a system based around Apple QuickTime VR technology where there
are also discrete view positions and continuous view direction. In
general QuickTime VR environments are precomputed.