查看: 1293|回复: 2

关于模型纹理

[复制链接]

该用户从未签到

发表于 2013-4-22 19:31:00 | 显示全部楼层 |阅读模式
我在场景中添加了两个模型 对其中一个进行了缩小 然后就没了纹理 不缩小就有 请问是为什么? 代码如下
  1. int main(){
  2.         osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
  3.         osg::ref_ptr<osg::Group> root = new osg::Group();
  4.         osg::ref_ptr<osg::Node> robot = osgDB::readNodeFile("data/aodi.ive");        //读取机器人模型
  5.         osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("data/pointCloud470.ive");
  6.        
  7.         //得到包围盒,来确定动画旋转中心
  8.         const osg::BoundingSphere& bs = robot->getBound();
  9.         osg::Vec3 position = bs.center();
  10.         //缩放比例
  11.         float size = 1.0f/bs.radius()*1.0f;
  12.        
  13.         //创建路径
  14.         osg::ref_ptr<osg::AnimationPath> animationPath = new osg::AnimationPath();
  15.         animationPath = createAnimationPath(position);

  16.         //导出路径
  17.         std::string fileName("D:/GTZ/LearnOSG/LearnOSG/data/animation.path");
  18.         std::ofstream out(fileName.c_str());
  19.         animationPath->write(out);

  20.         osg::ref_ptr<osg::MatrixTransform> mt = new osg::MatrixTransform();
  21.         //OSG确保只有STATIC数据可以进行图形渲染
  22.         mt->setDataVariance(osg::Object::STATIC);
  23.         //进行适当的变换(平移,缩放以及旋转)
  24.         mt->setMatrix(osg::Matrix::translate(-bs.center())*osg::Matrix::scale(size,size,size)*osg::Matrix::rotate(osg::inDegrees(90.0f), 0.0f, 0.0f, 1.0f));//这里如果让size为1 robot模型就有纹理 如果缩小 就看不到纹理
  25.         mt->addChild(robot.get());
  26.         osg::ref_ptr<osg::PositionAttitudeTransform> pat = new osg::PositionAttitudeTransform();
  27.         //设置更新回调
  28.         pat->setUpdateCallback(new osg::AnimationPathCallback(animationPath.get(),0.0f,1.0f));
  29.         pat->addChild(mt.get());
  30.         root->addChild(pat.get());
  31.         root->addChild(node.get());
  32.         //root->addChild(osgDB::readNodeFile("axes.osgt"));

  33.         osgUtil::Optimizer optimzier;
  34.         optimzier.optimize(root.get());
  35.         viewer->setSceneData(root.get());

  36.         //添加路径动画控制事件
  37.         //viewer->addEventHandler(new AnimationEventHandler(*(viewer.get())));

  38.         viewer->setUpViewInWindow(10,10,1200,800);
  39.         viewer->realize();
  40.        
  41.         viewer->run();
  42.        
  43.         return 0;
  44. }
复制代码
截图如下 图中白色汽车就会robot模型  看不到纹理
贴图 未命名.jpg

该用户从未签到

发表于 2013-4-23 08:13:34 | 显示全部楼层
GL_NORMALIZE

该用户从未签到

 楼主| 发表于 2013-4-23 20:01:44 | 显示全部楼层
liuzhiyu123 发表于 2013-4-23 08:13
GL_NORMALIZE

已解决 非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表