Chapter 13

Exploring VRML Browsers and Development Tools

-by Justin Couch


CONTENTS


So you liked what you saw in Chapter 2, "Up and Running: First VRML Creation," and think that this real-time 3D stuff is worth checking out. VRML can be tricky, and you're going to need some help getting started. That first look at VRML only touched on how to create a quick and dirty VRML scene. Now you'll be introduced to VRML properly.

This is an introductory chapter to get you up and running with VRML, both from the browsing and creating points of view. It should also familiarize you with some of VRML's background. This chapter has three main parts:

The second part looks at how you go about viewing somebody else's VRML worlds:

The last part of the chapter deals with the issues involved in designing your own VRML world:

Now it's time to roll up your sleeves and get into VRML.

What Is a VRML File?

VRML acts in many ways, the same way HTML files can produce many different effects on the screen. A VRML file is composed of a series of text commands that are interpreted by the VRML browser and displayed on the screen, but the file's objects are all three-dimensional. This content is referred to as a world or scene.

In HTML, you place text and images on the screen using tags. Similar to tags, VRML files have nodes that define 3D objects such as cubes, spheres, and other shapes in a real 3D coordinate system. With the browser, you can navigate around these worlds at your own pleasure, examining the world from whatever angle you want. Basic worlds can be enhanced by adding lights, colors, textures, and motion to the scene.

To navigate around the scene, you move the mouse-the scene changes in real-time. So, by moving the mouse forward, the objects in the world become larger, as if you're approaching them. If you pull the mouse back, the scene recedes. If you click and drag the right mouse button, the entire scene rotates around its center.

How VRML Is Similar to HTML

Just as HTML is designed purely for document formatting, VRML is designed for 3D VR scenes. Most of the rules of creating Web pages also apply to creating 3D worlds. If you create a 3D scene, make sure it's interesting and offers the user something to do. Similarly, if you create a plain HTML page with no headings-just pure text-it too will be boring, ensuring that visitors don't return.

Say you create a Web page that looks absolutely stunning with lots of graphics, but it takes twenty minutes to download-how often do you expect people to visit? You must apply the same rules to creating VRML worlds that you do to creating Web pages. By its nature, VRML creates larger files than HTML does, but you can keep the file sizes to a reasonable level. Limiting the use of large images (textures), sticking to using color only, and using simple primitives are some techniques. Chapter 18, "Tricks to Optimize Your VRML Worlds for the Web," covers some of the common methods for optimizing your creations to keep people coming back.

An outstanding Web page can be put together in a couple of hours, if you have all your resources ready to go. Because VRML is more complex, it takes more time, even when you're using a GUI construction tool. However, it always pays to spend some time planning what your new world will look like in all three dimensions.

Once you add in that third dimension, VRML starts to diverge from its 2D "relation." HTML pages can be viewed in only one way, defined by the page writer, but users can explore VR worlds by looking at them in whatever way they like.

The similarities between the two technologies stretch further than just the method of creating them. Many HTML pages are designed much as magazine pages are, with lots of pretty graphics and links, and some cutting-edge pages seek to break this mold by stretching technology to do something unique. VRML is no different. A vast majority of VR worlds use traditional earthbound paradigms, such as the shop and art gallery examples presented in this book. However, a few stretch the limits as they seek to explore the possibilites of virtual reality. VRML offers a whole system for artists to create with, but HTML only allows them to display one of their creations.

