|
楼主 |
发表于 2010-1-18 22:50:13
|
显示全部楼层
2# array
#include <Windows.h>
#include <osg/Node>
#include <osg/Group>
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
#include <osgUtil/Optimizer>
int main()
{
osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("cow.osg");
osg::ref_ptr<osg::Group> root = new osg::Group;
//////////////////////////////////////////////////////////////////////////
osg::ref_ptr<osg::Group> group = new osg::Group;
group->addChild(node.get());
root->addChild(group.get());
//////////////////////////////////////////////////////////////////////////
osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer;
viewer->setSceneData(root.get());
osgUtil::Optimizer* optimizer = new osgUtil::Optimizer;
optimizer->optimize(root.get());
group->removeChildren(0, 1); // 删除group下的孩子
viewer->run();
return 0;
}
Array,能不能帮我解释下
osgUtil::Optimizer* optimizer = new osgUtil::Optimizer;
optimizer->optimize(root.get());
这两行的原理啊?
我发现,当没有这两行时,渲染并不会显示牛;而当上面两行加上去之后牛仍然显示,说明场景中的数据已经于group没有关系了。我现在对以上两行的优化原理是一头雾水啊!上网搜了很久也没有搜到比较好的文档,自己看了下源码,依然是云里雾里的,Array能否解释下,希望详细点!谢谢! |
|