osg细节层次节点

osg中LOD细节层次节点,在不影响场景渲染结果的情况下,更具场景和观察者的距离,从多个预置方案中选择一个更为加单的方式显示,从而减少场景绘制的负担。

也就是说:可以设置不同的节点,在场景中距离远近的显示效果,在距离比较远的时候,就显示面数比较少的模型或者隐藏模型。在距离比较近的时候显示的比较全或者显示面数比较多的模型。

先看显示效果:
osg细节层次节点

void createLOD() {
	osg::ref_ptr<osg::Group> root = new osg::Group;

	osg::ref_ptr<osg::Node> ceepNode = osgDB::readNodeFile("cessna.osg");
	double r = ceepNode->getBound().radius();

	osg::ref_ptr<osg::Node> cowNode = osgDB::readNodeFile("cow.osgt");

	osg::ref_ptr<osg::LOD> lod = new osg::LOD;
	lod->addChild(ceepNode, r*0.1, 5 * r);
	lod->addChild(cowNode, 0.0, r);

	root->addChild(lod);

	osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
	viewer->addEventHandler(new osgViewer::WindowSizeHandler());
	viewer->setSceneData(root.get());

	viewer->realize();
	viewer->run();
}

aaa