|
为什么我的纹理加载不到坦克上去呢?
代码如下:
int main()
{
//创建Viewer对象,场景浏览器
osgViewer::Viewer* viewer = new osgViewer::Viewer();
//创建场景组节点
osg::Group* root = new osg::Group();
//创建一个节点
osg::Node* node = new osg::Node();
//读取一个牛的模型
node = osgDB::readNodeFile("t72-tank_des.osg");
osg::Texture2D* KLN89FaceTexture = new osg::Texture2D;
//避免在优化过程中出错
KLN89FaceTexture->setDataVariance(osg::Object:YNAMIC);
// 从文件读取图片
osg::Image* klnFace = osgDB::readImageFile("tank.rgb");
// 将图片关联到纹理
KLN89FaceTexture->setImage(klnFace);
// 创建StateSet
osg::StateSet* stateOne = new osg::StateSet();
// 将纹理关联给StateSet的纹理单元0
stateOne->setTextureAttributeAndModes(0,KLN89FaceTexture,osg::StateAttribute::ON);
// 将渲染状态关联给tanke节点
node->setStateSet(stateOne);
//添加到场景
root->addChild(node);
//优化场景数据
osgUtil::Optimizer optimizer ;
optimizer.optimize(root) ;
//设置场景数据
viewer->setSceneData(root);
//初始化并创建窗口
viewer->realize();
//开始渲染
viewer->run();
return 0 ;
}
感谢 |
|