Hi Umit,

I'd guess that you are probably coming across a near plane clipping
issue, rather than a culling issue.  Unfortunately its easy to confuse
clipping with culling when you just see disappearing, but its too very
different mechanisms at play so its important to work out whether it
is clipping or culling that is at play.  The way to know is study how
the object disappears - does it slowly get eaten away or does it just
pop out of existance - the former will be near plane clipping down on
the GPU, the later most likely culling.

Both clipping and culling problems can be caused by incorrect bounding
volume computations - if your plane was a custom drawable or you'd
just a shader to modify its geometry then this might be a candidate.
If you are using standard osg::Geometry then its very unlikely that
culling as at fault as the OSG's native codes for computing bounding
volumes and doing cull testing are very well established and tested.

My guess is that most likely you have an issue with near plane
clipping, and if you have a very large model extents this can be very
common - as the far plane will be pushed out so far.  The OSG does
have support for cluster culling, and this will be used by default in
geocentric databases built by VPB, this will cull out tiles beyond the
horizon line and pull in the max far distance, but it doesn't solve
all the potential problems as the furtherest tile can still be a long
way out.   If you want to pull it in further you could manually
control it but then you'll need to make sure you use glFog/osg::Fog on
the terrain to make sure that you can only see up to a set maximum
distanace.   If you use this trick then disabling the compute of near
far will be required.   You should be able to enable the far clipping
plane as well.

The other thing you can do is to reduce the NearFarRatio by setting
setNearFarRatio to something lower than it's default of 0.0005f ( see
src/osg/CullSettings.cpp's setDefaults() method where it's set.)

Robert.

Robert.

2008/5/5 ümit uzun <[EMAIL PROTECTED]>:
>
>  Hi all,
>
>  I have an aircraft. I resize it and add scene on the earth but it get 
> invisible when I resized much smaller like that,
>
>  float size = 0.0005f / mAircraftModel.get( )->getBound( ).radius( );
>
>  mAircraftTransform->setDataVariance( osg::Object::STATIC );
>  mAircraftTransform->setMatrix( osg::Matrix::scale( size, size, size ) *
>  osg::Matrix::rotate( osg::DegreesToRadians( 90.0f ), 1.0f, 0.0f, 0.0f ) *
>  osg::Matrix::rotate( osg::DegreesToRadians( -90.0f ), 0.0f, 0.0f, 1.0f ) *
>  osg::Matrix::rotate( osg::DegreesToRadians( 5.0f ), 1.0f, 0.0f, 0.0f ) );
>
>  Earth size is,
>
>  float size = 2000.0f / mTerrainModel.get( )->getBound( ).radius( );
>
>  mTerrainTransform->setDataVariance( osg::Object::STATIC );
>  mTerrainTransform->setMatrix( osg::Matrix::scale( size, size, size ) );
>
>  What can I do for protect the aircraft visibility?
>
>  Thanks so much!
>
>
>  ÜMİT UZUN
>
>  _________________________________________________________________
>  Şimdi aileye katılmanın tam zamanı - Yeni nesil Ücretsiz Windows Live 
> Hizmetlerini şimdi edinin!
>  http://get.live.com
> _______________________________________________
>  osg-users mailing list
>  [email protected]
>  http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to