osg线框模式

问题的提出:

用如下代码,加载一个osg文件

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include
#include 

int main()
{


	osg::ref_ptr viewer = new osgViewer::Viewer;

	//初始化场景根节点
	osg::ref_ptr root = new osg::Group;

	//场景数据
	osg::ref_ptr  node = osgDB::readNodeFile("d:/gzbody.OSGB");
	root->addChild(node);

	//将场景数据加入视景器中
	viewer->setSceneData(root);
	viewer->run();
 
	return 0;
}

展示的模型如下所示:

osg线框模式_第1张图片

用户说有时需要提供线框模式,即像下图那样:

osg线框模式_第2张图片

代码如下:

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include
#include 

int main()
{


	osg::ref_ptr viewer = new osgViewer::Viewer;

	// 初始化场景根节点
	osg::ref_ptr root = new osg::Group;

	// 场景数据
	osg::ref_ptr  node = osgDB::readNodeFile("d:/gzbody.OSGB");
	osg::ref_ptrspStateSet = node->getOrCreateStateSet();
	osg::ref_ptr polyMode = new osg::PolygonMode(osg::PolygonMode::FRONT_AND_BACK, osg::PolygonMode::LINE);
	spStateSet->setAttribute(polyMode);
	root->addChild(node);

	// 将场景数据加入视景器中
	viewer->setSceneData(root);
	viewer->run();
 
	return 0;
}

你可能感兴趣的:(#,osg基础技术点,osg线框模型)