[x3d-public] Edge cases of Extrusion

Alekseyev, Vsevolod (NIH/NIAID) [E] VAlekseyev at niaid.nih.gov
Tue Aug 11 09:17:02 PDT 2015


Got X3D-Edit to work. My pathological examples look different in X3D-Edit, compared to X3DOM. I could provide screenshots...

The X3Ds that demonstrate the undefined behavior are at http://www.jishop.com/temp/x3d/ . The problematic ones are "Extrusions-Directions", and "Extrusions-Coincident points". In the former, please pay close attention to the way the extrusion in the -Y direction looks. The misshaped extrusions in X/Z directions are bugs that X3DOM, that's clear enough, but the -Y one is a bug in the spec itself.





-----Original Message-----
From: Don Brutzman [mailto:brutzman at nps.edu] 
Sent: Tuesday, August 04, 2015 12:43 AM
To: Alekseyev, Vsevolod (NIH/NIAID) [E] <VAlekseyev at niaid.nih.gov>
Cc: X3D Graphics Working Group <x3d at web3d.org>; X3D Graphics public mailing list <x3d-public at web3d.org>
Subject: Re: [x3d-public] Edge cases of Extrusion

will you be at SIGGRAPH, Seva Alekseyev?  I would be happy to review these issues with you.

Absent that, am hoping we might get you on one of the Monday morning calls.  Details posted in the Web3D Calendar.  Alternatively we can schedule a special teleconference on this topic, it would be great if other Extrusion/algorithm experts can join us.

Thanks for pointing out these problems.  In addition to getting specification prose right, whenever possible I will try to add matching error checks in X3D-Edit and X3D Validator.  Extrusion is both popular and useful, anything we can do to maximize its utility is worthwhile.



On 6/10/2015 8:20 AM, Alekseyev, Vsevolod (NIH/NIAID) [E] wrote:
> In the spirit of the spec review, did anyone maybe get a chance to review the Extrusion spec in light of the problems that I've outlined at http://web3d.org/pipermail/x3d-public_web3d.org/2015-June/003412.html ?

Thanks for the reminder.  I had missed the original but there were some follow-on screenshots posted.

> There's one more problem with coincident spine points that I forgot to mention: the algorithm for CSP Y calculation in case of coincident spine points is inconsistent with the "special cases" rule that CSP for coincident points should match. It's entirely unclear rule takes precedence.


On 6/2/2015 9:32 AM, Alekseyev, Vsevolod (NIH/NIAID) [E] wrote:
> Hi everyone,
>
> I'm building an X3D geometry import module for the Blender application, and the standard is unclear when it comes to the Extrusion geometry node. I wonder if anyone who was involved with the standard can clarify some things for me. The spec I'm going by is at http://www.web3d.org/documents/specifications/19775-1/V3.3/index.html , under Geometry3D.
>
> So, extrusions. A spine and a cross-section. An algorithm to build a spine-aligned cross-section plane (SCP) at every point of the spine. Here's where the questions start.
>
> Under "Special cases", there's a line: "If two points are coincident, they both have the same SCP." That means to me that coincident spine points are legal under the spec. The potential for that renders some statements from the previous portion of the spec potentially ill defined. Specifically:
>
> 1. The algorithm for generating Y for the SCP is ill defined if three spine points in a row are coincident. In the spirit of the spec, reusing the last value of Y makes sense, but the spec doesn't say so.
>
> 2. The algorithm for generating Y for the SCP at the first point of an open spine is ill defined if the first two spine points are coincident. Similarly, one may employ look-ahead to the first non-null spine segment, but the spec doesn't say so.
>
> 3. The wording for generating the first (and only) SCP for collinear spines is unclear; specifically, "rotation along the axis" is a funny notion. I can imagine a translation along the axis and a rotation around an axis, but not a "rotation along something". Here's how I understand it: you calculate a rotation that takes the vector (0,1,0) to the spine direction vector (the first nonnull spine segment), then you apply the same rotation to the vector (0,0,1), and that's the Z for the SCP. Notably, that's *not* how the popular X3DOM implementation treats those cases.
>
> 4. If the above interpretation is right, the algorithm is ill defined if the spine goes in the negative Y direction. The rotation between (0,1,0) and (0,-1,0) is not uniquely defined, and the resultant SCP Z can be anywhere in the XZ plane.
>
> Those cases, while pathological, may represent geometries that do make intuitive sense to me. For example, a collinear spine with coincident points is useful if you want to make a model for a piece of penne pasta, or more formally, a cylinder with a coaxial cylindrical hole inside. Since I'm not authoring X3D files but consuming them, avoiding or ignoring those cases is not really an option. Any advice/clarification/reference would be welcome. Thank you very much in advance!
>
> Regards,
> Seva Alekseyev

Further email links:

http://web3d.org/pipermail/x3d-public_web3d.org/2015-June/003434.html
http://web3d.org/pipermail/x3d-public_web3d.org/2015-June/003436.html
http://web3d.org/pipermail/x3d-public_web3d.org/2015-June/003437.html
http://www.jishop.com/temp/x3d/

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