28.06.2013 Views

Papers in PDF format

Papers in PDF format

Papers in PDF format

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.3 Geometric and visual ‘cont<strong>in</strong>uity’ across Rooms<br />

A completely new approach is the concept of visual cont<strong>in</strong>uity across (adjacent) rooms. If the user selects a WWW<br />

anchor, MRTSpace starts a child process that retrieves the description of the new location. When the child returns<br />

and the WWW l<strong>in</strong>k led to a HTML page the viewer starts an external browser. But if the web l<strong>in</strong>k led to another<br />

VRML scene MRTSpace tries to f<strong>in</strong>d a door between the new and the old scene. A door is an object that has<br />

web anchors lead<strong>in</strong>g from one scene to another and vice versa. If a door is found MRTSpace tries to match both<br />

scenes by match<strong>in</strong>g the doors of each file. In the trivial case the 3D representations of both doors are identical, so<br />

the match can be done <strong>in</strong> an exact way. If the shapes of the doors differ, the bound<strong>in</strong>g volumes are used <strong>in</strong>stead<br />

and some heuristics try to figure out the direction of the doors. In both cases the current and the new scene are<br />

merged, the door object becomes penetrable and the user can walk from one scene to the other without any visual<br />

<strong>in</strong>terruption. This greatly enhances the perception of the overall VR environment as a place to wander around.<br />

Comfort of navigation can further be improved by two additional features: load ahead and keep rooms. Load<br />

ahead means that MRTSpace tries to load all WWW anchors that lead to a URL match<strong>in</strong>g someth<strong>in</strong>g like *.wrl,<br />

searches for doors, and adds these rooms to the current scene whenever possible. So if the user enters a room with<br />

several doors, these doors will ‘open’ as soon as the representation of their web anchors have been loaded. The<br />

Keep Rooms option controls when to discard the geometric description of rooms. In the simplest case this is done<br />

immediately after the user leaves, but if the resources of the mach<strong>in</strong>e that runs the browser aren’t too limited is<br />

very convenient to keep at least the last room visible.<br />

3 Add<strong>in</strong>g Multi User Support<br />

Recent proposals on behavior all try to br<strong>in</strong>g VRML worlds closer to the notion of cyberspace as a means of<br />

communication [Bro95, BE95]. Most proposals, however, follow the route of def<strong>in</strong><strong>in</strong>g a new server architecture to<br />

take care of the exchange and <strong>in</strong>teraction aspects <strong>in</strong>volved <strong>in</strong> multi-user virtual reality. Others like [MZP 95] are<br />

based on the multicast backbone approach MBone [MB94].<br />

In contrast, our approach builds on exist<strong>in</strong>g server technologies merg<strong>in</strong>g IRC as a medium to communicate and<br />

VRML as a <strong>in</strong>terface to a virtual reality. IRC was orig<strong>in</strong>ally developed to allow people all over the world to chat<br />

with each other. It has been used to develop a network of servers which form the backbone of a very effective and<br />

fault tolerant multi user medium. Us<strong>in</strong>g the HTTP client/server protocol for shar<strong>in</strong>g the static data of a room where<br />

people can meet and us<strong>in</strong>g the IRC protocol to exchange <strong>in</strong><strong>format</strong>ion between these users avoids several start up<br />

problems that arise when <strong>in</strong>troduc<strong>in</strong>g new specialized servers.<br />

3.1 A new Node for VRML<br />

For our solution we need a simple extension to the VRML standard of the follow<strong>in</strong>g form:<br />

SharedRoom {<br />

width 2 # SFFloat<br />

height 2 # SFFloat<br />

depth 2 # SFFloat<br />

name "" # SFStr<strong>in</strong>g<br />

}<br />

The first three fields describe a bound<strong>in</strong>g volume. The VRML browser will check each time the user moves (and<br />

on start up), whether the user enters one of these bound<strong>in</strong>g volumes. In this case the VRML browser opens a<br />

connection to the next IRC server and uses the IRC command JOIN to open a channel with the name given <strong>in</strong> the<br />

fourth field. This name must be unique for this shared room. One obvious way to build such a name is to choose<br />

the URL of this VRML script and append some extension to identify SharedRoom with<strong>in</strong> the script. The channel<br />

with this name is then shared among people all over the world who have loaded this particular script and entered<br />

this particular room. If the channel did not already exist the IRC server will create it automatically.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!