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

John Carlson yottzumm at gmail.com
Fri May 13 17:02:16 PDT 2022


As I suspected, there do not appear to be normals under that name in NURBS
curves and surfaces in the standard.

Note than animation can affect normals through a _changed field.

So i doubt if NURBS for Geo can support non-computed normals.   Geo might
still provide normals which could affect lighting,  but normals sound like
a space hog.

I suggest we look to scanning geometry for normals.

My understanding is that the 4x4 grid of control points shares control
points with other 4x4 grids.  What makes sense to me is they share the
control points on the edges and vertices, and *perhaps* 3 control points
need to be colinear crossing the edge for each control point on the edge,
and *perhaps* 5 control points need to be coplanar crossing the corners of
4 adjacent 4x4 grids.  This why one differentiates a bezier curve from a
b-spline curve (exercise left to reader).  In the NxN case, IDK.  Sharing
control points (not only vertices) is what makes the whole NurbsSet smooth.

I hope this clears up any confusion and helps.

Don, if edgeNormals were required, there would probably be normals as
fields for all control points.

Look to textures for any normal colors.


At one point I considered using 6 control points per “NURBS” to collapse
the earth once it was tessellated into “triangle NURBS.”   The idea was to
show distance as time to communicate such that the earth would retain
smoothness as it collapsed

I didn’t achieve that, probably for lack of data.  I guess a demo would
have been good.

I don’t know why triangle NURBS didn’t catch on, probably because of
rectangular arrays to store data.

I will scan the standard a bit more.

John



On Fri, May 13, 2022 at 1:40 PM Brutzman, Donald (Don) (CIV) <
brutzman at nps.edu> wrote:

> 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
>
>    1. Any of the X3D implementations support NurbsSet operations,
>    2. 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>
> 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
>
> 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/20220513/d7ea80d1/attachment-0001.html>


More information about the x3d-public mailing list