Hi Umit,

You shouldn't mix SceneView settings of near/far, just set the
CullSettings on the Camera itself, these will be probagated
automatically to any SceneView's used internally by osgViewer for
rendering.

Robert.


On Fri, May 9, 2008 at 3:28 PM, ümit uzun <[EMAIL PROTECTED]> wrote:
>
> Hi Robert;
>
> I have tried all your advices and osg::Fog effect works the invisibility 
> problem. I try to other ;
>
> 1 - changing setNearFarRatio' value,
>
> 2 - adding 
> viewer.getCamera()->setComputeNearFarMode(osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR
>  ); pattern and
>
> 3 - osg::CullStack::CullingMode cullingMode = sceneview->getCullingMode();
>     cullingMode &= ~ ( osg::CullStack::SMALL_FEATURE_CULLING  );
>     sceneview->setCullingMode( cullingMode );
>     // You can also control the size of the screen space that is used to cull
>     // small features with
>     sceneview->setSmallFeatureCullingPixelSize( minimumSize );
>
> but any of them didn't help me. So why the osg::fog effect fix the problem?
> I guess; it reduce the detail of scene and so this has resulted of protecting 
> the models visibility. Does it could be right ?
>
> Thanks so much Robert :)
>
> ÜMİT UZUN
>
> ----------------------------------------
>> Date: Wed, 7 May 2008 09:38:08 +0100
>> From: [EMAIL PROTECTED]
>> To: [email protected]
>> Subject: Re: [osg-users] Aircraft Getting Invisible ?
>>
>> 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 :
>>>
>>>  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
>
> _________________________________________________________________
> Ş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