[x3d-public] Extrusions, take 3: initial proposed spec changes

Leonard Daly Leonard.Daly at realism.com
Wed Feb 3 08:03:54 PST 2016


Seva,

What do you use Extrusion for?

I am thinking that the node may not be needed anymore. There are a 
couple of use cases that I haven't figured out yet and I wish to make 
sure your uses are understood and a functional solution exists in V4.


Leonard Daly




On 2/3/2016 5:36 AM, Alekseyev, Vsevolod (NIH/NIAID) [E] wrote:
>> "If only 2 non-coincident spine points are provided, the corresponding SCP planes for each are perpendicular to the vector defined by these two points."
> That doesn't help clarify the issue at all. First, this language adds nothing to the "coincident spine -> rotate the XZ" rule, second, axes in the plane must be defined, not just the plane itself. And, as we all can see from the misplaced wings on http://www.jishop.com/temp/x3d/#AV8bHarrier , the choice of axes does matter.
>
>
>
>
>
> ________________________________________
> From: Don Brutzman [brutzman at nps.edu]
> Sent: Wednesday, January 27, 2016 12:44 PM
> To: Alekseyev, Vsevolod (NIH/NIAID) [E]; x3d public mailing list
> Subject: Re: [x3d-public] Extrusions, take 3: initial proposed spec changes
>
> Thanks again Seva for the excellent test cases.
>
> Dick, Leonard, Roy and I worked on today's weekly X3D Working Group teleconference to craft improved specification prose.  Details follow.
>
> Next week we would like to continue with the prior wiki page examples, plus the long series of emails on this and related threads.
> http://www.web3d.org/wiki/index.php/Extrusion_Edge_Cases
>
> Together we created new Mantis issue 923 from the mail, with responses as follows.  Review and comment welcome.
>
> Access note:  Web3D members have access to all issues.
>
> Issue 0000923: 13.3.5 Extrusion - Edge cases
> http://www.web3d.org/member-only/mantis/view.php?id=923
>
> ==========================================================================
> ==========================================================================
> ==========================================================================
> Description:
>
> Hi X3D community,
>
> http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Extrusion [^]
>
> I've tried and failed twice to explain the problems with the definition of the Extrusion node. So here's a tl;dr version:
>
> Dear authors of the X3D standard, please take a careful look at the standard and answer me:
>
> 1) When the spine goes (0,0,0)-(0,-1,0), what is the SCP?
> Note: all answers but one will render one of the reference models in the Savage archive invalid.
>
> 2) When the spine goes (0,0,0)-(0,1,0)-(0,0,0), what is the SCP?
>
> 3) When the spine goes (0,0,0)-(1,1,0)-(1,1,0)-(1,1,0)-(2,0,0), what is the SCP for the three middle points?
> ==========================================================================
> ==========================================================================
> ==========================================================================
>
> Case (1). Need to clearly define SCP when only 2 spine points are defined.
>
> 13.3.5.3 Algorithmic description
> http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Algorithmicdescription [^]
>
> Suggested prose additions:
> "If only 2 non-coincident spine points are provided, the corresponding SCP planes for each are perpendicular to the vector defined by these two points."
>
> "If fewer than 2 non-coincident spine points are provided, the extrusion is not well defined and no results are rendered."
>
> ======================================
>
> Case (2), first consideration. The prose for orientation is inserted in the middle of the SCP definition. This muddles the definition for SCP.
>
> Suggested move for existing sentences:
>       "The SCP is then rotated by the corresponding orientation value. This rotation is performed relative to the SCP. For example, to impart twist in the cross-section, a rotation about the Y-axis (0 1 0) would be used. Other orientations are valid and rotate the cross-section out of the SCP."
>
> Place these as a new paragraph at the end of the section, after the complete definition of SCP. With slight modification:
>
>       "Each SCP is then rotated by the corresponding orientation value. This rotation is performed relative to the SCP itself. For example, to impart twist in the cross-section, a rotation about the local Y-axis (0 1 0) would be used. Other orientation values are valid and may rotate the cross-section out of the plane of the original SCP."
>
> ======================================
>
> Case (2), second consideration. Does the existing algorithm handle the example in question, in that three sequential spine points are defined where the first and third are coincident? This is a kind of reflection upon itself.
>
> We would expect to have 3 SCPs, each parallel, where the first and third are coincident. We further need to be careful with plane orientation (direction of normal) for each of these SCPs.
>
> When 2 vectors are coincident head-to-tail (and vice versa) the cross product does not appear to be well defined, since many perpendiculars are possible. A similiar situation may occur if they two vectors are parallel. These appear to be a special case.
>
> These circumstances appear to be addressed in the following section.
> 13.3.5.4 Special cases
> http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Specialcases [^]
>
> ======================================
>
> Case (3). Suggested specification prose revision.
>
>       "If two points are coincident, they both have the same SCP."
>
> is better expressed by
>
>       "If two or more sequential points in a spine array are coincident, they are each treated as a single point when computing the corresponding SCP, and each will have an identical SCP.
>
> NOTE. This case is useful when animating the spine array without needed to simultaneously modify the corresponding orientation and scale arrays."
>
> ======================================
> Additional change A.
>
> Figure 13.5 title is "Spine-aligned cross-section plane at a spine point."
> http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#f-Spine-alignedcross-section [^]
>
> Need to add "(SCP)" in the figure title above.
>
> ======================================
> Additional change B.
>
> 13.3.5.4 Special cases
> http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geometry3D.html#Specialcases [^]
>
> Change
>       "If two points are coincident, they both have the same SCP."
>
> to
>       "If two sequential spine points are coincident, they both have the same SCP."
>
> ==========================================================================
> ==========================================================================
> ==========================================================================
>
> 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
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>


-- 
*Leonard Daly*
3D Systems & Cloud Consultant
X3D Co-Chair on Sabbatical
LA ACM SIGGRAPH Chair
President, Daly Realism - /Creating the Future/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20160203/8fa2313c/attachment.html>


More information about the x3d-public mailing list