Notice: This material is excerpted from Special Edition Using HTML, 2nd Edition, ISBN: 0-7897-0758-6. This material has not yet been through the final proof reading stage that it will pass through before being published in printed form. Some errors may exist here that will be corrected before the book is published. This material is provided "as is" without any warranty of any kind.
by Jim O'Donnell
The advent of the World Wide Web (WWW), the HyperText Markup Language (HTML), and Web browsers capable of viewing HTML documents including text, graphics, and sound revolutionized the Internet. Previously, the most common way of exchanging information was through e-mail and Usenet discussion groups. Because these methods could handle text only, the only way to exchange graphics, sound, or other binary information was for the sender to encode it and the receiver to decode it. HTML and the WWW changed this process by enabling you to create true multimedia information sites on the Internet, offering real-time display and exchange of text, graphics, sound, and other information.
The next big step beyond HTML for information distribution on the Internet may be the Virtual Reality Modeling Language (VRML). HTML's hypertext links and the Web browsers that make use of them create an essentially two-dimensional interface to Internet information. VRML expands this interface by allowing the creation of three-dimensional worlds on the WWW, offering a much more natural way of presenting information.
VRML, the Virtual Reality Modeling Language, is an authoring standard, currently defined at version 1.0, for creating three-dimensional documents on the World Wide Web. These documents create VRML worlds that a user can navigate in and around using the capabilities of a VRML-compatible browser. The current standard is file-based, involving the transfer of 3-D scenes to the local computer-VRML source files usually have a .wrl extension-after which all navigating through the scene is done there. And, like HTML documents, VRML worlds can contain links to other documents, graphics, text, HTML documents, or other VRML worlds.
Freeware, shareware, and commercial VRML tools are becoming widely available.
Like HTML, VRML is a fast-evolving standard for conveying information over the World Wide Web. If you are going to be working with VRML a lot, you would do well to frequently consult newsgroups and other Internet and WWW resources (such as those mentioned in the "VRML Resources on the Internet" section at the end of this chapter) that deal with VRML, its tools, and its standards.
Included with the Windows WebFX VRML browser, a plug-in module for Netscape Navigator 2.0 that is discussed later in this chapter, is a series of sample VRML worlds. To get a feel for what navigating around a VRML world is like and how it is different from regular HTML, you look at a simple VRML world in this chapter.
Figure 17.1 shows a sample VRML world called Netscape.wrl, which, when loaded, shows an up-close view of the familiar Netscape "N." After you install the WebFX plug-in, Netscape automatically calls WebFX when a VRML world is loaded. (You know it has been called successfully if you see the WebFX Navigation Bar at the bottom of the browser window.) At this point, this world looks like an HTML imagemap. The pointer even turns into a hand pointer when you move it over the "N," indicating the presence of a hypertext link. However, you can navigate around this three-dimensional world.
When you enter this sample VRML world, you see the familiar Netscape "N."
WebFX beginners can click the ? (question mark) WebFX button to turn on the Heads up display. Then, when you click the fly button, the display shown in figure 17.2 appears, indicating how to navigate around while you're in WebFX fly mode.
If you turn on the Heads up display, WebFX gives you hints about how to navigate the VRML world.
The quickest way to show the three-dimensional nature of the VRML world at this point is to press and hold down the Z key, which is used in fly mode to thrust backward. You quickly see the Netscape "N" world recede into the distance, as shown in figure 17.3. The star field in this figure is a background image allowed by VRML.
By pressing Z to thrust backward, you can move away from "Netscape world."
After you move some distance from the Netscape world, you can reverse course and approach it again by pressing the A key to thrust forward. Using this key, you can retrace the steps from where you began to thrust backward-you can also keep going to get a much closer view of the Netscape "N" (see fig. 17.4). You can even continue to thrust forward until you are past the "N," in which case you see only the star field background. At this point, you can turn around by pressing the right- or left-arrow key, and you actually move behind the "N" world (see fig. 17.5).
By pressing A to thrust forward, you can move right up to the Netscape "N." You can even move through and beyond it!
You can even move past the object and turn around to see it from behind.
It's easy to get lost in a VRML world sometimes. If that happens in WebFX, right-click the screen and choose Viewpoints, Entry View to return to your starting point.
Because the WebFX VRML browser is a Netscape plug-in, you might suspect that, just as with an HTML document, you can link together VRML worlds using hypertext links. You can even interchangeably link VRML worlds and HTML documents! Other VRML browsers offer similar capability, whether they are Web browser plug-ins, helper applications, or stand-alone applications.
In this chapter's sample Netscape world, for instance, when you place the pointer on the "N," the pointer turns into the hand pointer, indicating the presence of a hypertext link. As shown in figure 17.6, the hand pointer and a label for the hypertext link, which appears in the upper left, indicate where the link will take you. In the case of this Netscape world, as you might expect, clicking on the link takes you to the familiar Netscape HTML home page.
Just as when using new HTML enhancements, if you would like to add VRML content to your Web pages, you should keep in mind that not everyone has the necessary software to view it. Therefore, you should also convey the information included in your VRML using conventional means.
When you move the pointer over an object that is a hypertext link, such as an HTML anchor, it turns into the hand pointer, and a URL label for the link appears in the upper-left corner of the window.
In many ways, VRML is an extension of HTML; the source code for HTML documents and code for VRML worlds are very different, but the concepts are similar. The differences between the two lie in the fact that HTML documents are two-dimensional, whereas VRML worlds are three-dimensional. An HTML document is like a bulletin board, where text and graphics can be displayed, and each can also represent a hypertext link to another place in the document, or another document entirely. On the other hand, a VRML world is more like a room (or world, I suppose, if it's big enough) filled with three-dimensional objects. Because of the three-dimensional nature of the VRML world, you can navigate around and see objects from all sides. In VRML, like HTML, each of these objects can also be a hypertext link.
With a VRML-compatible Web browser, users can navigate back and forth between HTML documents and VRML worlds with no additional steps. This compatibility is achieved either by means of a plug-in module such as with WebFX and Netscape Navigator, by setting up a VRML browser as a helper app for a Web browser, or by using a stand-alone VRML browser that also supports HTML. Inside an HTML document, if there is a hypertext link to a VRML world, it will be loaded and the Web browser placed into a VRML browsing mode. Conversely, HTML links from a VRML world will lead back to conventional web page viewing.
Just as with HTML documents, VRML worlds are defined by VRML source code. However, as you might imagine from the fact that VRML worlds are three-dimensional, the source code is likely to be much more complex. Figure 17.7 shows the top of the VRML source file for the Netscape world. The VRML language is much more like C/C++ than it is like HTML.
VRML "worlds" are defined by VRML source code as shown here.
Many tools are currently being written to allow HTML authors to create Web pages and documents more easily. You can, however, create fairly sophisticated Web pages programming directly in HTML. Because of the complexity of VRML, however, it would be very difficult to do the same-to create a VRML world by directly writing VRML code. Consider the Netscape world, which consists of only a few objects-the Netscape "N," the sphere upon which it rests, and the "glow" around them. The source code to describe the Netscape "N" is partially shown in figure 17.8. Even a relatively simple object like the "N" is described by a long series of coordinates. Programming this object directly would be very difficult.
VRML 3-D objects, such as the Netscape "N," are defined by the coordinates of the lines that make up the object.
To be able to create VRML worlds, you need to use a VRML authoring tool for creating VRML 3-D objects and building them into a world. Libraries of VRML objects are also available on the Internet.
A variety of tools for viewing and creating VRML worlds-freeware, shareware, and commercial-has begun to appear. Because of the relative infancy of the VRML version 1.0 standard, most of these products are still in the beta test stage and are available for at least trial use through the Internet. VRML tools are primarily being developed for two platforms: Windows (3.1, Windows for Workgroups, 95, and NT) and UNIX (primarily SGI and Sun) machines.
The following are some of the VRML browsers currently available, along with the platform for which they are made, and where on the WWW to look for more information:
The VRML Repository, whose URL is shown at the end of this chapter, is an excellent resource for finding the latest VRML tools and examples available.
VRML worlds can be considerably more complex than HTML documents, which makes sense considering that they are three-dimensional models. A full discussion of creating VRML worlds would require a book in itself, but in this chapter you go over the types of tools that you are liable to require. Later in the chapter, you find a simple example of creating a VRML world using Fountain, by Caligari Software.
To get a better feel for what using a VRML browser is like, you install and try out one of them, WebFX by Paper Software, in the following sections.
The version of WebFX used herein is the WebFX plug-in for Netscape Navigator 2. To install this plug-in, follow these steps:
The WebFX plug-in is usually meant for a specific version of Netscape Navigator. Make sure you have compatible versions before installing or you may have unpredictable results.
When WebFX has successfully installed, you get a dialog box similar to this one. WebFX now automatically runs when a VRM source file is encountered when using the Netscape Navigator.
WebFX offers three different modes for navigating around and through a three-dimensional VRML world: walk, fly, and point. Other VRML browsers may have different means of navigation-the VRML source file defines the layout of the world, but the browser dictates how you travel through it.
To get some help in remembering what actions work in each mode, click the ? (question mark) WebFX Navigation Bar button, which enables the Heads up display. If you then click the walk button, you have the following navigation options:
When you place WebFX in fly mode, the mouse and keyboard actions change to the following:
The last navigation mode of WebFX, point mode, allows you to navigate the VRML worlds as follows:
I've loaded a VRML world, and I can't see anything! What should I do?
Sometimes the initial viewpoint for a VRML world is poorly chosen, or you may have navigated yourself around until you are lost. In this case, the best way to try to find your way, in any navigation mode, is to do a right-drag, holding down the right mouse button and moving the pointer around to rotate the entire VRML world. Usually, you will be able to get the actual objects into view this way, and you can then use the navigation means discussed above to move in closer.
WebFX allows you to customize its behavior in several different ways. This customization is achieved using a pop-up menu and submenus that first appear when you right-click. The main pop-up window shown in figure 17.10 then appears.
Right-clicking in the VRML screen opens a pop-up menu that you can use to configure WebFX. The Entry View selection under the ViewPoints submenu returns you to where you entered the VRML world.
Each of the six entries shown in the main pop-up window gives you different options for customizing WebFX. The following describes the most important submenus, but you should feel free to experiment with these and the other options to get a feeling for what you can do with WebFX.
WebFX allows you to control how much detail is shown in the three-dimensional image.
If you are using a slower computer, you can improve the performance of WebFX by changing the amount of detail that is shown.
The Heads up Display submenu allows you to control what information is shown in the WebFX Heads up display.
In this section, you examine an example VRML world I found while surfing the Internet. It is a good example of an achievement with VRML worlds that might not be as effective with a standard HTML Web page. It also demonstrates how these two types of documents-representing two ways of presenting information-can be effectively used in tandem.
Using Netscape Navigator 2 with the WebFX plug-in installed, I connected to the following URL:
Note the .wrl extension, denoting a VRML world source document. After the connection was made by Netscape, the WebFX plug-in was called, the VRML world source was downloaded, and the image shown in figure 17.13 appeared. Although it isn't obvious, this figure shows the University of Essex campus, as seen from a long way off.
The entry point to the University of Essex VRML world.
To get a closer look, put your WebFX in fly mode and fly in toward the VRML world. Give yourself a little bit of altitude to be able to see more of the campus buildings. As you get closer, you'll see the campus layout shown in figure 17.14.
You can fly in closer to the university and see a view of the campus.
As you learned earlier, VRML worlds and HTML documents can call one another interchangeably. The University of Essex site uses this capability to not only convey the three-dimensional layout of their campus, but also to allow visitors to learn more about the different campus facilities. Consider figure 17.15; I placed the cursor over a building that has a hypertext link, indicated by the presence of the hand pointer and the URL label in the upper-left corner of the screen. Apparently, this building is the University Library. When I double-clicked, an HTML web page was called (see fig. 17.16), giving information about the library.
By placing the pointer over a given building and clicking...
...you can jump to an HTML document with information about it.
Because the VRML world is a three-dimensional model, you can look at it from any angle, including from below (which isn't very helpful) and from above, as shown in figure 17.17, giving you a useful map of the University of Essex campus.
You can even fly up high enough and look down to get an aerial map of the campus.
Discussing VRML authoring would take a whole book, but we'll take a quick look at what it would entail here. To do so, use Caligari Software's Fountain.
Unless you do three-dimensional modeling for a living, you may find that creating VRML worlds is not the easiest thing in the world. To improve your productivity and the ease with which you arrive at your final product, it's probably a good idea to sketch out what you want your world to look like on paper before diving into Fountain or another VRML authoring program.
See Special Edition Using VRML
To install Fountain, follow these steps:
When Fountain has successfully installed, you get a dialog box similar to this one.
Now you're ready to create a simple VRML world using Fountain.
To create a simple world with one object and a hypertext link, follow these directions:
After selecting the Text Primitive button, you can type the desired text.
With the text object selected, by selecting the Sweep button, you can make the text three-dimensional.
You can attach a URL link to any VRML object. This link can point to an HTML document.
At this point, save the document by choosing File, Scene, Save. Use the file name jod.wrl. To see if you were successful, try to load this file using Netscape Navigator with the WebFX plug-in module installed. You then see the screen shown in figure 17.22. You can see that the hypertext link is there-when you move the cursor over the text object, it turns into a hand pointer and the URL label appears in the upper-left corner. Because this model is three-dimensional, you can navigate around, getting closer or farther away from the objects there, changing the viewpoint (see fig. 17.23).
You can load my simple VRML world using Netscape Navigator and view it using the WebFX plug-in.
Because this world is three-dimensional, you can move in and around the world's objects. If you click the JOD text object, the hypertext link takes you to my HTML home page.
This example creates multiple objects and gives an idea of how to manipulate light sources and change the color of objects. In this one, we attempt to achieve a similar effect to the Netscape "N" world shown at the beginning of the chapter.
First, you create a sphere to be your "world." The 3-D arrow points to the current object.
Right-clicking on the Text Primitives button allows you to pick your font and font size.
After typing in the letters JOD, you can hit the Sweep button to create the 3-D look.
You can move the JOD on top of your "world," even embedding it in the top.
The Paint Faces button brings up these panels, giving you options for what color and style to use to paint an object.
After painting your world, you can adjust where and what color the light sources are.
Moving the light source in front of your "world" brightens its appearance.
You can save this world as a WRL file.
You can view this sample world using the WebFX plug-in for Netscape Navigator.
By navigating around this sample world, one of the hazards of working in three dimensions becomes apparent. As shown in figure 17.33, you have to remember to work with all sides of an object-when you are coloring objects, for instance, be sure to get all sides!
You can see one of the effects of working in three dimensions-I didn't paint the back of my world!
After you have your system set up to view VRML documents, you'll want to start cruising the Internet and the World Wide Web to see what VRML resources and worlds are available. The list is growing every day. Following are a few of the bigger sites that will direct you to many other VRML resources-browsers, authoring tools, worlds, and object libraries: