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

Bederov, Sergey bederov at cortona3d.com
Thu Sep 24 05:25:08 PDT 2009

Hello Russ and all,


Strictly speaking, the specification allows the browser to err towards
the value "TRUE", i.e. emit a "TRUE" event when the VisibilitySensor is
actually invisible. But nevertheless, thank you for reporting this
issue. It seems to be easy to fix, so we will probably fix it in the
next Cortona release.


Regarding Script nodes: the specification explicitly states that the
Script should continue working if it is in "invisible" sections of the
scene graph, for example, in a disabled branch of a Switch. I think that
this applies to inactive branches of a LOD as well.


                                                Sergey Bederov



From: www-vrml-bounces at web3d.org [mailto:www-vrml-bounces at web3d.org] On
Behalf Of Russ Kinter
Sent: Wednesday, September 23, 2009 12:05 AM
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/20090924/7a4f4f6e/attachment-0001.html>

More information about the X3D-Public mailing list