From: avi@usl.com
Newsgroups: sci.virtual-worlds
Subject: Re: DESIGN: Doors between virtual worlds
Date: 11 Aug 92 18:09:00 GMT
Organization: The Ohio State University, Department of Computer and Information
Originator: hlab@milton.u.washington.edu



In article <1992Aug11.064350.5974@u.washington.edu>
autodesk!robertj@uunet.UU.NET (Young Rob Jellinghaus) writes:

>Ah.  This assumes that the "visual representation" of this portal-door
>can in fact be a projected perspective onto another place.  (It can't
>be a static projection, as then it'd just be a painting.  It needs to
>change in perspective as you move around looking into it.)
>
>I was just thinking of what this kind of door would look like, and it
>occurred to me that there is a physical counterpart: a hologram!  A
>hologram is just a physical piece of plastic which reflects light in
>such a way as to create a three-dimensional view of some objects in a
>virtual space.  These "dimensional doors" would be essentially
>cyberspatial holograms, which allow you to teleport to the space on
>the "other side" by walking through them.  (And what's more, they
>could be _moving_ holograms!)

I'm not quite sure how to (efficiently) render holograms but I have
two suggestions.  First, I would assert that any rendering algorithm
which could render reflections could render windows into other worlds.
For an intuitive argument, just think of Alice in Wonderland's looking
glass.  Concretely, what we would be doing is, when we hit the mirror/
window surface, we switch databases.  A raytracer could do this very
easily by simlpy recursing, when a ray hits the window/door, into the
other world and returning (upon completion of recursion) with a color
to the original world.

Since raytracing is not the method of choice for most VR applications :)
there is a better way.  In scanline algorithms, we use environmental
mapping to simulate some raytracing functionality without the cost.  The
basic idea is to pre-render a spherical or hemi-spherical view of the
world from a central viewpoint to a bitmap.  This map is then used as
a target for reflection rays (generally) from some reflective surface
with no recursion.  The problem can be simplified (with some loss of
accuracy) to indexing a point on a sphere given an interior position
and two angles.

Anyway, this can be applied to a door/window into another world with
about the same cost as environmental mapping.  If we position a
camera/eye on the far side of the door (in the other world) and take
a 180 degree hemispherical snapshot, we can use environmental mapping
techniques when we render the door/window.  All we need to do is compute
the angles from the observer to the door/window and project onto
the bitmap to find out what it looks like in the other world.
Problems?  Of course motion in the other world requires rerendering
the environmental map and there are some anti-aliasing considerations
which complicate the issue a little bit.  Advantages?  We wouldn't need
to rerender the e-map for multiple observers in this world, just index
it differently.  Also, e-maps were faulted for not including self-
reflections (remember the metallic dynosaurs) but in this case, there
is no interaction of objects in this world and the rendition of the
other world so no problem.  There is a problem for networked implement-
ations and storage of the bitmap but those are tradeoffs to be considered.

>get from one part of your universe to another--it might be a gateway
>to another universe altogether, in which case something weirder than
>coordinate translation is going on.

And the issue of changing contexts is important.  If we move from
a universe without gravity to one with it, we could, _under certain
circumstances_ fall apart.  Assuming rigid body transformations,
we might simply tumble off-balance into the other universe and there
is the possibility that the transition is instantaneous to avoid
these issues but it's not clear.  If the system wasn't well thought
out, we could shear ourselves as we pass through.

>Now the question is:  how hard is it actually to implement a cyber-
>spatial renderer capable of depicting virtual holograms?  I doubt it's
>entirely trivial, as most renderers currently assume that all the
>objects they're rendering are present in "real" virtual space, not 
>"virtual", holographic virtual space.  (Virtual virtual space!)
>
I think the environmental mapping solution would work for z-buffer
or scanline approaches.  It doesn't really have a place for regular
painter's algorithms.

>--
>Rob Jellinghaus                | "Next time you see a lie being spread or
>Autodesk, Inc.                 |  a bad decision being made out of sheer
>Internet: robertj@Autodesk.COM |  ignorance, pause, and think of hypertext."
>AMIX: RJELLINGHAUS             |    -- K. Eric Drexler, _Engines of Creation_

Avi Bar-Zeev
UNIX Systems Laboratories               avi@usl.com

Speaking for myself as usual.