[x3d-public] x3dom nurbs support

Andreas Plesch andreasplesch at gmail.com
Sun Sep 30 12:41:01 PDT 2018


https://books.google.com/books?id=CkeqCAAAQBAJ&lpg=PA472&ots=d5lx8K1XEi&dq=nurbs%20swept%20surface&pg=PA472#v=onepage&q=nurbs%20swept%20surface&f=false

has a preview of Swept Surface chapter in the Nurbs Book.

There there is a treatment of just translating a section curve C along a
trajectory curve S, without adapting the orientation of the section curve.
This seems to be relatively easily translated into a Nurbs surface (Patch
surface) (Eq. 10.18). I think it means just taking the knot vectors of the
curves as the knot vectors of the surface, and generating a control point
matrix by adding the corresponding control points from each curve, and
multiplying weights. However, in the spec. language there is hint that
SweptSurface is similar to Extrusion. This may mean that the expectation is
that the section curve is not just translated along the trajectory but also
reoriented. If this is the case conversion to an approx. Nurbs surface
becomes (much?) more complicated.

Hm, the Nurbs Book gives an algorithm how to rotate the section curve along
the trajectory (by basing each subsequent rotation, local frame, on the
previous one, starting with an arbitrary frame). Hm, but X3D only provides
a 2d curve as section. It seems that the determination of a local frame is
underspecified in X3D ? One axis is along the trajectory, but where are the
other two ?

So perhaps this means that just translation and no rotation is expected,
after all?

If the rotation is fully specified, one could go along the trajectory at
some step size (there is no tessellation field hint), and translate and
rotate the evaluated section nurbs curve, and build an IndexedQuadset.

-Andreas






On Sat, Sep 29, 2018 at 9:16 PM Andreas Plesch <andreasplesch at gmail.com>
wrote:

> These notes seem to cover it but a bit too concisely:
>
> http://www.cgeo.ulg.ac.be/CAO/CAD_06.pdf
> On Sat, Sep 29, 2018 at 4:10 PM GPU Group <gpugroup at gmail.com> wrote:
> >
> > Andreas
> > swept and swung are in The Nurbs Book (and not too hard - a 2D curve,
> then extrude that curve in a few different ways. Swept: along an arbitrary
> 3D curve,could be a curbs curve. Swung: around some line/axis lying in the
> plane of the curve)
> > -Doug
> >
> >
> > On Sat, Sep 29, 2018 at 10:34 AM Andreas Plesch <andreasplesch at gmail.com>
> wrote:
> >>
> >> Based on the initial Ayam x3dom Nurbs node support for PatchSurface
> >> and TrimmedSurface, I am working on more complete and animation
> >> capable Nurbs component implementation in my x3dom NURBS branch.
> >>
> >> Here are examples of working nodes:
> >>
> >>
> https://rawgit.com/andreasplesch/x3dom/Nurbs/test/functional/nurbs/inline.html
> >>
> >> I added NurbsCurve and the interpolators. In addition, the web worker
> >> code can now be bundled, and is optimized to support animation of
> >> control points and weights which do not require retriangulation. This
> >> makes the AnimatedNurbsPatchSurfaceHead example borderline ok to
> >> animate on a regular desktop but also shows the limits off CPU (via
> >> js) only animation although there is additional room for further
> >> optimization (for example using transferables for communicating with
> >> workers). A more substantial improvement has to come from shaders.
> >>
> >> I think most Nurbs examples from Basic Archive are working, after
> >> fixing them as previously reported.
> >>
> >> Some details: The Curve tessellation is strictly subdivision following
> >> the tessellation hints as speced. The Ayam surface tessellation is
> >> adaptive with a threshold being influenced by the tessellation hints
> >> as well.
> >> The tessellation (and animation by deformation) will spawn web
> >> workers/threads. The maximum number of workers is aggressively set and
> >> can max out CPUs. I probably should expose the number in a scene
> >> setting to scenes. It is defined in the x3dom-nurbs-pool.js file.
> >> Vertex animation does not recalculate automatic normals currently for
> >> performance but that could be added.
> >>
> >> The SweptSurface and SwungSurface are not implemented and I do not
> >> have a good idea how to.
> >> The NurbsTextureCoordinate is not implemented. Is it used ? Are the
> >> default texture coordinates usually ok ?
> >>
> >> Any comment or feedback welcome,
> >>
> >> -Andreas
> >>
> >>
> >>
> >>
> >> --
> >> Andreas Plesch
> >> Waltham, MA 02453
> >>
> >> _______________________________________________
> >> x3d-public mailing list
> >> x3d-public at web3d.org
> >> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
>
>
> --
> Andreas Plesch
> Waltham, MA 02453
>


-- 
Andreas Plesch
Waltham, MA 02453
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180930/98f2be1c/attachment.html>


More information about the x3d-public mailing list