VRML concepts

What is VRML?

  • VRML = Virtual Reality Modeling Language
  • VRML is a scene description language for creating 3D objects and evironments
  • VRML was primarily designed for delivering virtual environments over the Internet
  • VRML is an ISO standard

Applications

VRML can be used for a large variety of applications:

  • Multi-user environments
  • Design review
  • Product demonstrations
  • Games
  • Education
  • Training
  • Simulation
  • etc...

Brief history

  • First International Conference on the World Wide Web (May, 1994), Mark Pesce and Tony Parisi present "Labyrinth", a tool for visualising the Web
  • A consistent cyberspace defined using VRML is proposed to improve navigation of the Web, but discussion and activity that followed resulted in a specification for a common language for defining 3D scenes rather than an interface to the Web
  • VRML 1.0 (May 1995), a language for defining static virtual worlds with Web anchors, based on Silicon Graphics' OpenInventor file format
  • VRML 2.0 (August 1996) is a much more powerful language for defining dynamic virtual worlds, with animation, user interaction and program scripts
  • VRML 97 (April 1997), ISO/IEC DIS 14772, is a revision of VRML 2.0

Key concepts

Visualiser

  • Virtual environments are realised by a player (browser) that interprets, executes, and presents VRML files

File Structure

  • A VRML file contains at least a header and nodes

Nodes

  • Nodes have field and field values that describe their attributes

Scene Graph

  • Nodes are arranged in a 'scene graph'
  • Grouping nodes can contain any number of other nodes (children)
  • An Inline node is a kind of grouping node where the child nodes are defined in another VRML file

Shape nodes

  • Shape nodes are used to define shapes with appearance and geometry
  • Predefined geometry nodes are Box, Cone, Cylinder and Sphere nodes
  • Complex shapes can be built by grouping predefined shapes together and/or using a PointSet, IndexedLineSet, or a IndexedFaceSet, and/or using an Extrusion node

Instancing

  • The same node can be reused in a scene graph by instancing it. An instance is a kind of alias. The keywords DEF and USE are used to handle instancing. DEF is also used to simply name nodes

User Interaction

  • User interaction is handled using Sensor nodes

Prototypes

  • New node types can be created using prototype definitions

Events

  • Most node types have eventIn and eventOut fields
  • A 'route' can be used to connect a node's eventOut field to another node's eventIn field, enabling nodes to send events to each other
  • Events typically contain values that affect the state of the receiving node
  • Dynamic environments can be created by wiring nodes together into circuits



Michael Louka, October 10, 2001