VRML History logo

VRML History -- Concepts

Revised at 15 October 1999.
--- VRML separator bar ----

Table of contents

See Table 1 for the table of contents for this clause.

Table 1 -- Table of contents

Table of contents

Time definition
  Valid time and system time

Time variant node semantics
  Time variant and time invariant objects
  Grouping nodes

Navigation
  Introduction
  Navigation paradigms
  Viewing model
  Collision Detection
 

Time definition

System Time and Valid Time

In VRML97 the passage of time in a world is caused by the time sensor generating events as time passes. Browser may cause time to pass in their own speed, but the time events generated by time sensors will normally approximate "real" time. The current time point of "real" time is tnow, the moment when the user see the current representation of the world in the browser. All events defined in the world at te  will be activated when at the first time tnow >= te. However, a past event (at te < tnow ) will never be activated and a future event (at te > tnow ) will not be activated until at the first time tnow >= te.  For better distinction this time is called system time.

A new time dimension, called valid time ([Snod95],[Lan92]), is introduced to allow future or past events being activated at the current system time point tnow. The valid time v specifies the moment when an event or state is valid, was valid or will be valid in the world. It is independent of the system time and may be another property of objects defined in VRML worlds. At the current system time point a current valid time point vnow exists at which the world is visualized by the browser. A navigation paradigm exists to allow user navigation in time dimension, i.e. changing the current valid time point vnow . The current valid time point vnow controls the whole world, i.e. is applied to every object in the world.

Valid time is based on a linear and continuous time model. The granularity of discrete events or the unit of valid time (e.g. second, day, year) is application dependent. By default, the unit of time is assumed to be seconds (see also SFTime).

With valid time, each object can be shifted to a temporal object o: (a0, ..., an, vp) described by the attributes a and by the  valid periodvp. The valid period restricts the time of existence or validity of the object in the temporal world to the  time period [t0, tn): The object starts to exist at t0 (object's birth) and dies at tn. Outside this period the object does not exist, i.e. there is no information or representation of the object available. A temporal object can always be valid, i.e. the valid period specifies (-).
 

Time variant node semantics

Time invariant and variant objects

Integrating valid time moves the formerly only spatial world to a spatio-temporal world with many temporal 3D-objects whose spatial or graphical description may be time-invariant or  time-variant.
Time-invariant objects possess only one non-changeable representation which is valid during the given valid period.
Time-variant objects may have different representations (versions) vi where each is valid at the associated version time period  [ti, ti+1) existing during the valid period of the object:  o: (v: (v0, ..., vn-1), vp: [t0, ..., tn)). If no representation exists at a version time period this simulates the invisibility of the object at this period which is an allowed representation. The set of version time periods of each object is mutually exclusive and sums up to the valid period of the object because temporal objects can accept only one version of itself at each point in valid time.

For a seamless integration of VRML97 in VRML History, by default, every VRML97-object is time-invariant with the implicit valid period  (-).

The  list of consecutive representations one object has during its valid period is called version history. The history of a time variant object may describe a series of discrete representations or a time series (a sequence of discrete values with linked time points shaping a continously changing property).

Grouping node

To determine the period of validity of each object in the world, valid time is integrated in the scene graph yielding a  temporal scene graph (Fig.  1). Time variant and time invariant objects are inserted in this graph hierarchy. They are affected by spatial transformations as described in 4.6.5, Grouping and children nodes. The maximal validity of each child, regardless of being a time-invariant or time-variant object, is given by the version time period of the parent.
Following the branches from the root of the temporal scene graph to the leaves, the period of validity of each branch can be limited again and again by History nodes (circles with time periods inside). The History node can also be the root of a set of children each giving its own mutual exclusive validity. The world specified with the root of the temporal scene graph is always valid, i.e. (-).


Fig. 1: Temporal Scene Graph

Navigation

Introduction

Conceptually speaking, every VRML world contains a viewpoint from which the world is currently being viewed. Navigation is the action taken by the user to change the position, orientation and /or the current valid time point (vnow) of this viewpoint thereby changing the user's view. This allows the user to move through a world or examine an object in space and time. The NavigationInfo node (see NavigationInfo) specifies the characteristics of the desired navigation behaviour, but the exact user interface is browser-dependent. The Viewpoint node (see Viewpoint) specifies key locations, orientations and current valid time points in the world to which the user may be moved via scripts or browser-specific user interfaces.

Navigation paradigms

The browser may allow the user to modify the location, orientation and vnow of the viewer in the virtual world using a navigation paradigm. Many different navigation paradigms are possible, depending on the nature of the virtual world and the task the user wishes to perform. Space-oriented paradigms could be walking, flying or examining an object. For changing vnow a time walking paradigm may be useful.

The NavigationInfo node has a type field that specifies the navigation paradigm for this world. The actual user interface provided to accomplish this navigation is browser-dependent. See NavigationInfo, for details.

Viewing model

The browser controls the location, orientation and vnow of the viewer in the world, based on input from the user (using the browser-provided navigation paradigm) and the space- and time-oriented motion of the currently bound Viewpoint node (and its coordinate system). The VRML author can place any number of viewpoints in the world at important places from which the user might wish to view the world. Each viewpoint is described by a Viewpoint node. Viewpoint nodes exist in their parent's coordinate system, and both the viewpoint and the coordinate system may be changed to affect the view of the world presented by the browser. Only one viewpoint is bound at a time. A detailed description of how the Viewpoint node operates is described in 4.6.10, Bindable children nodes, and Viewpoint.

Navigation is performed relative to the Viewpoint's location in space and time and does not affect the location, orientation and current valid time point values of a Viewpoint node. The location of the viewer may be determined with a ProximitySensor node (see ProximitySensor).

Collision detection

A VRML file can contain Collision nodes (see 6.8, Collision) and NavigationInfo nodes that influence the browser's navigation paradigm. The browser is responsible for detecting collisions between the viewer and the objects in the virtual world, and is also responsible for adjusting the viewer's location when a collision occurs. Browsers shall not disable collision detection except for the special cases listed below. Collision nodes can be used to generate events when viewer and objects collide, and can be used to designate that certain objects should be treated as transparent to collisions. Support for inter-object collision is not specified.

The NavigationInfo type TIME_WALK_vrmlHistory should disable collision detection during changing vnow (either by navigation or executing the world), but shall enable collision detection again after no further changes occurs to vnow. The other NavigationInfo types of WALK, FLY, EXAMINE, ANY and NONE shall behave according to their rules defined in Navigation of VRML97 if simultaneously no changes in vnow occur. In other case collision detection should be interrupted for that moment. See NavigationInfo, for details on the various navigation types.

--- VRML separator bar ----
For questions or comments contact Hartmut Luttermann.
Copyright © 1998-99 University of Siegen, Germany.
Last update: 1. November 1999.

http://www-winfo.uni-siegen.de/vrmlHistory/docs/partVH/concepts.html