[x3d-public] visual shape differencing with x3d
Brutzman, Donald (Don) (CIV)
brutzman at nps.edu
Sun Jul 2 19:13:07 PDT 2023
Andreas, thanks for sharing on x3d public mailing list. Agreed that this is
an extremely powerful rendering technique - high "wow factor" for sure.
Perhaps of note is that the X3D working group spent a few years pursuing
Constructive Solid Geometry (CSG) with little to show for it, since such
approaches can be computationally intensive and not well suited to real-time
rendering on diverse devices.
* Wikipedia: Constructive solid geometry (CSG)
* https://en.wikipedia.org/wiki/Constructive_solid_geometry
Avoiding the need for any geometry modification whatsoever when creating
visual "holes" - totally sidestepping CSG modeling - seems quite novel.
Wondering if this differencing (see-through) technique is possible today
using glTF 2.0 models? If a supporting X3D4 player might load it as glTF,
then that might be a fast path to usage.
Looking ahead, when ready, this seems like the nodes you are using in X3DOM
(or some version thereof) might be strong candidates for inclusion in a
future X3D 4.1 specification.
Meanwhile (as you also recently discussed) we might experiment with
extensions to X3D 4.0, perhaps through metadata for forwards/backwards
compatibility and validation. (Wish list: the ImageAtlas node never made
the cut for X3D 4.0 and seems like a candidate for broader implementation as
well.) The X in X3D is Extensibility...
Congratulations on what seems to be a major achievement! 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
-----Original Message-----
From: x3d-public <x3d-public-bounces at web3d.org> On Behalf Of Andreas Plesch
Sent: Sunday, July 2, 2023 9:20 AM
To: X3D Graphics public mailing list <x3d-public at web3d.org>
Subject: [x3d-public] visual shape differencing with x3d
Let me share that we found that it is possible to simulate differencing of
shapes in x3dom to a useful degree. This allows for transparent cutouts or
holes:
https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.g
ithubusercontent.com/andreasplesch/415d151abee114858c79c20c8c4b49e0/raw/4c70
463321df267b28298462af76b869adbfdfdb/BoxWithHoles183.x3d
The idea is to draw first transparent shapes which define the holes,
including to the depth buffer. Then standard drawing of the solid shape will
be hidden where the holes 'obscure' it (although the holes are actually
transparent).
To do that requires two changes to default rendering of transparent shapes.
For best rendering normally transparent shapes are rendered last and do not
write to the depth buffer. Here they are drawn first and do write to the
depth buffer.
In x3dom this is implemented by allowing explicit definition of the sort
(rendering) order of shapes (with a sortKey field), and by allowing direct
access to the gl depthmask function with a Depthmode node.
An easy way to generate cutouts or holes which is otherwise only possible
with external CSG tools is a powerful use case for these lower-level x3d
extensions. Perhaps other browsers have similar features or are inspired to
consider those.
Andreas
--
Andreas Plesch
Waltham, MA 02453
_______________________________________________
x3d-public mailing list
<mailto:x3d-public at web3d.org> x3d-public at web3d.org
<http://web3d.org/mailman/listinfo/x3d-public_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/20230703/722f4cb5/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5464 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230703/722f4cb5/attachment-0001.p7s>
More information about the x3d-public
mailing list