[x3d-public] Mantis 27.4.9 NurbSet - Change child geometry model to X3DParametricGeometryNode; smoothing adjacent normal vectors

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Fri May 13 11:40:11 PDT 2022


Thanks for continuing scrutiny.  Improving X3D player support for the advanced capabilities possible using NURBS is certainly a worthy goal.

 

It is mathematically possible to render smooth/seamless edges across the coincident edges of adjacent NURBS surfaces by adjusting normal vectors of the respective edge vertices.  Since vertex computation for each patch might have a different slope as it approaches the edge from either side, slopes will be different at the coincident edge vertices.  Thus independent computation of each surface’s normal vectors by GPU will have different vector direction on each side.

 

(btw this is why I proposed an edgeNormal field for the boundaries of an ElevationGrid, different adjacent grids typically show such seams.  No one in GeoSpatial Working Group was ready to pursue it, perhaps we might try again someday in X3D4.1.)

 

Anyway such adjustments are a declared capability of NURBS representations, reasonably intuitive, and a long-accepted capability in the X3D specification.

 

Of relevant note is that many fancy models such as automobiles etc. are often represented using numerous NURBS patches.  None of the advertising images I’ve seen reveal seams everywhere…  so these high-fidelity tools must be using some form of this technique.


One might think that an author might achieve the same effect by adding specially calculated Normal nodes corresponding to each of the Nurbs nodes in a scene.  Ordinarily normals are not included in X3D scenes because they lead to larger file sizes and also are easily recalculated by GPU rendering hardware.  However it is pretty difficult (probably impossible) to even define for Nurbs surfaces since the browser is free to compute the tessellation of a parametric surface at whatever fidelity is desired.  Hence you need a NurbsSet node to identify such commonality of surfaces which together define a single shape.

 

For some of your other questions: if I recall correctly, Bezier b-splines have arbitrary expressive power to define surfaces and so any geometric surface might be replaced by a corresponding NURBS version.  This technique is often used in a terrain-reduction context to get adjustable fidelity while progressively smoothing and simplifying raggedy terrain tessellations.

 

X3DParametricGeometryNode and X3DNurbsSurfaceGeometryNode were each defined during the evolution of X3D in order to collect shared fields in the object-oriented interfaces.  They are each limited to NURBS, internal abstract interfaces (not nodes) and not necessarily part of any independent implementation.

 

It would be interesting to know if

a.	Any of the X3D implementations support NurbsSet operations,
b.	Open-source implementations such as Blender support such operations.

 

Have fun with X3D Nurbs!  8)

 

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: Friday, May 13, 2022 10:28 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

 

Sorry, further questions keep popping up.  Are we sure that the NURBS Surfaces directly under the X3DParametricGeometryNode can be smoothly aligned with the other NURBS surfaces under X3DNurbsSurfaceGeometryNode  ?   Indeed, it kind of looks like all the interesting stuff which may be required for smoothing may be in     X3DNurbsSurfaceGeometryNode (compare with NurbsCurve).  If we move to the higher interface, fields valuable to smoothing may not appear in the concrete nodes?

 

This cones from someone with only a book knowledge of MURBS 35 or so years ago.

 

Im basically wondering why there are two abstract nodes, and why X3DParametricGeometryNode was placed under a the Nurbs section.

 

I have interesting parametric geometry, but i can’t ever see It smoothed with NURBS or placed in a NurbsSet.

 

As a reference, imagine the surface

 

 r = radiusAverage + radiusRange * cos (numThetaLeaves * theta) * cos (numPhiLeaves * phi)

 

in spherical coordinates.

 

If X3D is extensible, where would I extend from for this surface?

 

John

 

On Fri, May 1 2022 at 10:13 AM Brutzman, Donald (Don) (CIbrutzman at nps.edu <mailto:CIbrutzman at nps.edu> > wrote:

Looking at the ouInterface 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 <mailto: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 <mailto:yottzumm at gmail.com> > 
Sent: Thursday, May 12, 2022 7:39 AM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu <mailto:brutzman at nps.edu> >
Cc: X3D Public Mailing List (x3d-public at web3d.org <mailto:x3d-public at web3d.org> ) <x3d-public at web3d.org <mailto: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 <mailto: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 <mailto: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 <http://faculty.nps.edu/brutzman> 

 

From: John Carlson <yottzumm at gmail.com <mailto:yottzumm at gmail.com> > 
Sent: Wednesday, May 11, 2022 10:40 PM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu <mailto:brutzman at nps.edu> >
Cc: X3D Public Mailing List (x3d-public at web3d.org <mailto:x3d-public at web3d.org> ) <x3d-public at web3d.org <mailto: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 <mailto: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 <mailto: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 <http://faculty.nps.edu/brutzman> 

 

_______________________________________________
x3d-public mailing list
x3d-public at web3d.org <mailto: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/20220513/b0d4343e/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5353 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220513/b0d4343e/attachment-0001.p7s>


More information about the x3d-public mailing list