[X3D-Public] VisibilitySensor in LOD Level Browser Tests

Russ Kinter pyth7 at verizon.net
Tue Sep 22 13:05:11 PDT 2009


Hi,
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 
http://www.cs.vu.nl/~eliens/documents/vrml/reference/CH3.HTM#VisibilitySenso
r :
 
"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:
http://www.sevenemeraldtablets.net/VisibilityTest/VisibilityTest2.wrl 
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.
 
Thanks!
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/47be7814/attachment.html>


More information about the X3D-Public mailing list