[X3D-Public] X3D Followers draft specification addition

Richard Puk puk at igraphics.com
Thu Mar 8 13:05:45 PST 2012


Hi, Herbert –

 

Thanks for the careful review. We will discuss these changes on Monday but I personally agree with all of them.

 

n  Dick

 

/*****************************************

* Richard F. Puk, Ph.D.

* President, Intelligraphics Incorporated
* 7644 Cortina Court
* Carlsbad, CA  92009

* Tel:  1-760-753-9027 E-Mail:  <mailto:puk at igraphics.com> puk at igraphics.com

\*****************************************

 

 

 

From: Herbert Stocker [mailto:herbert.stocker at bitmanagement.de] 
Sent: Thursday, March 08, 2012 12:49 AM
To: Don Brutzman
Cc: x3d-public at web3d.org; Richard F. Puk; Leonard Daly; Johannes Behr; Yvonne Jung
Subject: Re: [X3D-Public] X3D Followers draft specification addition

 

Hi Don and all, 

great that you work on the Followers component. 

Last x3d call i mentioned that there are default values for a few fields that
should be corrected. You have incorporated them already in the prose of the
new nodes. Are you intending to also discuss correcting them for the existing
follower nodes in the editor meeting on Monday?

Reason for correcting them is:
a) that the values these fields currently have in the spec do not expose the
    behavior of the follower nodes. A content author first must understand to
    set the values of tau, order and duration before they can see what a follower
    node does.
b) Current implementations (Instant Reality an Bitmanagement) don't follow the
    spec in this respect anyway. Therefore the argument of keeping backwards
    compatibility is not relevant, because there is no content which relies on the
    default values from the spec.

This is a list of what the values for these fields are in the spec and in IR and BS:     

  Field     Node group    X3D   IR   BS     should be
  tau       (Dampers)     0     0    1      1 (or better 0.3)
  order     (Dampers)     0     1    3      1 (or better 3)
  duration  (Chasers)     0     1    n/a    1

For the prose of the new nodes, i marked a few things that should be adopted.
They are bold and red, and removals received a strike-through style. See below.
Is that readable for everybody?
 
best regards,

i. A. Herbert Stocker


On 24.02.12 03:43, Don Brutzman wrote: 

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 color value, the value_changed field creates a transition from its current value to the newly set number color. It creates a smooth transition that ends duration seconds after the last number color value 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 an 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 field creates a transition for every array element from its current value to the newly set number value. It creates a smooth transition that ends duration seconds after the last number value 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 field creates a transition for every array element from its current value to the newly set number value. It creates a smooth transition that ends duration seconds after the last number value 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, wWhenever 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

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20120308/07118dfe/attachment-0001.html>


More information about the X3D-Public mailing list