Gamasutra: The Art & Business of Making Gamesspacer
From Research To Games: Interacting With 3D Space
View All     RSS
March 22, 2019
arrowPress Releases
March 22, 2019
Games Press
View All     RSS







If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 

From Research To Games: Interacting With 3D Space


April 22, 2010 Article Start Previous Page 5 of 6 Next
 

Scaled-World Grab

The scaled-world grab technique (see Figure 3) is often used with occlusion selection and was first discussed in 1997.

The idea is that since you are selecting the object in the image plane, you can use the ambiguity of that single image to do some magic. When the selection is made, the user is scaled up (or the world is scaled down) so that the virtual hand is actually touching the object that it is occluding.

If the user does not move (and the graphics are not stereo), there is no perceptual difference between the images before and after the scaling.

However, when the user starts to move the object and/or his head, he realizes that he is now a giant (or that the world is tiny) and he can manipulate the object directly, just like the simple virtual hand.

To implement scaled-world grab, correct actions must be performed at the time of selection and release. Nothing special needs to be done in between, because the object is simply attached to the virtual hand, as in the simple virtual hand technique. At the time of selection, scale the user by the ratio (distance from eye to object / distance from eye to hand).

This scaling needs to take place with the eye as the fixed point, so that the eye does not move, and should be uniform in all three dimensions. Finally, attach the virtual object to the virtual hand. At the time of release, the opposite actions are done in reverse. Re-attach the object to the world, and scale the user uniformly by the reciprocal of the scaling factor, again using the eye as a fixed point.


Figure 3. An illustration of the scaled-world grab technique.

World-in-Miniature

The world-in-miniature (WIM) technique uses a small "dollhouse" version of the world to allow the user to do indirect manipulation of the objects in the environment (see Figure 4). Each of the objects in the WIM are selectable using the simple virtual hand technique, and moving these objects causes the full-scale objects in the world to move in a corresponding way. The WIM can also be used for navigation by including a representation of the user, in a way similar to the map-based travel technique, but including the third dimension.


Figure 4. An example of a WIM. This image was taken in 1996.

To implement the WIM technique, first create the WIM. Consider this a room with a table object in it. The WIM is represented as a scaled down version of the room, and is attached to the virtual hand. The table object does not need to be scaled, because it will inherit the scaling from its parent (the WIM room). Thus, the table object can simply be copied within the scene graph.

When an object in the WIM is selected using the simple virtual hand technique, first match this object to the corresponding full-scale object. Keeping a list of pointers to these objects is an efficient way to do this step. The miniature object is attached to the virtual hand, just as in the simple virtual hand technique.

While the miniature object is being manipulated, simply copy its position matrix (in its local coordinate system, relative to its parent, the WIM) to the position matrix of the full-scale object. Since we want the full-scale object to have the same position in the full-scale world coordinate system as the miniature object does in the scaled-down WIM coordinate system, this is all that is necessary to move the full-scale object correctly.


Article Start Previous Page 5 of 6 Next

Related Jobs

DeepMind
DeepMind — London, England, United Kingdom
[03.22.19]

Games System Engineer
Giant Enemy Crab
Giant Enemy Crab — Seattle, Washington, United States
[03.20.19]

Gameplay Engineer
Embodied Inc.
Embodied Inc. — Pasadena, California, United States
[03.20.19]

Junior Scripter
Disbelief
Disbelief — Chicago, Illinois, United States
[03.20.19]

Senior Programmer, Chicago





Loading Comments

loader image