[X3D-Public] X3D Followers draft specification addition

Don Brutzman brutzman at nps.edu
Thu Feb 23 18:43:21 PST 2012


On 2/8/2012 9:04 AM, Don Brutzman wrote:
>      ColorChaser
>      CoordinateChaser
>      ScalarDamper
>      TexCoordChaser (if defined, X3D name would be TexCoordChaser2D)

Draft specification prose follows.  Thanks Dick for heavy-lift assist.
Review and corrections are most welcome.  This goes final on 12 March.

Reference:
http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/followers.html

Target:
http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/followers.html

Paragraph numbers should be inserted to achieve alphabetical order of
nodes.

==============================================================================

39.4.A     ColorChaser

ColorChaser: X3DChaserNode {
  SFColor [in]     set_destination
  SFColor [in]     set_value
  SFNode  [in,out] metadata           NULL [X3DMetadataObject]
  SFBool  [out]    isActive
  SFColor [out]    value_changed
  SFTime  []       duration           1    [0,∞)
  SFColor []       initialDestination 0.8 0.8 0.8
  SFColor []       initialValue       0.8 0.8 0.8
}

The ColorChaser animates transitions for single colour values. Whenever the set_destination field receives a floating point number, the value_changed creates a transition from its current value to the newly set number. It creates a smooth transition that ends duration seconds after the last number has been received.

When set_value receives a colour value, any transition currently in process is stopped and value_changed sends this value immediately, creating a jump. The field initialValue can be used to set the initial initial value of value_changed. The field initialDestination should be set to the same value unless a transition to a certain value is to be created right after the scene is loaded or right after the ColorChaser node is created dynamically.

==============================================================================

39.4.B     CoordinateChaser

CoordinateChaser: X3DChaserNode {
  MFVec3f [in]     set_destination
  MFVec3f [in]     set_value
  SFNode  [in,out] metadata           NULL [X3DMetadataObject]
  SFBool  [out]    isActive
  MFVec3f [out]    value_changed
  SFTime  []       duration           1    [0,∞)
  MFVec3f []       initialDestination 0 0 0
  MFVec3f []       initialValue       0 0 0
}

The CoordinateChaser animates transitions for array of 3D vectors (e.g., the coordinates of a mesh). Whenever the set_destination field receives an array of 3D vectors, the value_changed creates a transition from its current value to the newly set number. It creates a smooth transition that ends duration seconds after the last number has been received.

When set_value receives an array of 3D vectors, any transition currently in process is stopped and value_changed sends this value immediately, creating a jump. The field initialValue can be used to set the initial initial value of value_changed. The field initialDestination should be set to the same value unless a transition to a certain value is to be created right after the scene is loaded or right after the CoordinateChaser node is created dynamically.

==============================================================================

39.4.C     TexCoordChaser2D

TexCoordChaser2D: X3DChaserNode {
  MFVec2f [in]     set_destination
  MFVec2f [in]     set_value
  SFNode  [in,out] metadata           NULL [X3DMetadataObject]
  SFBool  [out]    isActive
  MFVec2f [out]    value_changed
  SFTime  []       duration           1    [0,∞)
  MFVec2f []       initialDestination []
  MFVec2f []       initialValue       []
}

The TexCoordChaser2D animates transitions for an array of 2D vectors (e.g., the texture coordinates of a mesh). Whenever the set_destination field receives an array of 2D vectors, the value_changed creates a transition from its current value to the newly set number. It creates a smooth transition that ends duration seconds after the last number has been received.

When set_value receives an array of 2D vectors, any transition currently in process is stopped and value_changed sends this value immediately, creating a jump. The field initialValue can be used to set the initial initial value of value_changed. The field initialDestination should be set to the same value unless a transition to a certain value is to be created right after the scene is loaded or right after the TexCoordChaser2D node is created dynamically.

==============================================================================

39.4.D     ScalarDamper

ScalarDamper: X3DDamperNode {
  SFFloat [in]     set_destination
  SFFloat [in]     set_value
  SFNode  [in,out] metadata           NULL  [X3DMetadataObject]
  SFTime  [in,out] tau                0.3     [0,∞)
  SFFloat [in,out] tolerance          -1    -1 or [0,∞)
  SFBool  [out]    isActive
  SFFloat [out]    value_changed
  SFFloat []       initialDestination 0
  SFFloat []       initialValue       0
  SFInt32 []       order              3     [0..5]
}

The ScalarDamper animates transitions for single float values. If the value_changed field is routed to a transparency field of a Material node, then, whenever the set_destination field receives a single float value, the ScalarDamper node creates a transition from its current value to the newly set value. It creates a transition that approaches the newly set value asymptotically during a time period of approximately three to four times the value of the field tau depending on the desired accuracy and the value of order. Through this asymptotic approach of the destination value, a smooth transition is created. The order field specifies the smoothness of the transition.

When set_value receives a value, any transition currently in process is stopped and value_changed sends this value immediately, creating a jump to the new value. The field initialValue can be used to set the initial value of the node. The field initialDestination should be set to the same value unless a transition to a certain value is to be created right after the scene is loaded or right after the ScalarDamper node is created dynamically.

==============================================================================

p.s. other TODO items here:

- restore italics for field names above
- for each chaser, replace "value value" with "value"

==============================================================================

Discussion item:

Table 39.5 "Support levels" should add these nodes.  If there are no
objections, then I recommend we put these four nodes under Level 1,
rather than creating a Level 2.  A worthy argument can be made
that a browser compliant with X3D v3.2 Followers Component would
suddenly be out of compliance with X3D v3.3.  However, the two active
implementations of the Followers component have each committed
to add (or refine) support for these nodes in the near future.
Sticking to simply one level makes the whole business easier for
authors, rather than propagating an idiosyncrasy forward into all
future versions of X3D.

There is one apparent counterexample:  Octaga player is no longer a
Web3D member.  If anyone can encourage them to add the nodes (or for
that matter, re-lease their plugin), that would great.  Last known
status was reported 1 year ago.
http://www.web3d.org/pipermail/x3d-public_web3d.org/2011-February/001468.html

==============================================================================

all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman



More information about the X3D-Public mailing list