[x3d-public] Mantis 27.4.9 NurbSet - Change child geometry model to X3DParametricGeometryNode

John Carlson yottzumm at gmail.com
Fri May 13 23:59:23 PDT 2022


Follow up after re-reading Mantis  700. The Mantis does not speak of
NurbsCurve, a subtype node of X3DParametricGeometryNode.    This is the
biggest sticking point for me.  To me, it's not a surface, but if you say
so, I will concur!  The language of the standards limits NurbsSet geometry
to surfaces, if not the interfaces. Shucks!

I would love to add more parametric geometry that includes tesselationScale
to the standard.  Let me know when we can proceed. I realize that I cannot
add it to NurbsSet.

On Sat, May 14, 2022 at 1:36 AM John Carlson <yottzumm at gmail.com> wrote:

> Finally, my recommendation:
>
> Change nothing unless we want curves and possibly extrusions
> (pseudo-surfaces) to be in NurbsSet.  Otherwise, proceed.
>
> On Sat, May 14, 2022 at 1:29 AM John Carlson <yottzumm at gmail.com> wrote:
>
>> I apologize that this was not in a comment to the website. It's easier to
>> follow a thread in email.  Read the last paragraph if you want a conclusion.
>>
>> The X3D4 CD Extensible 3D (X3D), ISO/IEC 19775-1:2022, 27 NURBS
>> Component (web3d.org)
>> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/nurbs.html#NurbsSet> says
>> the tesselationScale affects Nurbs surface nodes: "The
>> *tessellationScale* parameter is scaling the tessellation values in lower
>> level contained Nurbs surface nodes."
>>
>> *Note:  If the contained Nurbs *curve *nodes now possible, but illegal
>> in a NurbsSet are not scaled by the tessellationScale, things might get
>> confusing!  But I kind of understand why they aren't!  If NurbsSet only
>> contains surfaces, why not call it "NurbsSurfaceSet"?*
>>
>> I hope we have a good list of Nurbs surface nodes that people can add to
>> NurbsSet geometry for instead of relying on interfaces.
>>
>> Full text of NurbsSet:
>>
>> The NurbsSet node groups a *set of Nurbs surface nodes* to a common
>> group for rendering purposes only. This informs the X3D browser that the
>> set of Nurbs surfaces shall be treated as a unit during tessellation to
>> enforce tessellation continuity along borders. The *tessellationScale* parameter
>> is scaling the tessellation values in lower level contained Nurbs
>> surface nodes. A set of Nurbs surfaces that use a matching set of
>> *controlPoint* along the borders shall result in a common tessellation
>> stepping.
>>
>> The geometry represented in the children of this node shall not be
>> directly rendered. It is an informational node only. Surfaces not
>> represented elsewhere in the transformation hierarchy shall not be rendered.
>>
>> The bounds information is provided for optimization purposes only. A X3D browser
>> *may choose *[ Editor's note:  Why Don is seeing non-smooth NURBS,
>> likely--but I'm not too familiar with the standard] to use this information
>> about when to apply trimming or smooth tessellation between patches based
>> on the bounds information (EXAMPLE  only smooth when the viewer is
>> within the bounds).
>>
>>
>> So:
>>
>>
>> 27.4.3 NurbsCurve
>>
>> NurbsCurve : X3DParametricGeometryNode {
>>   SFNode   [in,out] controlPoint NULL  [X3DCoordinateNode]
>>   SFNode   [in,out] metadata     NULL  [X3DMetadataObject]
>>   SFInt32  [in,out] tessellation 0     (-∞,∞)
>>   MFDouble [in,out] weight       []    (0,∞)
>>   SFBool   []       closed       FALSE
>>   MFDouble []       knot         []    (-∞,∞)
>>   SFInt32  []       order        3     [2,∞)
>>
>>
>>
>> The above has controlPoint, has tessellation, but does not participate in tesselationScale?
>>
>>
>> I'm trying to understand the impact of: X3DNurbsControlCurveNode to surfaces that use it.   The surfaces appear visually to be extrusions, and I now know that NURBS includes extrusions (surprise to me!) from reading the CD standard.
>>
>> I guess there's a use case for adding NurbsSwungSurfaces and NurbsSweptSurface to NurbsSets?  Like outlining a X3DNurbsSurfaceGeometryNode?  Sounds okay by me!  It seems confusing that there are no controlPoints to smooth with!  Or is it more like, what set of controlPoints? And no tessellation control!
>>
>> NurbsCurve2D
>>
>> can't be added to a NurbsSet, thank goodness!
>>
>> Are we okay now?  As far as I can tell, the specification will work, but
>> implementers will have to deal with sticky problems smoothing controlPoint
>> between surfaces and extrusion surfaces. They'll have to somehow delegate
>> the controlPoint in the extrusions to a control curve (is this
>> specified?).  And also excluding NurbsCurve from NurbsSet seems rather
>> arbitrary, which is a good reason to change the type of the geometry field
>> in NurbsSet.  When we change the geometry field type, we lose the ability
>> to separate types of NURBS (curves, extrusions, surfaces) in the NurbsSet
>> geometry interfaces.
>>
>> Thanks,
>>
>> John
>> On Fri, May 13, 2022 at 10:13 AM Brutzman, Donald (Don) (CIV) <
>> brutzman at nps.edu> wrote:
>>
>>> Looking at the Interface Hierarchy shows what implements those types,
>>> confirming that only Nurbs nodes are involved.  This also clearly
>>> identifies why we shifted the interface involved.
>>>
>>>
>>>
>>> +- X3DParametricGeometryNode -+- NurbsCurve
>>>
>>>                               +- NurbsSweptSurface
>>>
>>>                               +- NurbsSwungSurface
>>>
>>>                               |
>>>
>>>                               +- X3DNurbsSurfaceGeometryNode -+-
>>> NurbsPatchSurface
>>>
>>>                                                               +-
>>> NurbsTrimmedSurface
>>>
>>>
>>>
>>> Dick points out that someday in (some wonderful) future we might allow
>>> other geometry nodes to get smoothly aligned next to Nurbs nodes.  That
>>> will be nice – but we are OK for now.
>>>
>>>
>>>
>>> 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 https://
>>> faculty.nps.edu/brutzman
>>>
>>>
>>>
>>> *From:* John Carlson <yottzumm at gmail.com>
>>> *Sent:* Thursday, May 12, 2022 7:39 AM
>>> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
>>> *Cc:* X3D Public Mailing List (x3d-public at web3d.org) <
>>> x3d-public at web3d.org>
>>> *Subject:* Re: [x3d-public] Mantis 27.4.9 NurbSet - Change child
>>> geometry model to X3DParametricGeometryNode
>>>
>>>
>>>
>>> Understood, i am just trying to work through if there’s any parametric
>>> geometry which isn’t NURBS, and is thus now inclusive in this modified
>>> NurbsSet.
>>>
>>>
>>>
>>> Thanks!
>>>
>>>
>>>
>>> John
>>>
>>>
>>>
>>> On Thu, May 12, 2022 at 8:58 AM Brutzman, Donald (Don) (CIV) <
>>> brutzman at nps.edu> wrote:
>>>
>>> Please be assured, no new semantics and no new functionality is being
>>> proposed.  We are addressing a Mantis issue that noted the NurbsSet
>>> definition was unnecessarily restrictive.  We adjusted the specification
>>> interface to match that inclusive rationale.
>>>
>>>
>>>
>>> Changes to implementations are up to them.  Since NurbsSet is a way for
>>> authors to communicate when various Nurbs nodes are coincident and
>>> potentially smoothable, it has no impact on functionality and might improve
>>> rendering appearance by enabling smoothed seams.
>>>
>>>
>>> Thanks for your review.
>>>
>>>
>>>
>>> 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 https://
>>> faculty.nps.edu/brutzman
>>>
>>>
>>>
>>> *From:* John Carlson <yottzumm at gmail.com>
>>> *Sent:* Wednesday, May 11, 2022 10:40 PM
>>> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
>>> *Cc:* X3D Public Mailing List (x3d-public at web3d.org) <
>>> x3d-public at web3d.org>
>>> *Subject:* Re: [x3d-public] Mantis 27.4.9 NurbSet - Change child
>>> geometry model to X3DParametricGeometryNode
>>>
>>>
>>>
>>>
>>>
>>> Don, I'm a bit unsure of the new semantics for NurbsSet....it includes
>>> other parametric geometry nodes which aren't NURBS?
>>>
>>>
>>>
>>> Would ParametricGeometrySet be a better name than NurbsSet, or a good
>>> addition to X3D4?
>>>
>>>
>>>
>>> Is it counterintuitive to look for a "ParametricGeometrySet" inside
>>> NURBS sections?
>>>
>>>
>>>
>>> How does this impact browser implementations?
>>>
>>>
>>>
>>> I don't know if the standard includes parametric, implicit, etc.
>>> descriptions?
>>>
>>>
>>>
>>> Are we planning on dropping X3DNurbsSurfaceGeometryNode  in the future?
>>>
>>>
>>>
>>> NURBS seems a bit specialized, but at least I know I'm looking for
>>> NURBS.  Parametric seems *way* general, and should probably remain at the
>>> abstract level.
>>>
>>>
>>>
>>> I have no other issues that come to mind presently.
>>>
>>>
>>>
>>> I'm a bit leery of Mantis, so I will now review your next email.    My
>>> summary:  Can one include more than one abstract type in the allowable
>>> types?  That is, allow both X3DParametricGeometryNode
>>>
>>> and X3DNurbsSurfaceGeometryNode sub node types for geometry?
>>>
>>>
>>>
>>> Thanks!
>>>
>>>
>>>
>>> John
>>>
>>>
>>>
>>> On Wed, May 11, 2022 at 8:06 PM Brutzman, Donald (Don) (CIV) <
>>> brutzman at nps.edu> wrote:
>>>
>>> NurbsSet should be inclusive about which nodes an author thinks can be
>>> rendered together as one smooth surface.
>>>
>>>
>>>
>>>    - Mantis 27.4.9 NurbSet - Change child geometry model to
>>>    X3DParametricGeometryNode
>>>    - https://www.web3d.org/member-only/mantis/view.php?id=700
>>>
>>>
>>>
>>>    - X3D4 Architecture, NURBS component, 27.4.8 NurbsSet
>>>    -
>>>    https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/nurbs.html#NurbsSet
>>>
>>>
>>>
>>> Since X3DParametricGeometryNode includes X3DNurbsSurfaceGeometryNode,
>>> changed all three NurbsSet geometry fields from X3DNurbsSurfaceGeometryNode
>>> to X3DParametricGeometryNode.
>>>
>>>
>>>
>>> NurbsSet : X3DChildNode, X3DBoundedObject {
>>>
>>>   MFNode  [in]     addGeometry                [X3DParametricGeometryNode
>>> ]
>>>
>>>   MFNode  [in]     removeGeometry             [X3DParametricGeometryNode
>>> ]
>>>
>>>   MFNode  [in,out] geometry          []       [X3DParametricGeometryNode
>>> ]
>>>
>>>   SFNode  [in,out] metadata          NULL     [X3DMetadataObject]
>>>
>>>   SFFloat [in,out] tessellationScale 1.0      (0,∞)
>>>
>>>   SFVec3f []       bboxCenter        0 0 0    (-∞,∞)
>>>
>>>   SFVec3f []       bboxSize          -1 -1 -1 [0,∞) or −1 −1 −1
>>>
>>> }
>>>
>>>
>>>
>>> This changes X3DUOM and possibly some implementations.  Comments welcome.
>>>
>>>
>>>
>>> We current intend to accept this change as resolved once X3DUOM is
>>> updated.
>>>
>>>
>>>
>>> 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 https://
>>> faculty.nps.edu/brutzman
>>>
>>>
>>>
>>> _______________________________________________
>>> x3d-public mailing list
>>> x3d-public at web3d.org
>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220514/0d799fa8/attachment-0001.html>


More information about the x3d-public mailing list