可以通过下面的接口访问到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);

博客介绍了通过接口访问sceneview,可派生自己的cullvisitor并重写apply来实现自定义剔除功能,还能设置自己的剔除器mycullv替代缺省的cullvisitor,主要涉及C++相关操作。

474

被折叠的 条评论
为什么被折叠?



