World Building Principles

Scale is Literal

The design principle behind the CAVE is that the scale of virtual objects is literal - if you create a cube measuring 6 feet on a side, it should actually appear to be a literal six feet in the CAVE. This is another point about VR which seems perfectly obvious but in fact requires something of a shift in thinking from the way we usually understand images. Pictorial space is rarely the same literal scale as the physical space it represents. Consider landscape postcards and cinematic close-ups as two simple examples - the shift in representational scale happens almost transparently. Nobody believes that the small figures moving about on the TV screen are really midgets (except perhaps very young children, lesser mammals, and the insane). Again, this is something that we take for granted to such a degree that the literal representation of space in VR is actually pretty unusual. The image itself is now bound by laws of scale that previously only applied to sculpture and architecture. When combined with the fixed first-person point-of-view of VR, what you have is a kind of image which is integrally tied to the human body in a unique way. The odd paradox is that this technological 'advancement' puts a new set of limits and constraints on the image, which should put to rest anyone who thinks that virtual reality is going to make all other forms of visual representation obsolete.

In practice, what this means is that it is very important to look at your work in a CAVE, C-Wall, etc, as you go. Most development takes place in 'simulator' mode, on a regular desktop computer screen - meaning that everything is not just smaller (obviously, since your monitor is a lot smaller than the projection screen) but that in this mode you look at and understand the virtual environment primarily as images rather than as things. The way we see 3D virtual spaces on the computer screen (VR environments, VRML webpages, videogames, Quake, Halo, etc) relies on exactly the same fluid transformation of scale as other pictorial forms, with the same kind of arbitrary, external, disembodied point of view. The bottom line is that your environment will often look radically, surprisingly different in the CAVE than the way it looks on a normal computer. Understanding this difference really only comes from practice.

You can change the CAVE's unit measurement in the CAVE configuration files, so you can set it up to use Metric.

At the beginning, it helps to model objects and spaces based on actual physical measurements. When modeling in Maya, for example, there is no real scale reference; scale is completely arbitrary, since in 3D animation for film the only thing that matters is relative scale between objects. The numbers don't matter, it just has to look good. But when modeling for VR, take measurements of things - how wide is this room? How wide is the doorway? How high off the ground is the desk?
Remember that the CAVE measures everything in Feet. Different modeling programs will default to different units for measurement. Maya defaults to measuring everything in Centimeters; but, this is really sort of an arbitrary unit. When you export models out to use in the CAVE, it just puts out the numbers, not the units; so the numbers get interpreted as Feet anyway. There are a few model exporters that DO pay attention to units (the OpenFlight exporter is one), but most do not.

Modeling Tips

Here are a few quick, basic tips for 3D modeling. Some of these are specific to Maya, but the ideas are the same for other modeling packages.

Many objects vs. Single Object

There are two basic approaches to exporting models from your modeling software to Ygdrasil: lots of little objects, or one massive object. In practice, you'll often want to use as combination of the two.

To export everything as a single object, use the Export All command, or select everything, or a lot of things, and use Export Selection. This will create one single model file (a .B3D, a .X3D, a .OBJ, etc), which then gets loaded into one single object node in YG. This single model file can, in fact, contain many different objects - for instance, you might export a whole house, its furniture, decorations, and furnishings, as a single object. All of these things are individual polygon objects in Maya, but they would get loaded in a single object node in YG.

There are some objects that you might not want to include in a single model file. Why? In the example above, you would not be able to access the individual objects from YG. For static objects this is fine, but if you want to reposition or animate an object from YG, it would have to be its own node. So, if you're going to have the inhabitants of the house animated or controlled by scripts, you would need to export them as individual objects. Just use the Export Selection command.

When you export an object, it includes its current location. So, after doing Export Selection, the object node in YG would load the object at the same place it was in Maya. If you are planning to animate or script the behavior of the object, though, you should first move it to the Origin and then export it. Then, enter position and orientation messages for the object node in YG to position it in the scene (just use the numbers from Maya).


(c) Ben Chang