在osgEarthUtil 下 Ocean.cpp 的 traverse函数中:
// we don't want the ocean participating in the N/F calculation: osg::CullSettings::ComputeNearFarMode mode = cv->getComputeNearFarMode(); cv->setComputeNearFarMode( osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR ); // visit the ocean: osg::Group::traverse( nv ); cv->setComputeNearFarMode( mode );
以上代码会导致,自定义设置裁剪面模式(是否开启自动裁剪) 不正确。
解决方案几种思路:
1.在外部设置是否自动计算远近裁剪面时候通知这里一下,
2.修改此处代码,从其他方式改变海洋的traverse
3.需要随意开启关闭OE远近裁剪面的工程里关闭海洋模块