查看: 936|回复: 2

osgOcean中往oceanExample例子中添加模型时的显示问题

[复制链接]

该用户从未签到

发表于 2014-9-11 20:36:34 | 显示全部楼层 |阅读模式
        利用oceanExample中的方法往海洋中添加其他模型,发现只有将模型放在OceanScene节点下才能显示,关键代码如下:
  1.     osg::Group* root = new osg::Group;
  2.     root->addChild( scene->getScene() );
  3.     root->addChild( hud->getHudCamera() );

  4.         osg::ref_ptr<osg::Node> node=osgDB::readNodeFile("glider.osg");
  5.         osg::ref_ptr<osg::MatrixTransform> mat=new osg::MatrixTransform;
  6.         osg::BoundingSphere bb=node->getBound();
  7.         mat->setMatrix(osg::Matrix::translate(-bb.center().x(),-bb.center().y()+20,-bb.center().z()+20));
  8.         mat->addChild(node);

  9.         scene->getOceanScene()->addChild(mat);
复制代码

效果如下:
PT]N7EL(K]~JU1RPLN(92)O.jpg
    但是将模型放在root根节点下却无法显示模型。关键代码如下:
  1.     osg::Group* root = new osg::Group;
  2.     root->addChild( scene->getScene() );
  3.     root->addChild( hud->getHudCamera() );

  4.         osg::ref_ptr<osg::Node> node=osgDB::readNodeFile("glider.osg");
  5.         osg::ref_ptr<osg::MatrixTransform> mat=new osg::MatrixTransform;
  6.         osg::BoundingSphere bb=node->getBound();
  7.         mat->setMatrix(osg::Matrix::translate(-bb.center().x(),-bb.center().y()+20,-bb.center().z()+20));
  8.         mat->addChild(node);

  9.         //将模型加在root根节点下
  10.         root->addChild(mat);
复制代码

效果如下:
P0AFL99Y~HEHI(FBE]%WCFT.jpg
        或者将模型加在scene->getScene() 这个组节点下效果也和将模型加在root根节点下一样显示不了模型。这是为什么?我更希望将模型放在根节点下,论坛里关于往osgOcean中添加模型的帖子有如下两个:感觉答复中提到的问题我也注意到了,但是还是无法显示模型。
http://bbs.osgchina.org/forum.ph ... amp;_dsign=9d5a2bed
http://bbs.osgchina.org/forum.ph ... amp;_dsign=61fa4cc3

该用户从未签到

发表于 2014-9-24 14:40:06 | 显示全部楼层
在根节点下可以显示,可能是你位置没对。你把模型放大一百倍试试。
在ocean节点下可以显示出倒影,在根节点下就无法显示

该用户从未签到

发表于 2014-10-23 16:23:53 | 显示全部楼层
放到根节点下,能显示,就是太小了,你得找
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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