Infomaniacs Home

Virtual Reality - Virtually Here
By Linda and Erick Von Schweber

Creating Realities - A Guide to VR Development
"The Authors' Cut": Excerpts from and additions to the story originally published in PC Magazine Issue #5, March 14, 1995

(Note that due to space limitations this section was not published with the story. The story had an abbreviated list of tips.)

Design methodologies tell us to choose development software according to our needs, then select the hardware that best supports the chosen software. This is fine for traditional applications where the "interface" is constituted strictly of software and the hardware is a commodity. With VR the interface is built of both software and varied hardware. So, where to begin?

Start with a description of the application you have in mind and its intended users. Characterize its style(s) of interactivity and level(s) of interface, allowing for future evolution. Compare that with the hardware, software and sample configurations in this round up. And keep your options and mind open. This arena is moving rapidly.

You should now have a list of products and vendors to accompany your description. Ask manufacturers of hardware to recommend compatible software. Ask software vendors to recommend coordinated hardware. We've found both types of vendors to be bountiful sources of information and they are very willing to provide such. In fact, many of the vendors covered in this story offer consulting, contract development, systems integration, and turnkey systems in addition to product. In all they're a highly knowledgeable lot.

Consider the expertise each development environment requires.

Point & Click
Purely mouse driven through point and click, these programs are well suited for end-users.
GUI and Scripts
These programs rely primarily on a GUI (DOS based or Windows) but can be extended with an included scripting language. Appropriate for the power user, an option for the programmer.
C++ Toolkits
To be used in even the most trivial fashion these toolkits require skill in C++. However, by supporting Microsoft's Visual C++ for Win NT code management, compiling and linking are greatly simplified.

Design Carefully

We recommend creating and importing the objects, defining their attributes, and getting them positioned. Add animation, lights, and viewports (aka cameras). After you are happy with the general lay out of the world, develop any interactive behaviors. Special features, such as DDE Links and OLE2.0 hooks to other programs can then be addressed.

Populate your world

Creating objects can be a difficult job. Some programs are self-contained and include tools to create, color, and texture 3D objects. One or two ship with large libraries of objects. None of them has strong interactive modeling tools. If the program successfully imports .dxf or .3ds files, you should create your objects in a modeling or animation program. Usually, 3D text is easy.

Don't forget to count your polygons

Macromedia's Macromodel includes an optimizing function that reduces the polygon count of existing 3D models, an important feature as smaller polygon counts means better performance. An IPAS plug-in from Schriber does the same for Autodesk's 3D Studio. TreeTool and TerrainTool from InWorld are self-descriptive and produce low polygon .dxf files. Vista Pro from Virtual Reality Labs provides unoptimized .dxf files of actual landscapes from around the globe.

ClipModels - unfinished furniture and buildings

You won't always need to create your objects from scratch. A wide array of 3D clip models is available from Accuris, Viewpoint, Syndesis, Visual Software, and Noumenon Labs. Accuris and Syndesis also offer format converters.

Objects have properties, they respond and mutate

In most of the programs you define the objects, determining if you can pass through their walls, move them, rotate them, or simply touch them. Objects that can be touched can usually have a response declared, so they will move or start an animation sequence or rotate or change colors or whatever. Some programs let interaction with one object affect another object, pulling down the light switch dims the lights, pushing a button on the radio plays a .wav sound file.

Object mutation is really fun if you are the adventurer to a virtual world, where suddenly you can change the shape, color, texture of an object, like magic.

Add some animation and video

In a few cases, you can even import animations in .3ds format. Most will at least cycle through a series of bitmaps or objects to provide the sense of animation. Only one program provides its own keyframe editor and can morph objects interactively. In the windows programs, .avi files can sometimes be played inside your world. It's starting to look a lot like multimedia...

Sometimes objects have physics

Minimally, all these programs can give objects collision detection - they can tell if you are running into something and keep you from flying through the wall. Elasticity, weight, and gravity are common. Very complex simulations can be created with acceleration, springs, oscillation, ...

Textures provide depth

Texture libraries are available but with Kai's Power Tools from HSC Software and Adobe Photoshop you can create your own. They should be used sparingly (they do slow performance down) to provide realism or surrealism, from wood grains to shiny space bubbles.

Virtual Horizons

HSC's KPT Bryce (Available soon for PC's) produces stunning bitmaps of natural landscape forms, great as backgrounds to add realism to your virtual world. Vista Pro can work in this capacity too. Apply to either the inside of a dome or cylinder, providing a realistic horizon and a world you can't fall off of. For photorealism, try Aris Entertainment's Media Clips.

Worlds aren't Silent

Remember that VR is not all visual, many development environments support sound as well. Licensable collections of both MIDI and .WAV music are available but too numerous to list. Sound effects libraries such as [TKTK] are great for opening and closing doors and such.

Performance tuning can be complex

Standard techniques include making objects invisible if they are hidden, dynamically deleting /replacing objects depending on their visibility. Another technique is to reduce the detail rendered when the image is very far away.

Visual Quality is not a given

Image quality runs the gamut, from 256 pallatized colors thru beautifully rendered 24 bit (16.8 million colors) images. Amazingly - you might not see the performance difference you'd expect. But 16 bits (65,000 colors) seems to be the favorite balance between aesthetics and performance.

Lighting implementations range from primitive to awesome. Never underestimate the value of lights to your world.

Copyright © 1995 Infomaniacs

To Contact the authors send mail to info@infomaniacs.com
Infomaniacs home is www.infomaniacs.com

Updated Jan 28, 1998