可以通过下面的接口访问到sceneview:
camera = viewer->getCamera();
osgViewer::Renderer *render = dynamic_cast<osgViewer::Renderer *>(camera->getRenderer());
osgUtil::SceneView *sceneView = render->getSceneView(i);
这样可以派生自己的cullvisitor,重写apply,实现自己的剔除功能。
class mycullvisitor: public osgUtil::CullVisitor
{...
virtual void apply(...)
{
...
}
};
设置自己的剔除器mycullv,代替缺省的cullvisitor。
mycullvisitor* mycullv=new mycullvisitor();
sceneView->setCullVisitor(mycullv);