[x3d-public] candidate feature: display bounding box

Andreas Plesch andreasplesch at gmail.com
Tue Jan 21 08:32:00 PST 2020


On Tue, Jan 21, 2020 at 11:06 AM Don Brutzman <brutzman at nps.edu> wrote:
>
> Thanks for considering impact.  Since bounding boxes are easily/commonly computed, am thinking that implementation isn't difficult.  It seems to apply to two classes of nodes, either shapes or else nodes that group shapes together (e.g. X3DGroupingNode, NurbsSet etc.)

The issue with implementation is not that it is difficult to compute.
Indeed, the bbox will be computed anyways. But rendering is another
matter. It would add a whole new class of renderable objects which
will require deeper changes in most implementations. But certainly
doable. The performance impact may need to be considered to, if it is
a inputoutput field. How would one avoid impacting performance when no
bbox are shown, the default case ?

> Note that this only impacts the specific X3DBoundedObject that it applies too, authors and tools would be able to selectively apply it within the scene graph tree of interest for the degree of detail needed.
>
> Supporting debugging during authoring is good, have added it to the multiple other benefits.  Potentially may have extra benefit when testing across multiple display types or interaction devices.
>
> Am thinking that this feature can be a potential benefit to interactive usability and user experience as much as anything else, not just a low-level graphics embellishment.

It could be useful for highlighting, or selecting. But it would be
pretty rudimentary since some browsers may use thin black lines, some
browsers may use fat green lines or tubes and other browsers may use a
semitransparent box. A good UI will be probably require more
predictability. But for a quick solution it would be quite useful.

>
> Mantis issue 1277 provides running summary.
> "1277: Provide field on X3DBoundedObject nodes to display bounding boxes."
> https://www.web3d.org/member-only/mantis/view.php?id=1277
>
> On 1/21/2020 5:39 AM, Andreas Plesch wrote:
> > Since the appearance of the shown bbox cannot be controlled and would be up to the browser, the feature would be mostly for debugging during authoring. So I think for X3D browsers it is not critical.
> > An implementation issue is that browsers would typically organize rendering around Shapes but a X3DBoundedObject such as Group does not necessarily need to contain a Shape.
> > So I think it would not become a priority for x3dom. InstantReality already has the field, however, so the two implementations may not be out reach if the feature is standardized.
> >
> > ---on the phone---
> >
> > On Mon, Jan 20, 2020, 9:20 PM Don Brutzman <brutzman at nps.edu <mailto:brutzman at nps.edu>> wrote:
> >
> >     Summary: we should consider adding a field on X3DBoundedObject nodes to display bounding boxes.
> >
> >     On 1/18/2020 7:04 AM, Andreas Plesch wrote:
> >      > It makes a lot of sense to use X3DBoundedObject for a visible field.
> >      > It turns out that x3dom always used X3DBoundedObject for its render field:
> >      >
> >      > https://github.com/x3dom/x3dom/blob/master/src/nodes/Grouping/X3DBoundedObject.js#L40
> >      >
> >      > x3dom  followed InstantReality:
> >      >
> >      > https://doc.instantreality.org/documentation/nodetype/BoundedNode/
> >
> >     namely "showBBox        SFBool  inputOutput     FALSE           Show Bounding Box of Subtree."
> >
> >     Bounding boxes may optionally be provided by authors but are almost always computed directly by browsers.
> >
> >     This feature is also provided in view3dscene and other tools, albeit perhaps as a browser setting.
> >
> >     The ability to display bounding boxes has multiple potential benefits:
> >     - highlight geometry of interest, such as a selection or a target;
> >     - show collision boundaries, for camera-to-object or object-to-object collisions;
> >     - provide highlighted user feedback,
> >     - ... other uses perhaps?
> >
> >     This feature can be accomplished by authors but only with significant effort, complex error-prone computation, and higher profiles for use of scripting (and likely prototypes as) well.
> >
> >     I doubt if an X3D player can implement X3D without having this feature already.
> >
> >     Suggested specification addition:
> >
> >     https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/group.html#X3DBoundedObject
> >     10.3.1 X3DBoundedObject
> >
> >              SFBool [in out] showBBox FALSE
> >
> >     "When showBBox is true, a wireframe bounding box is displayed for the associated geometry."
> >
> >     All opinions and improvements welcome.
> 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



--
Andreas Plesch
Waltham, MA 02453



More information about the x3d-public mailing list