[x3d-public] Mantis 27.4.9 NurbSet - Change child geometry model to X3DParametricGeometryNode
John Carlson
yottzumm at gmail.com
Sat May 14 00:38:14 PDT 2022
I have spent 2 days on this subject in email, so I think it's time I quit.
I am not a speedy emailer.
John
On Sat, May 14, 2022 at 1:59 AM John Carlson <yottzumm at gmail.com> wrote:
> 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/3605af56/attachment-0001.html>
More information about the x3d-public
mailing list