VRML History -- Concepts
Revised at 15 October 1999.
Table
of contents
See Table 1 for the table of contents for this
clause.
Table 1 -- Table of contents
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
ai
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.
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