next up previous contents index
Next: 1.2 Basic static VRML Up: 1. Starting with VRML Previous: 1. Starting with VRML


1.1 Introduction to the VRML standard and 3D Graphics

VRML stands for ``Virtual Reality Modeling Language''. It allows to specify dynamic 3D scenes through which users can navigate with the help of a VRML browser. VRML scenes can be distributed over the World-Wide Web and browsed with special VRML browsers, most of which are plug-ins for Netscape or Internet Explorer. VRML is well integrated with the WWW, e.g. VRML scenes can be connected with other VRML scenes (as well as other WWW formats) via URLS.

The previous standard was VRML 1 and allowd to specify static scenes only. Forget about it! The current standard is VRML 97, which in its draft phase was known as VRML 2. The VRML 97 Specification contains many changes to the VRML 1 language. It adds audio, interactive objects, behavior and scripting among other things. In this sense, VRML 97 is far more complex than VRML 1.

A future version (or layer of VRML) will add ``multi-user shared experience'', i.e. some kind of standardized interactive multi-user technology.

1.1.1 What is VRML?

The Virtual Reality Modeling Language (VRML) can been seen as a 3-D visual extension of the WWW. People can navigate through 3-D space and click on objects representing URLs (including other VRML worlds). Often, VRML is pronounced like ``Vermal'', not ``V-R-M-L''.

As Mark Pesce [Pesce, 1995, p. 16] points out, the WWW had two fundamental dimensions: connectivity (the http protocol) and interface (i.e. the rendering of content, especially HTML and embedded URLS). VRML inserts itself seamlessly in the Web's connectivity. VRML browsers can access other VRML files via an URL. They can access any other format that then is passed to another application (e.g. an HTML browser or a HTML window). On the other hand HTML browsers can be configured to fire up VRML helper applications (or plug-ins). HTTP servers, finally, can be configured to tell the client that a VRML (*.wrl) document is transferred.

A short word on its history: The major impulse for VRML can be traced back to a ``birds of the feature sessions'' on ``Virtual Reality Markup Languages'' at the First International Conference on the World-Wide-Web, May 25-27, 1994 at CERN in Geneva. It's conceptual origins are older, e.g. (a) Science Fiction literature (e.g. [Gibson, 1994], [Stephenson, 1992]), (b) Mark Pesce's, P. Kennard's and Toni Parisi's ``Labyrinth'' system ([Pesce et al., 1994]) and proposal for a 3-D navigation and representation scheme and (c) more generally 3-D computer graphics (including VR). Based upon SGI's ``Open Inventor'' format, a almost final draft for VRML 1.0 was presented at the second WWW conference in fall 94 in Chicago. On April 3, 1995 SGI presented WebSpace, the first publicly available VRML browser. So all in all it took about a year to set standards and make the first browser available. Since VRML is a relatively simple format building upon a well defined standard, very quickly a number of modeling tools and convertors also became available.

In the next sections we will look at simple static VRML scences. These are built with VRML's symbolic description language. Note different VRML browsers all have a different user interface (e.g. for navigation and object examination). They also render things a bit differently. Most will also give you a ``quality'' choice (e.g. faster renderning and lower quality vs. slower rendering but better quality. For now, let's just assume that the user can move himself though 3D space by moving a camera through the space (and therefore what he sees on the display is what sees ``his'' camera).

1.1.2 VRML resources

On-line resources:

There are several good resources about VRML on the Net. Since links move a lot, no pointers here, see our VRML pointers instead. You will find most everything you want (including links to other indexes).


Note that all of those books do have outdated parts.

Some texts about Virtual Environments

Kevin Hugues' ``From Webspace to Cyberspace'' ([Hughes, 1995]) is good conceptual reading. Version 1.1 is available from Tecfa (locally) in PDF form.

See also our Kaspar's Cyberspace Pointers for things on-line.


The ``VRML 97'' VRML specifications page at the VRML Consortium. A copy is available at Tecfa (downloaded Jan 98)

1.1.3 An introduction to 3D graphics


This is (roughly) how an object is built up:

In 3D Graphics, an object is first defined by its edges (points) in a three dimensional x-y-z space.
When those points a are linked together by lines we get a wireframe rendering of an object.

