[x3d-public] Question about parametric primitives

Christopher Bruns cmbruns at rotatingpenguin.com
Sat Sep 16 08:35:34 PDT 2017


Thanks Leonard for your insightful comments.

Leonard Daly wrote:

... [Christopher wrote]

> InfinitePlane, on the other hand, is not so similar to existing
> > structures. Basing InfinitePlane on ObscenelyLargeRectangle would be
> > imperfect, as would basing it on a half-invisible cube map. Perhaps
> > only a very specialized rendering implementation would be appropriate
> > for such a primitive.
>
> You can't use "ObscenelyLargeRectangle" because the vertices will be
> beyond the far clipping plan. This will cause the geometry to not be
> there. Also lighting calculations are based on vertices (and center
> point). If you have any gradation of lighting over the surface, it won't
> show. It would be better to tile the "virtual" plan out to the far
> clipping plane. There is no sense going much beyond that because it
> would never show, though going a bit beyond so there is always
> "something" there is useful.
>

Yes. You are right. The mesh based InfinitePlane proxy would need to be
tiled and limited in actual range. When the viewer camera moves, the plane
geometry might need to move too, but without altering the apparent location
of the texture coordinates. I don't relish the idea of implementing such a
thing.

My custom InfinitePlane renderer does not respect the far clip plane,
because InfintePlane bridges the gap between "background image" and local
geometry. The InfinitePlane display extends all the way to the horizon.
Past the far clip plane, the depth buffer gets populated with the maximum
value 1.0. I render the InfinitePlane with glDepthFunc(GL_LEQUAL), so it
would paint over the previously rendered skybox or background, but behind
any items lying between the viewer and the plane.

I suspect that InfinitePlane, if accepted as part of the X3D spec, should
be an optional advanced node that some compliant players should not be
required to implement.

I should mention that the custom rendering of all my parametric primitives,
from spheres to planes, cannot be rendered with per-vertex lighting,
because there are no such vertices, and no little triangles to interpolate.


> At this point I'd like to begin experimenting with existing browsers
> > that support X3D. Are there any written in python?
>
> The list of X3D players (open and otherwise) is at
> http://www.web3d.org/x3d/content/examples/X3dResources.html#Applications
>
> I don't know of any written in Python. X3DOM and Cobweb are written in
> JavaScript so that they can run in the browser. C/C++/C# is another
> frequent language. There are a couple written in Java.
>
>
> Leonard Daly
>

The various lists of X3D players includes some obsolete or difficult to
obtain programs. I did eventually get FreeWrl to run on my computer. I'm
tempted to start rolling my own open source viewer in python; with one
version for the desktop, and another for virtual reality headsets; both
sharing the same back end. Where can I get more information about X3D
compliance testing for viewers? I doubt I'll ever actually apply for
certification, but I'd like to use the tests nonetheless.

Christopher
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20170916/487673ff/attachment.html>


More information about the x3d-public mailing list