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

Tony Parisi tparisi at vivaty.com
Tue Sep 22 17:01:16 PDT 2009


Ok let me meditate on it and reread the core concepts germane to the
issue;

 

I have gone in and out of this topic over the years. It was fresher in
my mind when building the Player support for it way back when. Then I
would forget, then someone would report a nasty bug around it. Then I
would forget again.

 

Something to do with needing to define when a node is in the "visible"
scene graph (can't remember if there's an actual concept for that in the
Concepts sections), and then tying that concept to when a sensor goes
active and/or how its bounding boxes are dealt with. I think this would
also be true for ProximitySensors.

 

Heh: what about Script nodes? 

 

 

 

 

From: Richard F. Puk [mailto:puk at igraphics.com] 
Sent: Tuesday, September 22, 2009 3:56 PM
To: Tony Parisi; 'Russ Kinter'; x3d-public at web3d.org; 'vrml'
Cc: 'FreeWRL X3D/VRML Viewer'
Subject: RE: [X3D-Public] [WWW-Vrml] VisibilitySensor in LOD Level
Browser Tests

 

Hi, Tony and/or Russ -

 

How about submitting a spec comment with proposed text?

 

  -- Dick

 

/******************************************

| Richard F. Puk, Ph.D., President
| Intelligraphics Incorporated

| 7644 Cortina Court, Carlsbad, CA  92009-8206

| Tel:  +1-760-753-9027   Cell:  +1-760-809-9027

| E-mail:  puk at igraphics.com

| Web:  http://www.igraphics.com/

\******************************************

 

 

 

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

 

Yes, exactly: the only way to hack around the problem is to essentially
build your own Switches and LODs by stringing together ProximitySensors
and maybe PROTOs to hide the details. 

 

So, if we can get everyone to agree this is the way to do it, it's just
a spec issue. I maintain that the spec is too vague about this issue and
could use some more language

 

From: Russ Kinter [mailto:pyth7 at verizon.net] 
Sent: Tuesday, September 22, 2009 1:34 PM
To: Tony Parisi; x3d-public at web3d.org; 'vrml'
Cc: 'FreeWRL X3D/VRML Viewer'
Subject: RE: [WWW-Vrml] VisibilitySensor in LOD Level Browser Tests

 

Hi Tony,

Thanks for your very quick response.

I would like to add that I think my interpretation is more than
reasonable, because it makes good economic sense.

Any interpretation other than what Xj3D and Contact uses forces the
developer to add a ProximitySensor into the

scene to turn off the animation -resulting in a duplication of effort
because the LOD already tracks the user.

The LOD/VisibilitySensor tandem combo is elegant.

 

Thanks again,

Russ Kinter

 

 

________________________________

From: Tony Parisi [mailto:tparisi at vivaty.com] 
Sent: Tuesday, September 22, 2009 4:12 PM
To: Russ Kinter; x3d-public at web3d.org; vrml
Cc: FreeWRL X3D/VRML Viewer
Subject: RE: [WWW-Vrml] VisibilitySensor in LOD Level Browser Tests

 

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.

 

Tony

 

 

 

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

 

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#VisibilityS
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:
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/938aed39/attachment-0001.html>


More information about the X3D-Public mailing list