[x3d-public] x3d-public Digest, Vol 128, Issue 30

Andreas Plesch andreasplesch at gmail.com
Fri Nov 29 15:02:59 PST 2019


In my view, the natural and probably least surprising, or most
expected mode of visualization of a Pointset with Normals is shading
according to the Appearance, in the same way as triangles are shaded.
This is I think Vince's option 2.

The 'point cloud with hair' option would be analogous to a faceset
with hair, eg. showing vertex or triangle normals as little lines.
Such a display seems to be at a higher level than the more basic
building blocks X3D generally provides.

A Pointset without a Normal node would not be shaded, eg. be rendered
in a backward compatible way, essentially color as emissive.

Another issue are Textures. With shading, the expectation is that
relevant properties such a diffuse, specular, emissive, potentially
displacement, others and also normals (or PBR properties), (and
tangents) can be provided by texture maps and uv tex. coords. This
would be relatively straightforward to spec. because it is analogous
to surface geometry nodes. Not sure what a sensible set of default
tex. coords would be, perhaps just NULL, meaning textures are ignored.

But Pointsets are also sprites which have their own texture. Perhaps
it would work to add a 'sprite' SFNode field of type X3DTexture to
PointProperties. The sprite colors would need to be convolved with
overall point color. A suggestion would be multiplication with
emissive if there no normals, and with diffuse if there are. Would it
be useful to have a full set texture maps (including normal maps) for
sprites themselves as well ? It might be, thinking now about sparkly
snowflakes.

How does glTF deal with Pointsets ? Let's look it up:
https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#point-and-line-materials

POINTS and LINES should have widths of 1px in viewport space.
For LINES with NORMAL and TANGENT properties, render with standard
lighting including normal maps.
For POINTS or LINES with no TANGENT property, render with standard
lighting but ignore any normal maps on the material.
For POINTS or LINES with no NORMAL property, don't calculate lighting
and instead output the COLOR value for each pixel drawn.

So no sprites, and one size. I guess PBR needs tangents in addition to
normals. That does not seem to be too helpful.

-Andreas

> Date: Fri, 29 Nov 2019 03:24:25 -0500
> From: vmarchetti at kshell.com
> To: X3D Graphics public mailing list <x3d-public at web3d.org>, X3D
>         Design Printing and Scanning working group <cad at web3d.org>
> Subject: Re: [x3d-public] Normal vectors for points and lines?
>
> A contrary issues is that we haven't identified the visualization role of normal direction for a point cloud. That direction data is generated by  scanning processes and  it is used in some surface reconstruction algorithms that generate a mesh from point cloud data; however at this stage of the technology that surface reconstruction is not explicitly referenced in the X3D standard. For visualizatione there are two suggestions for use of normal data that have no relation to each other:
>
> One is the 'point cloud with hair' idea as shown in the DirectedPointSet example on the page http://kshell.com/pages/archimedes/visualization_comparison/ <http://kshell.com/pages/archimedes/visualization_comparison/> . This rendering is done with an X3D Prototype (see http://kshell.com/pages/archimedes/visualization_comparison/pointset_archie_dps.x3d ) that does contain a Coordinate node and a Normal node; but to define the visualization it also requires two Appearance fields and an SFFLoat field.
>
> The other idea is to use the Normal field to cull the point cloud, to not show points which are directed away from the viewpoint. The result should be kind of a quasi-mesh visualization, visually intermediate between a point cloud and a surface mesh constructed from the cloud. This use of the normal field is analogous to the use of the Normal node in the TriangleSet and FaceSet nodes, where the normal direction is not directly represented but only indirectly shown, where the surface is shaded so that it visually appears to be perpendicular to the normal vectors.
>
> I don't think we information as to which of these visualizations would be more useful to the user community. So as a standards writing matter, what guidance can we offer to the browser implementers as to how to use the normal data for a PointSet when implementing this extension in X3D V4?
>
> The same considerations would hold for adding a 'normal' field to the LineSet nodes.
>
> Vince Marchetti
>
> > On Nov 28, 2019, at 1:31 PM, Don Brutzman <brutzman at nps.edu> wrote:
> >
> > It would seem that we are going to allow Normal nodes in PointSet nodes - not sure if consensus was declared on that yet.  Any contrary issues will be good to know.
> >
> > For example: X3dMeshDesignPattern.x3d
> > https://x3dgraphics.com/examples/X3dForAdvancedModeling/Scanning/X3dMeshDesignPatternIndex.html
> >
> > Wondering, will we allow Normal nodes within LineSet and IndexedLineSet also?  (They are defined in the example also.)
> >
> > Of note is that X_ITE renders scene in the preceding page correctly, no complaints about Normal nodes.
> >
> > Seems logical to consistently allow Normal with all such geometry nodes, preserving data-structure patterns also helps preserve data.
> >
> > IF that is agreeable then I will update DOCTYPE x3d-4.0.dtd and schema x3d-4.0.xsd and X3DUOM accordingly.
> > How to render lines with normals would then seem to be another capability to integrate in revised rendering definitions of the X3Dv4 specification.
> >
> > 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 http://faculty.nps.edu/brutzman
> >
> > _______________________________________________
> > x3d-public mailing list
> > x3d-public at web3d.org
> > http://web3d.org/mailman/listinfo/x3d-public_web3d.org



More information about the x3d-public mailing list