[X3D-Public] [WWW-Vrml] VisibilitySensor in LOD Level Browser Tests

Tony Parisi tparisi at vivaty.com
Tue Sep 22 13:12:30 PDT 2009

Hi Russ


I believe this. Vivaty Player doesn't cull out sensors if their boxes
aren't part of the active scene graph. It's never been clear to me-nor
explicit in the spec-as to what the correct behavior is supposed to be
for a sensor that is switched out of a Switch or LOD. It would be nice
to get some clarifying language in the spec someday.


But your interpretation is totally reasonable. Sorry if we came down on
the wrong side of it :-o I promise you it was motivated purely by the
desire to keep an already complicated implementation as simple as we
could. But I could certainly be talked into changing this in the future.






From: www-vrml-bounces at web3d.org [mailto:www-vrml-bounces at web3d.org] On
Behalf Of Russ Kinter
Sent: Tuesday, September 22, 2009 1:05 PM
To: x3d-public at web3d.org; 'vrml'
Cc: 'FreeWRL X3D/VRML Viewer'
Subject: [WWW-Vrml] VisibilitySensor in LOD Level Browser Tests



I have been doing some testing of including a VisibilitySensor as a
member of the first level of the LOD Node to control an animation. The
idea is that the animation won't start until the animated geometry
appears in the range of the LOD.

The VisibilitySensor is grouped with this geometry.


The results work similar to a ProximitySensor. 

This method should work according to "The Annotated VRML 97 Reference
Manual" at 

ensor :


"If enabled is TRUE, the VisibilitySensor node detects changes to the
visibility status of the box specified and sends events through the
isActive eventOut. A TRUE event is output to isActive when any portion
of the box impacts the rendered view. A FALSE event is sent when the box
has no effect on the view. Browsers shall guarantee that, if isActive is
FALSE, the box has absolutely no effect on the rendered view. Browsers
may err liberally when isActive is TRUE. For example, the box may affect
the rendering."


If the VisibilitySensor as a member of a LOD level is currently out of
range that means its box is NOT impacting the rendered view, so its
isActive output should be FALSE.


This test world:

however shows mixed results for various browsers.


There is a HUD display of the VisibilitySensor and TimeSensor activity. 

The transparent red cube is both the VisibilitySensor's box and LOD
range boundary. 


Xj3D and Contact get it right! kudos!.


Vivaty does initially, but if the user enters box/LOD level and turns on
the animation and then leaves the range

Vivaty won't switch off the animation, so the LOD is ignored after the
VisibilitySensor is activated. 

The VisibilitySensor seems to work as it should otherwise. 


InstantPlayer fails in that it will not shut off the VisibilitySensor
when it is out of the LOD range.

The LOD has no affect on it and is ignored. The VisibilitySensor works
as it should otherwise.


CosmoPlayer does the opposite of Vivaty. It makes the VisibilitySensor
active on load, but once the viewer enters the range

and leaves, then the test works just like it should.


FreeWRL works initially, but once the LOD range is entered and the
VisibiltySensor is activated, then the VisibiltySensor

isActive TRUE no matter what -even when the red box is out of sight and
out of mind.

Clicking on the cones to change viewpoints FreeWRL puts the user at the
wrong coordinates. 


Cortona 5.1 fails completely. The VisibilitySensor isActive TRUE no
matter what -even if the user is completely turned away.

OctagaPlayer fails too in exactly the same way.



Russ Kinter


"All the fires of Cain's motivation cannot burn a love that's sound." -
Stacy Sutherland


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20090922/75efed32/attachment-0001.html>

More information about the X3D-Public mailing list