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

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


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/8b5a7b34/attachment-0001.html>


More information about the x3d-public mailing list