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