[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