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

Paul Aslin fabricatorgeneral at yahoo.com
Wed Sep 23 18:08:58 PDT 2009


This is actually a very useful feature when it works.
Basically use the LOD to control the level of detail, and also turn off the animation (by use of the VisibilitySensor. Thusly allowing distant objects to turn off their animations, a real boost to frame rates.

The VisibilitySensor is poorly implemented and explained in practical terms (examples and tutorials instead of bland spec documents). This is one of the reasons these implementation bugs crop up.

Good to see this one is going to get fixed.

Paul Aslin

--- On Wed, 23/9/09, Tony Parisi <tparisi at vivaty.com> wrote:

> From: Tony Parisi <tparisi at vivaty.com>
> Subject: Re: [X3D-Public] [WWW-Vrml] VisibilitySensor in LOD Level Browser Tests
> To: "Richard F. Puk" <puk at igraphics.com>, "Russ Kinter" <pyth7 at verizon.net>, x3d-public at web3d.org, "vrml" <www-vrml at web3d.org>
> Cc: "FreeWRL X3D/VRML Viewer" <freewrl at crc.ca>
> Received: Wednesday, 23 September, 2009, 9:31 AM
> 
> 
> 
>  
>  
> 
> 
> 
> 
> 
> 
> 
>  
> 
> 
> 
> 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#VisibilitySensor
> : 
> 
> 
>   
> 
> “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 
> 
>    
> 
> 
> 
> 
> 
> 
> 
>  
> 
> 
> 
> -----Inline Attachment Follows-----
> 
> _______________________________________________
> X3D-Public mailing list
> X3D-Public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
> 


      __________________________________________________________________________________
Get more done like never before with Yahoo!7 Mail.
Learn more: http://au.overview.mail.yahoo.com/




More information about the X3D-Public mailing list