After the frame has been created, a surface or skin is applied to the object. The surface can have many qualities: color, texture, shininess, reflectivity, etc.

Finally, objects are either lit or emit light. Most objects have been lit by a light source and must be shaded. Shading is the most computer intensive task (see section 1.1.5).

All surfaces can be represented as a set of polygons (that are perfectly flat). Complex Polygons are always split up into triangles by the rendering machine.

Polygons have only one side, the so-called ``normal'' or outside. Therefore, in VRML even flat objects (such as a sheet of paper) are always represented (as very flat) cubes. Note that a cube is composed of 12 polygons (2 triangles for each side) with their ``normals'' outside.

Position and Orientation:

Figure 1.1: The 3 axis of 3-D graphics
\begin{figure}\centering\includegraphics[width=10cm]{axis.eps} \end{figure}

Positions in space are given in x-y-z coordinates:

You can picture the coordinate system with the ``right hand rule'': ``x'' is your thumb, ``y'' the index finger, and ``z'' the middle finger.

Try to remember the image in this figure:

vrml-hand3.gif Orientation of an object is defined by ``yaw'', ``pitch'' and ``roll'' (Imagine what a ship can do):

Therefore, in 3-D graphics there are six degrees of freedom: 3 positions (x,y,z) plus yaw (around the y axis ), pitch (around the x axis) and roll (around the z axis)


There are different sorts of lights and by definition VRML browsers have some ambient light source:

Point Lights
Full point lights

Parallel point lights
Directional Lights have:

Spotlights have an umbra (i.e. a focus expressed in terms of width and how it widens).

1.1.4 Producing VRML

There are 3 (major) ways for producing VRML:

Code VRML by hand. If you like to hand code VRML (which is a good choice for learning how to build truly interactive worlds), consider getting a VRML assisting editor like emacs.

Use a VRML supporting Modeler. There are basically two types of tools you need:
A object creation tool

A space (or ``walk thru'') creation tool such as Cosmos' (ex-Paragraph's) Home Space Builder (the non-profit versions are cheap) or Virtus' Walkthrough Pro.

Use a Filter to transform other 3D Formats into VRML.

1.1.5 Browsers and how to use them

Wich browser ?

Right now (Feb 98) there are good enough VRML browsers for the Win/NT platforms and decent enough ones for Mac and SGI/Irix. See our VRML pointers page for recommendations and section 8.3 on page [*] for a few hints about using and developping for current browsers.


VRML browsers don't have all the same functionalities and they don't have the same interface. Have a look at the documentation, before you start feeling dizzy. The most common navigation means are:

Walk (6 degrees of freedom)

``Plane'' Walk: restricted walk in in x-y or x-y-z axis, heads up/down in y-z axis, etc.

Flight: start/stop flying and accelerate/decelerate.

``Point at'' (or ``Seek''). Jumping to an object, or selecting on with a harpoon and get closer in several steps

``Examine'' mode is special. It can be used to examine (rotate and zoom) either the whole scene or a selected object (or both). An example is Webspace's Examine Mode/ Rotation Globe.

Also, in our opinion browsers ideally should have a ``map view'' Builder, i.e. show the user where he is on a map (2D) or within wire-frame map (3D) of the whole scene.

Help I am Lost:

Don't worry, most VRML scenes can bring you back to the entry point. Search for something like: ``Restore Viewpoint'', ``Entry View'' etc. under ``View(s)'' menus. Else, reload the page and next time, don't walk too fast !

Quality (Speed) of Viewing:

Note: Details and names may be wrong !!!

Quality of rendering and speed have to with the way in which objects are rendered. ``Wireframe'' rendering is very fast, Phong Shading can be quite slow depending on the complexity of the object.

Wireframe (fastest)
Solid (Flat?) Shading: The whole object gets the same shading depending on its angle (fast).

Smooth (Gouraud) Shading (slower): Each polygon is shaded differently

Phong Shading (very slow): Polygons corners are shaded too.

Ray Tracing (impossibly slow on usual end-user's machines): Every point has a different shading.

Note that some browsers (e.g. VrWave) allow you to specify the display type both for viewing (camera stopped) and moving (you move or turn objects around).

next up previous contents index
Next: 1.2 Basic static VRML Up: 1. Starting with VRML Previous: 1. Starting with VRML
D.K.S. - 1998-03-18