When creating a Web page, you can do it in several ways. You could use a plug-in to common word processing packages (Internet Assistant for MS Word), a standalone application (Sausage Software's Hotdog or MS FrontPage), or the text editor of your choice. Equivalents exist for VRML world builders. You can export files from packages like AutoCAD and 3D Studio, use standalone dedicated applications like VRealm Builder, or use a text editor. However, with the pace at which VRML is developing, you should get familiar with a text editor. The best worlds are still created by hand, particularly when it comes to creating behaviors in VRML 2.0.

Working in Three Dimensions

One of the most important differences between VRML and HTML is that with VRML you have a whole extra dimension to worry about. This added dimension gives the visitor to your VRML world the chance to go inside, behind, and around your scene. This can be used to your advantage, but it also presents some difficulties. The next section examines some of the advantages and disadvantages to working with this third dimension.

Advantages

First, you have more freedom. All those 3D effects you've been producing in earlier sections of this book can now be done in real-time. Instead of just looking at a picture of a car, you can walk around it, kicking virtual tires if you like. The images and animations created up until now are all canned. You can play the animation a thousand times and it always looks the same. A VRML world, on the other hand, presents infinite ways to view the animation, all at the viewer's discretion.

VRML has a second advantage: control. Users can view the scene from any angle (if they can effectively navigate), so they aren't stuck viewing the same image every time.

A third advantage to VRML is the ability to obscure items. By using the third dimension, you can hide items behind other items, something tricky to do on HTML pages. This enables you play some interesting hide-and-seek games.

Perhaps the greatest advantage to using the third dimension is the realism you achieve. Moving a user through an architectural structure gives them a much better feeling of spatial relationships for the building than pictures do.

One of the intended uses of VRML is in the remote visualization of data. This might take the form of a VR world that mimics the environment a remote-controlled vehicle is operating in, or it might even act as mock-ups of designs. Now, there are several other languages and file formats that could do this, but VRML was born with the Internet firmly in mind. Anyone should be able to view any VRML world without needing proprietary software. VRML has the same benefits for users in the 3D arena that HTML has for people working in 2D environments and document publishing.

Disadvantages

Probably the most challenging aspect of working in 3D is trying to manipulate a 3D model in 2D. Input devices like the mouse are two-dimensional, so moving them in 3D can be difficult. Even with 3D-based interfaces like Caligari's Pioneer, or the split view approach of 3D Studio, it's still difficult to keep track of exactly how things look until you get to see them in the final environment.

Not only are computer input devices 2D, so are output devices, such as the monitor. Moving around the world helps the viewer understand the relative positions of objects, but it's still difficult to determine depth on 2D monitors. In the future, head-mounted displays will help. Head-mounted displays are worn like glasses; the scene changes as you move your head. To see the object behind you, you turn around.

The main disadvantage to working with real-time 3D is the computing time involved. The poor little processor really has to work hard to calculate how the scene looks as you move. The more complex the scene, the more it taxes the processor. Because of the huge calculations involved, the details of VRML worlds are purposely kept simple. You may have noticed that the images in the first half of the book don't really compare with images created in a VRML world.The scenes in the first half are drawn only once, but in VRML, the world may be redrawn as often as 30 times a second. Complex scenes take longer to draw, so to keep users happy, the world is much less detailed.

Complex pre-rendered animation can take all night to produce just a single frame of the animation, but when the animation's complete, you can play it as fast as you want. VRML worlds have less than a second to compute and render the scene before your eyes detect that the motion isn't fluid. So until processors get much more powerful, you're stuck with the simple-looking worlds.

Where Did VRML Come From?

The idea for distributing 3D graphics across the Internet was the result of a meeting at the First International Conference on the World Wide Web. Mark Pesce and Tony Parisi had developed a demo program called Labyrinth that showed the use of a platform-independent graphics format. At this same conference, Tim Berners-Lee and David Ragget (the inventors of HTML and HTTP) held a discussion forum about what was then termed the Virtual Reality Markup Language, or just VRML.

VRML's designers wanted to create a platform-independent way to send 3D worlds across the Internet. For this to work, the file format had to describe where objects were placed in 3D space and what their attributes were, such as color. VRML browsers would be running on everything from powerful UNIX workstations to humble desktop pcs. Silicon Graphics offered the Open Inventor file format for use, which was greatly accepted. A number of changes were made to make it compatible with the Internet and World Wide Web. This was released in May 1995. Following a number of different interpretations, a clarified version called 1.0c was then issued in January 1996.

In December 1995 it was proposed that the next version of VRML incorporate simple behaviors. Like everything else in the development of VRML, new pieces were being done bits at a time. VRML 1.0 described only static scenes. VRML 2.0 was to include programmable behavior but not the multi-user virtual environments of Gibson's cyberspace. They could be built on top of VRML 2.0, but multi-user virtual environments are not part of the language specification.

The examples presented in this book are based on the Draft 3 version of the VRML 2.0 specification. Apart from clarifications in wording, nothing changed between that and the final version. The official VRML 2.0 specification was released on August 4, 1996-the opening day of SIGGRAPH, one of the most important conferences for the international graphics community.

VRML 1.0 Versus VRML 2.0

By the time you read this, there will be two official versions of VRML, and you may be wondering what the difference is. The first version was deliberately limited to creating static scenes. In this way it was not much better than a standard Web page. A user could wander about, clicking on links to other worlds or pages and enjoying the scenery, but that was all. The second version of VRML introduced programmable behaviors-meaning that things are really starting to live up to that virtual reality tag.

Along with the addition of behaviors, VRML 2.0 added many other things. The most important for general world design is the ability to incorporate real 3D sound and video file formats. From a world creator's point of view, however, other changes are even more significant.

The major difference between versions is the completely different approach to creating VR worlds. To incorporate behaviors into the version 1.0 file format would have required a lot of messy additions. Worlds that were created in the version 1.0 format couldn't simply have extra information added to put in the behaviors. A whole new system needed to be drawn up. At the file level, everything-even the header-is different.

Chapter 1, "Building a 3D Enhanced Web Site," presented a model built with commonly available software. VRML 2.0 is so new that there are no tools available yet to create worlds with. Already two converters are available to change between the file formats. However, if you're interested in pursuing VRML worlds at the present, then you'll have to roll up your virtual sleeves, delve into the mechanics of VRML, and create it all by hand.

The rest of this chapter looks at both 1.0 and 2.0 VRML software. To the viewer, the difference in what they see will probably be slight. What they may notice is that some worlds have more responsiveness than others. (After this chapter, this book deals exclusively with VRML 2.0.)

If you're new to VRML, you shouldn't worry about learning version 1.0-head straight for version 2.0. At this stage version 2.0 may be a little more work because everything has to be created by hand, but over the next few months a number of dedicated VRML creation programs will be on their way. Besides, being at the leading edge of virtual reality on the Internet will help give your site that look of high technology.

Note
Although there are type-different versions of VRML, they aren't interchangeable. VRML 1.0 browsers can't view VRML 2.0 worlds, and vice versa. Given this fact, most people predict that VRML 1.0 browsers and tools will eventually become obsolete.

Types of Browsers

VRML browsers come in two types: standalone and plug-ins for HTML browsers. With the speed at which Netscape is currently moving, your latest version of Navigator will include Live3D, a VRML plug-in, as standard. This is good news, because you will be able to assume that most people have VRML capabilities. However, the Live3D plug-in is capable only of displaying VRML 1.0 files, so you will need to find an alternative to view 2.0 worlds.

If you're only going to view your VRML world, then a standalone browser will work satisfactorily. However, if you're planning to create mixed HTML and VRML worlds, particularly using Frames, then you will need to have a plug-in browser. Standalone browsers do offer one advantage-you can run your VRML browser and your HTML browser at the same time. A frames-based approach does limit the user's ability to go wandering-looking at full sized documents-particularly if the user wants the 3D world to be a constant reference point he or she explores various documents.

Caution
VRML worlds may look different depending on what browser you use, just as HTML pages look different when running on two different browsers. For example, one of the biggest problems with the first-generation browsers was that the colors seemed different between them. Where one browser made the world look very bright, another, even running on the same machine, made it look a lot darker.

Netscape and Live3D

One of the most common VRML browsers on the desktop is Live3D, Netscape's own VRML browser. Live3D is distributed as a standard part of browsers from Navigator version 3 onwards. It offers most of the standard features that you will find in the other browsers. The browser with Navigator 3 is capable of viewing only VRML 1.0 worlds, so to view VRML 2.0 worlds, you need to get one of the browsers mentioned later in the chapter. Netscape will no doubt update their browser to be 2.0 compliant in the future. The following sections look at how to navigate VRML worlds with the Live3D browser.

Microsoft and ActiveVRML

When the VRML development community was looking to move to the second version of the VRML specification, a call was sent out to all interested parties for their proposals. Six submissions were received from Silicon Graphics/Sony, Apple, Microsoft, Sun, IBM, and the German National Research Center for Information Technology (GMD). Of these, the Moving Worlds proposal by SGI and Sony was accepted by popular vote to be the starting point for version 2. As a result, Microsoft took their proposal, which was called ActiveVRML, and started marketing it against VRML 2.0.

Although it did have the potential to read VRML 1.0 files, ActiveVRML is no longer true VRML, as decided by the VRML Architecture Group (VAG)-the controlling body of the VRML standards development group. Microsoft released an alpha version of their ActiveVRML browser in January 1996, but little has been seen of them since then. Chapter 11 takes a closer look at ActiveVRML technology, if you want more information.

Learning to Navigate VRML Worlds

If you've ever played the game Descent, you probably realize how quickly a newcomer to a 3D environment can get completely disoriented. For those who haven't, Descent is based on a 3D world in tunnels that leaves you with almost no idea of which way is up, or even exactly where you are. This section gives you a quick overview about navigating in 3D worlds.

When you're first learning to get around, stick with just one navigation method. VRML browsers offer at least two different ways of exploring the world, and many offer more. Until you're familiar with one, it's wise not to chop and change. Changing is one of the quickest ways to get disoriented. There is quite a difference between being lost and being disoriented in VR worlds. Being lost means that you have absolutely no idea about where you are; being disoriented means you can't work out which way is up, or worse still, have no idea how to adjust your view so that you could work out where you are.

Most browsers now offer a DOOM-style navigation method as a default. This is often known as Walk mode. The up/down cursor keys move you forward and backward, and the left and right cursor keys turn you in the respective direction. For newcomers, this option is probably the best. Most existing 3D worlds are based on the familiar real world, where you walk along the ground. Tunnel traveling, where you move forward and backwards in a tunnel that can spin, or flying navigation, requires the use of another mode.

The other mode that is commonly available is Examine. This allows you to spin an object, looking at it from any angle. Where would this be useful? If you're running a virtual shop then it allows you to examine any particular item, just as you would in real life: by holding it in your hand and turning it around to look at it. This mode rotates the entire world around its center.

VRML allows the world builder to build up a world from a collection of files-which is called inlining. Inlining isn't restricted to files located on the one server. Virtual worlds may be composed of many files from all over the real world. This leads to the familiar problems of servers and files not being available. When the browser is first building the scene, it may let you wander about before all the parts have been retrieved. When this is the case, inlined files are specifying by a wireframe cube specifying the dimensions of the file to be inlined at that location. When you come across one of these, it either means that the file is not available or the browser is still downloading it. Figure 13.1 shows a world still in the process of downloading.

Figure 13.1: A partially loaded world showing the bounding boxes of objects to be inlined. The world is George Towne from Terra Vista.

Tip
A quick check to see whether the entire world has finished downloading is to look at the Stop button. If it's still active, then the world hasn't finished downloading.

Navigating in Walk Mode

Live3D offers the standard Walk mode as its default. The cursor keys always move you forward, backward, left, and right in relation to the direction you are facing, similar to DOOM's controls. If you have managed to view the world upside down, then you have to switch mode to right the world. Walk mode is what you will be using most of the time to explore worlds. A good practice drill is to turn the world upside-down, literally.

  1. Start by moving around the world, using the arrow keys, to get familiar with the controls. You will soon find that you can't move off the plane that you are on.
  2. Try clicking on the Examine button to switch to Examine mode. This causes the world to spin about its center. Rotate the world 180 degrees by pressing the up/down keys until the world is upside down. You will probably find yourself beneath the floor.
  3. Click the Walk button onscreen to switch back to Walk mode and move about the now upside-down world.

You don't have to use the keyboard to navigate. In many ways, the mouse is better because it can give you better feedback.

Using Mouse-Driven Navigation

The following steps should give you some practice moving around a VRML world in Live3D with the mouse.

  1. In the screen shot in Figure 13.2, you will notice a menu bar at the bottom of the screen. The first four words offer the choice of navigation mode when you're using the mouse. These refer to the actions that occur when you drag with the left mouse button down. The other modes are available by using either the right mouse button or a combination of the Ctrl or Alt key with the left mouse button. In the following steps, only the default left button actions are described.

    Figure 13.2: Netscape 3.0 running Live3D under Windows NT. The browser is currently in Walk mode, with the Natigation Help option turned on from the default starting position.
  2. Walk mode enables you to navigate in the same way as the cursor controls. Holding down the left mouse button and dragging up moves you forwards, as Figure 13.3 shows. Drag down to move backward and drag left and right to revolve around the current point.

    Figure 13.3: The resulting view of walking farward to the center, then turning left to look at the planet in back.
  3. Spin mode rotates the world around the current center of the screen. A
    left/right drag of the mouse rotates the world left or right in relation to the current window. An up/down drag rotates it vertically in relation to the current orientation. If you took the world and rotated it up 90 degrees and then dragged it left 90 degrees, you would be looking at it from the side. Figures 13.4 and 13.5 illustrate the resulting views.

    Figure 13.4: The result of a vertical spin starting at the default position.
    Figure 13.5: The result of spinning Figure 13.4 horizontally.
  4. Look moves an object as though you were moving your head to look at it. The scene moves in a sphere around the user's current viewpoint, as shown in Figure 13.6. In a large world, Look is handy for looking up to the roof or down to the floor.

    Figure 13.6: Starting from the default position looking left. Notice that the objects have rotated not only in the horizontal direction, but also in the vertical.
  5. Slide mode slides you left, right, up, or down while keeping you pointed in the same direction. This is handy for looking around corners or dodging objects.

There is also a menu that controls the default settings of the VRML world.

Using the Options Menu

The last part of the Live3D interface that you regularly use is the Options menu, which you get by clicking the right mouse button. The Options menu has all the options for customizing your viewing preference.

Viewpoints

At the top of the Options menu are four items dealing with viewpoints. These are predefined points that you can visit in a VRML world. The first item contains a list of all the viewpoints in this world that you can select. Upon selecting one, the browser takes you to that position. Once there, you're free to navigate around as normal. Should you get lost or disoriented, then selecting the Current Viewpoint option takes you back to the last visited viewpoint. You can check out each of the views in order by selecting the Next and Previous Viewpoint options.

Navigation

Next on the list is the Navigation menu. The submenu lets you control how you move around the world. The first five items are the same as the menu bar options outlined in the previous sections, except that they control what the cursor keys do. The previous sections outlined what the effect of the mouse did-these same navigation methods can be achieved using cursor keys. The menu also adds one more: Fly. Fly enables you to navigate just like a flight simulator, with the same key setup as Descent. A and Z move you forward and backward while Q and E roll you right and left, respectively. Straighten returns you to the normal relationship to the ground and usually back to the starting point.

One of the things that VRML 1.0 did not specify was physical effects. The next 3 options control how to make the system feel more real. Stay On Ground makes your view follow the terrain. This can be used to climb stairs, follow mountainous terrain, and do all sorts of neat tricks. When you're in Fly mode you may want to have the scene feel like you're in a real aircraft, so select Bank When Flying. One enhancement that has gained popularity in all the VRML browsers is the Collision Detection option. This stops you from walking through objects as you otherwise would.

The last pair of options control how you move between points. If neither of these options are selected then you always jump to a point. However, it's a much nicer effect when you select the animation option, because the browser flys you to the selected point. The end result is like being carried on a tour bus through the scene to the next viewpoint.

Lighting

Sometimes you need to adjust the lighting within the world. The browser defines a headlamp for you. This headlamp is a directional light that always points in the direction that you're facing. In dark or dimly lit worlds this is really handy-it gives you a miner-in-a-cave perspective on things. The first option enables you to turn the lamp on or off, while Dimmer and Brighter enable you to control the amount of light.

Besides controlling your own light, you also can control how objects in the world are lit. Smooth Shading makes rounded objects look round rather than tessellated, but it also makes the rendering slower, particularly on slower machines. If you have lots of processing grunt, then turning on Texture Lighting makes everything look even better when texture mapping is used on objects.

Detail

If you're having problems with computer speed (particularly in large worlds), then the Detail submenu is where you should head. This submenu enables you to define how the world looks, either as Solid objects, where you can't see through them, Wireframe, or as a Point Cloud of the vertices. Point Cloud is not normally very useful and can get you disoriented very quickly. In a highly detailed model with lots of polygons, you can usually just make out the shape of the object from the points. The points are just the individual vertices that make up an object, so in a low-detail world all you end up with is an apparent mass of random points.

Heads Up Display

HUD enables you to control what information is overlaid on the viewing screen. While you're still learning to navigate, the Navigation Help option turns on hints that are printed in the lower-left corner, giving you details about what the keys are for the current navigation mode. The other helpful item is the Download Status. This presents a little blue and yellow bar across the top of the navigation menu bar, indicating the status of the world download. The blue section indicates how much of the download is complete and the yellow section indicates the progress of the internal processing of the file.

Options

In this submenu, you'll find the miscellaneous options for controlling the general behavior. Fast Rendering allows Live3D to take shortcuts to produce a better frame rate. This means a loss in quality of the picture while you're traveling around. In big worlds it is a much-needed option.

Providing you're sober, the Motion Blur option is great fun. This is the same effect as motion blurring in Magic Carpet, and gives that extra effect of speed as you travel through worlds. It does, however, slow up the responsiveness of the browser considerably.

If you're lucky enough to have a head-mounted display like the VFX-1 or Virtual i/o Glasses, then select the Stereo Camera option when using it. On a normal 2D display this option is disabled. Another option that you might want to include is Generate Back Faces. This option is used when you have worlds full of polygon meshes. Normally, only one side of the polygon mesh is visible-the front face. When you go behind it, you can no longer see it because there is no face defined for you to see. This option makes sure you can see it from both sides.

The Navigation Bars option turns the bar across the bottom of the window on and off, while Optimize Window Size controls the size of the viewing window to get the best rendering speed. The Save Settings As Default option is self-explanatory.

Other VRML Browsers

After such a long introduction to Live3D, it's time to introduce a few of the other available browsers. The first pair are VRML 1.0 browsers that are knocking on the door of Live3D in terms of quality, and are better in some respects. The second pair are the only two VRML 2.0 browsers at the time of writing. They are what have been used to test the examples in this book.

One of the interesting things about browsers is that even on the same machine the coloring and lighting can be completely different for the same scene. To demonstrate this, the same scene has been used for each pairing of Objects. The VRML 1.0 scene comes from Jeremy Leader's Airlink Zone (http://www.softronics.com/users/jeremy/world.wrl). There is a larger problem in VRML 2.0 because the current browsers support different languages for scripting, so some of the sample files supplied with each of the products had to be used.

Intervista's WorldView

The first browser comes from Intervista. WorldView is available either as a standalone program or as a plug-in to Netscape 1.x and above, as well as for Microsoft's Internet Explorer. WorldView has one advantage over Live3D in that it can run with whatever your favorite browser environment is. The screen shot presented in Figure 13.7 shows the standalone version.

Figure 13.7: InterVista's WorldView Browser.

One of WorldView's nice features is its ability to nominate your own camera positions while navigating a world and then return back to them. The rendering is very smooth, but it isn't very accurate for handling mesh objects.

Chaco Communications VR Scout

VR Scout was the first browser released that didn't belong to Silicon Graphics. As a result, it's one of the most developed and stable browsers of the current crop. (See Figure 13.8.) It is also one of the strictest browsers in terms of compliance with the VRML 2.0 specification. If your file doesn't pass this test then you should definitely go back and fix it up until it does.

Figure 13.8: Chaco's VR Scout.

The rendering of objects with VR Scout is more accurate than WorldView-particularly large mesh objects, but this means that the performance is not as good-even though both programs have the same underlying rendering library. In my general experience, it seems to be about half the speed, although it will be different for each person. Accurate measurement is really not possible.

SGI's CosmoPlayer

When VRML changed file format so radically from version 1.0, it meant that its Open Inventor-based browser, WebSpace, was no longer able to support VRML 2.0. So they started from scratch.

CosmoPlayer comes with its own standalone converter so that it can be used for VRML 1.0 files. (See Figure 13.9.) This sometimes causes problems with files that aren't quite VRML 1.0-compliant because it won't display them or, even worse, only half displays them. The converter supports Netscape's Spin and SpinGroup extension nodes and turns them into legal VRML 2.0 files using the standard nodes.

Figure 13.9: Silicon Graphics' CosmoPlayer. This early beta contains a different dashboard from what you will see in the final product.

CosmoPlayer supports JavaScript for programming simple behaviors. While this does limit some of the potential functionality, all your common behavioral tasks can be constructed. Only if you are doing some very complex worlds using networking will you need to use something else. It is available only as a Netscape plug-in.

Sony's CyberPassage

CyberPassage was the first VRML 2.0 browser to be available. (Yes, Sony does produce things other than TVs and stereo systems.) In the second version, it now supports VRML 2.0 and retains the same svelte interface of the first version. CyberPassage operates only as a standalone product, which is a bit of a pity, but its very fast rendering puts it ahead of CosmoPlayer on most aspects. (See Figure 13.10.)

Figure 13.10: The black interface of Sony's CyberPassage makes it fit in with the rest of Sony's electronic products.

CyberPassage supports Java for scripting, which makes it much more extensible when you need to do that little something extra, such as talking to a network or running multithreaded behaviors within a script. It still retains its multiuser capabilities from the first version, allowing you to participate in virtual worlds with people from around the globe in real-time. Current multiuser-capable browsers are discussed in further detail in Chapter 22, "Adding Interactivity: The Future of VRML."

Designing VRML Worlds

As HTML is designed purely for document formatting, VRML is designed for 3D VR scenes. Most of the rules for creating Web pages also apply to creating 3D worlds. If you create a 3D scene, make sure that it's interesting and offers the user something to do. Similarly, if you create a plain HTML page with no headings, just pure text, it too will be boring-ensuring that visitors only visit once.

Suppose that you create a Web page that looks absolutely stunning, but it takes twenty minutes to download. How often do you expect people to visit? You must apply the same rules to VRML worlds that you create. By its nature, VRML creates larger files than HTML, but you can keep things to a reasonable level. Keeping down the use of large images (textures), sticking to using color only, and using simple primitives are some techniques. Chapter 18, "Tricks to Optimize Your VRML Worlds for the Web," presents some of the more frequently used methods to optimize your creations and keep people coming back.

An outstanding HTML Web page can be put together in a few hours-if you have all your resources ready to go. Because VRML is more complex, this is not usually the case, even when using a GUI construction tool. It always pays to spend some time planning what your new world will look like in all three dimensions.

You can create a Web page in a number of ways. You can use a plug-in to common word processing packages (Internet Assistant for MS Word), a standalone application (Sausage Software's HotDog or MS FrontPage), or create it all by hand in the text editor of your choice. Equivalents exist for the VRML world builders. You can export files from packages like AutoCAD and 3D Studio, use standalone dedicated applications like VRealm Builder, or use a text editor. However, with the pace at which VRML is developing, you'd better become comfortable with the text editor. The best worlds are still created by hand, particularly when it comes to creating behaviors in VRML 2.0.

Simplest First: Using a Text Editor

You thought you could throw out Notepad because some great HTML editors are now available and now you're being told to get it back out again! Just as with HTML, you can create VRML worlds with nothing more than a simple text editor. Indeed, if you're seriously considering using VRML 2.0, then for the moment it is the only way of creating worlds.

Even once some modeling tools become available it has been the experience of most current VRML developers that you need to get into hand-editing the file after finishing with the modeling tool. This is particularly true with VRML 2.0, because the first generation tools only output static scenes which need to be added to your own behaviors.

The next chapter discusses the creation of basic VRML files from scratch. For the moment, you can put the editor away as you look at a few of the current VRML 1.0-based software available.

VRML Exports from Traditional Tools

One of the first ways that complex VRML models were constructed was with non-VRML modeling tools like AutoDesk's 3D Studio and Caligari's trueSpace. These tools exported to a standard format like DXF, which then had a third-party converter like WCTV2POV change that into VRML. This provided a very quick working base for many VRML worlds because they could leverage existing knowledge to get going.

Today a number of these tools contain plug-in exporters that can automatically produce VRML output files. One of the most widely used is Syndesis Corporation's Interchange, which acts as a plug-in file exporter for most popular modeling tools.

One of the more interesting results of VRML is the number of software companies that have released separate, dedicated VRML authoring tools, which are based on their non-VRML modeling tools. The next section looks at several of these.

Another approach that many of these companies are taking is to build VRML export options right into their modeler. One example of this is Ray Dream Studio, whose 4.1 release offers the ability to save your file as a VRML 1.0 file. The following steps illustrate how this is done:

  1. Set up your scene by positioning your objects, lights, cameras, and such.
  2. Save the file as a VRML 1.0 file by selecting the File | Save As command. Select VRML as the file type and give the project a name. Ray Dream responds with a message box that warns that some elements will be lost if not saved in Ray Dream's native format, which is true. Compare the images in Figure 13.11 and 13.12.

    Figure 13.11: An image rendered with Ray Dream Studio.
    Figure 13.12: The same scene exorted and viewed as a VRML 1.0 file.
  3. Load the VRML file into a browser to view it. Notice how many of the details have been lost. When converted, the resulting file was 206KB and included fifty 2KB material images used to map textures.

Judging from the size of the resulting VRML file, you need to use caution when exporting VRML files with traditional modeling tools. Some of these issues are covered in the following sections.

Export Issues with trueSpace, 3D Studio, and Other Tools

The problem with many non-VRML tools is that they don't understand VRML. They export everything as high-detail, large polygon count models, rather than take advantage of the basic primitives like square, cone, and cylinder to produce much smaller file sizes. Reduction of polygons has been known to cut file sizes by a factor of five and more when edited to use VRML primitives.

Before exporting, you really need to strip the scene down. Replace any texture maps that you really don't need with basic colors, and throw away any modeling details that don't really add to the scene. For example, the Viper model that you saw earlier included an elaborately detailed engine underneath the hood. This would have been worthless in the VRML world, because for anyone to see it they would have to go inside the car-and at that close range they wouldn't be able to tell what it was anyway.

The other major problem is that some programs produce incorrect normals for polygon meshes, particularly when exporting to DXF format. One of the suggested workarounds is to load the DXF file into a CAD-type program, get it to regenerate the face normals, and then resave it as DXF before conversion to VRML.

The next chapter looks a little more deeply into the export and conversion issues.

World Builders: Tools from the VR Community

Like all things, the best way to produce a product is to use a tool designed for the job. There are a wide range of tools available, ranging from those that barely hide VRML from you to those that could create any sort of file format. This section examines three of the most popular tools used in the VRML community today. They are all VRML 1.0 tools, but you should expect their companies to come out with upgraded versions that export to VRML 2.0 any time now.

Each of the tools presented has a different perspective and frequently many people use all three products to produce the final scene. The strengths and weaknesses of each product are presented so that you have a good understanding of how to combine them to produce the required result.

IDS Software's VRealm Builder

If you really want to learn VRML while you're creating a scene, then VRealm Builder is the software for you. It presents a four-view layout on the right side while you see the structure of the VRML file being graphically produced on the left. (See Figure 13.13.)

Figure 13.13: VRealm Builder, used to construct the basics of my homeworld.

The best part about using VRealm Builder is the real-time updates of the objects in the viewing windows. As you adjust the numbers in the dialog boxes, the objects change in response to your input. This enables you to fine-tune the look of objects accurately and quickly, without having to go through the save/reload cycle every time you make a change.

VRealm Builder is very good at ensuring strict file syntax so you know that the output files will be correct. It won't enable you to insert things in the wrong order, or where they are not supposed to be. For the newbie learning VRML, this is a very handy thing.

In the beta 3 version that was available for testing, VRealm Builder had a number of key features missing, such as mesh objects and reuse of pre-existing objects in the scene. When it comes to building very large files, node reuse is critical to maintaining small file sizes. The other problem of significance to the world builder is that it defines names for every node, even when they're not needed, which is also responsible for file size bloat and can contribute to other problems. VRealm Builder can read standard VRML 1.0 files, providing they don't contain meshes and node reuse.

Another small issue with VRealm Builder's beta version was the lack of drag-and-drop node editing. As is demonstrated in the next chapter, VRML contains a hierarchy of nodes. It would be nice to be able to pick up and redistribute the node organization within the scene graph.

Caligari's Pioneer

Pioneer is a spin-off from Caligari's trueSpace product, which was demonstrated in the first part of this book. It contains the same user interface, but has been modified to handle the VRML way of doing things. Pioneer used to be known as Fountain but not much else has changed about it. An example of Pioneer in action is shown in Figure 13.14.

Figure 13.14: Caligari's Pioneer in action, producing Bubsy's showroom from the second chapter.

Where Pioneer really excels is in the production of free-form shapes based on polygon meshes. You can play with these with so much ease it's a wonder that many other tools haven't done a similar thing. Another good thing about Pioneer is its ability to produce extruded text. It's amazing how often you come across 3D text just floating in space in a VR world.

What's not so good about Pioneer is the standard scene that Home Space Builder is good at. Generally, what most people seem to do is create the individual objects using Pioneer, the core of the scene with HSB or VRealm Builder, and then stitch everything together in a text editor.

Workshop Wrap-up

By now you should have a reasonably good idea of what you can do with VRML, and how it looks and feels. The CD-ROM contains a list of links to places where you can find VRML software. Now it's time to learn VRML 2.0. Apart from occasionally mentioning version 1.0, the rest of the book doesn't look at it any more. The bridges have well and truly been burned.

The next two parts of this book examine a lot of different areas:

Part V contains advanced topics in VRML. In the previous sections you could have easily created the same thing in VRML 1.0, which is not the point of VRML 2.0. Version 2.0 is all about adding interactivity to your world. Things move and respond to your presence.

Q&A

Q:
What sort of computer do I need to play with VRML?
A:
In the days of VRML 1.0, a 486 DX2/66 with 8MB of RAM was considered the minimum system. However, with the advent of Windows 95 and Java, VRML 2.0 browsers are now saying that a minimal system should be a Pentium with 12MB RAM, so you should consider a Pentium 100 with 16MB of RAM the target. RAM makes a very big difference in performance when running VRML 2.0 worlds, so you should aim to have as much as you can afford. The computer used to develop the examples in this book is a Pentium 90 with 32MB RAM and a 3D accelerator card and runs Windows NT.
Q:
Which pieces of software do you recommend for creating VRML worlds?
A:
If you're looking only at VRML 1.0, then the three products mentioned in the previous section are your best bet. Trial copies of these are included on this book's CD-ROM-along with the VRML 2.0 browsers (in their beta form at the time of publishing) to get you started. The tool you're most likely to use you're no doubt already familiar with-a text editor. All the sample code displayed in this book is handwritten, except where models have been included from companies like Syndesis.
Q.
Where should I start looking for good worlds to visit?
A:
The VRML repository (http://www.sdsc.edu/vrml/) contains a list of many VRML sites. You also can try searching on VRML in one of the many Internet search engines. The third place to look is at Terra Vista. Terra Vista is a group that grew from the VRML development list, where people gather to learn how to apply their knowledge of VRML in a practical sense. There you'll find many of the people involved in the standards development also testing what they're writing. You'll find many varied worlds, from ancient Wessex to fantasy space sites, so it should give you a wide range of ideas to start from. You can even come and build your own house in cyberspace. Terra Vista's homepage can be found at http://www.terravista.org/.