28.06.2013 Views

Papers in PDF format

Papers in PDF format

Papers in PDF format

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MRTSpace is based on MRT, a M<strong>in</strong>imal Render<strong>in</strong>g Tool [Fel96], developed at the University of Bonn.<br />

MRTSpace builds on the model<strong>in</strong>g functionality and the structure of geometric objects ma<strong>in</strong>ta<strong>in</strong>ed by MRT to<br />

represent all of its <strong>in</strong>ternal data, handle the <strong>in</strong>teraction between the different actors and do all the visibility<br />

computations, <strong>in</strong>clud<strong>in</strong>g collision detection. This toolkit also resolves some of the major problems of develop<strong>in</strong>g<br />

a platform <strong>in</strong>dependent program: it has a platform <strong>in</strong>dependent graphical user <strong>in</strong>terface which uses most of the<br />

exist<strong>in</strong>g graphics hardware to display 3D objects.<br />

2 Improv<strong>in</strong>g the 3D perception <strong>in</strong> VRML worlds<br />

2.1 Navigat<strong>in</strong>g along solid objects<br />

A general problem of 3D viewers is the handl<strong>in</strong>g of solid objects (like walls) when the user walks through a scene.<br />

The m<strong>in</strong>imum level of user support is the detection of solid obstacles and the prevention of mov<strong>in</strong>g the user’s<br />

camera <strong>in</strong>to ’black holes’, i.e. 3D areas surrounded by non-transparent planes thus block<strong>in</strong>g all light sources and<br />

thus result<strong>in</strong>g <strong>in</strong> a completely black screen. Some viewers provide a head-light feature to circumvent this problem<br />

of gett<strong>in</strong>g lost <strong>in</strong> the dark. Nevertheless, light is not the only issue as the user is still confronted with a uniformly<br />

colored screen.<br />

A better navigation control can be built on functional elements commonly used for ray-trac<strong>in</strong>g algorithms<br />

[Gla89]: most of the time <strong>in</strong> the ray-trac<strong>in</strong>g process is spent on cast<strong>in</strong>g rays onto the scene and determ<strong>in</strong><strong>in</strong>g which<br />

is the closest object. The considerable research <strong>in</strong>vested <strong>in</strong> ray acceleration techniques provides us with a rich set<br />

of tools (e.g. octree or regular space subdivision) which can be applied to various aspects of navigation control.<br />

MRTSpace uses the object-oriented data structure of MRT to represent all VRML objects. Consequently,<br />

collisions can be detected by us<strong>in</strong>g the ray-trac<strong>in</strong>g functionality of MRT. The built-<strong>in</strong> ray-trac<strong>in</strong>g modules compute<br />

the <strong>in</strong>tersection of a given ray with a scene, return<strong>in</strong>g the distance to the closest object hit.<br />

So if the user moves <strong>in</strong>to a given direction MRTSpace casts a ray along the trajectory and checks whether the<br />

returned distance is less than a given value. In this case the user was about to run ‘<strong>in</strong>to’ an object and MRTSpace<br />

takes the normal vector of this object at the <strong>in</strong>tersection po<strong>in</strong>t of the trajectory and the object to determ<strong>in</strong>e how<br />

to change the user’s direction <strong>in</strong> order to avoid a collision or disappearance <strong>in</strong> ‘outer space’. This feature has the<br />

advantage that a user who is too close to an obstacle (assum<strong>in</strong>g the start<strong>in</strong>g position of the camera has been chosen<br />

<strong>in</strong>appropriately by the designer of this scene), and therefore sees noth<strong>in</strong>g but a solid color, just needs to go ahead<br />

and will automatically be repositioned at a more appropriate po<strong>in</strong>t.<br />

Figure 1: Us<strong>in</strong>g rays cast ahead of the mov<strong>in</strong>g avatar to guide the user<br />

Implement<strong>in</strong>g this feature <strong>in</strong> MRT can be done with the follow<strong>in</strong>g code (which is much shorter than its<br />

description):

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

Saved successfully!

Ooh no, something went wrong!