14、osg中通过一个模型,将其中一个模型隐藏掉输出成另一个模型(osg文件)

如下代码:

#include "stdafx.h"
#include <osgDB/Registry>
#include <osgDB/ReadFile>
#include <osgDB/ReaderWriter>
#include <osgDB/WriteFile>
#include <osg/Node>
#include <osgViewer/Viewer>
int _tmain(int argc, _TCHAR* argv[])
{
	osgViewer::Viewer viewer ;
	//读取模型
	osg::Node* node = osgDB::readNodeFile("fountain.osgt") ;
	//隐藏结点
	node ->asGroup() ->getChild(0) ->setNodeMask(0) ;
	viewer.setSceneData(node) ;
	//输出结点到free.osg中
	osgDB::writeNodeFile(*(viewer.getSceneData()), "free.osg", osgDB::Registry::instance() ->getOptions());
	viewer.realize();
	viewer.run();
	return 0;
}
运行结果如下:

14、osg中通过一个模型,将其中一个模型隐藏掉输出成另一个模型(osg文件)_第1张图片

然后就会在代码处输出一个free.osg文件,如下图所示,当使用free.osg时,只会显示和上图中一样的效果,而不必去隐藏什么。

14、osg中通过一个模型,将其中一个模型隐藏掉输出成另一个模型(osg文件)_第2张图片




你可能感兴趣的:(14、osg中通过一个模型,将其中一个模型隐藏掉输出成另一个模型(osg文件))