Techniques of Perception in VRML97
by n_polys 08_2001

Visual Perception
  • We need light and an eye (camera) to see anything!
  • On a 2D screen, the environment is actively rendered from a user ‘Viewpoint’. 
    Depth information is recovered in the Field of View by occlusion and relative size.  Recent advances in stereo-optic goggle displays means that the environment can be  rendered for 2 eyes, giving the added spatial effect of ‘binocular disparity’.
  • fieldOfView effects visual mapping of scene to screen(like a Fish-eye lens or telescope)
  • You can use the Binding Stack and ROUTEs to dynamically change the current Viewpoint node.  The first bind-able node encountered in the file will the bound and placed at the top of the binding stack.
  • Viewpoints can be animated in the same way as a movie-camera runs through a shot.  They are also affected by their parent Transform(s).
A ‘Transform’ node manifests and locates its children nodes within the world space and scene hierarchy.  ‘ROUTEs’ allow events and information to pass between nodes.  In most cases, a named (DEF’d) Transform node acts as the ROUTE destination for animating the translation and rotation of objects.  The Viewpoint node’s ‘position’ field is also exposed and so can receive similar animation data.  This idea of nested parent/child nodes and their results has been explored in many other tutorials and books, so we will not delve into it here. It is important to remember that it is a compounding, cumulative process as one adds additional parent Transforms. 

We will, however, emphasize that good story-board planning and scene design will determine the most efficient scene graph (node hierarchy).

The Viewpoint Node:

  • position
  • orientation
  • fieldOfView
  • description
  • jump
  • set_bind

Viewpoint example

Explore this solar system and space station by paging through the different viewpoints.  If you see any red balls, see if you can guess what Viewpoint field theyare animating. 

Lighting Nodes:  
on, intensity, ambientIntensity, color

  • Pointlight (attenuation)
  • DirectionalLight (like sun, lights sibling and offspring)
  • Spotlight (direction, beamWidth, cutOffAngle)

Light Example: types

The Dials control the fields of different lights in the scene and spheres turn the lights off and on.
Spheres:

Top: Spotlight on/off

Middle: Directional Light on/off

Bottom: PointLight on/off

Dials:

Pointlight:Red

Green

Blue

Intensity

DirectionalLight: intensity

Spotlight: beamWidth

Click and drag on different objects in the scene- you can rotate them with a SphereSensor node.


Illuminating objects:

  • Normals (for tight lighting control)
  • Appearance and Materials: shininess, transparency, specular, emmisive, and diffuse colors in RGB
  • creaseAngle : shading across polygons of the mesh
  • Textures with (or without) alpha channels (transparency) can be applied and mapped to geometry as fixed or animated maps.  Standard formats: .png, .jpg, .gif
  • Currently, shadows must be faked with textures or other techniques. 
Multi-texturing and advanced appearance functionality was shown by leading browser companies recently in X3D extensions dealing with these exact issues.

Lighting example: objects

These objects show the effect of creaseAngle values.  the demo also has dials to interactively control an object’s transparency and shininess.

next page

Table of Contents: Abstract

Current features
* Graphical User Interfaces: 2D, 3D, and Web3D
* Techniques of Perception in VRML
Onsite Features- Europe:
* Echtzeit AG
* Lunatic Interactive
* PhilemonWorks

Previous Features
* Interactive Web Graphics with Shout3D Book
* Web3D 2001 Coverage
* Core Web3D Book
* Spazz3D: Authoring-tool
* Game Programming in VRML
* State of the Industry
* The X3D Initiative (2000)
* Alphabet Soup: Our glossary of technical acronyms

What do you think of this article?
Excellent! 
Informative 
O.K. 
Not so hot 
Drivel

What did we miss?