|
利用oceanExample中的方法往海洋中添加其他模型,发现只有将模型放在OceanScene节点下才能显示,关键代码如下:
- osg::Group* root = new osg::Group;
- root->addChild( scene->getScene() );
- root->addChild( hud->getHudCamera() );
- osg::ref_ptr<osg::Node> node=osgDB::readNodeFile("glider.osg");
- osg::ref_ptr<osg::MatrixTransform> mat=new osg::MatrixTransform;
- osg::BoundingSphere bb=node->getBound();
- mat->setMatrix(osg::Matrix::translate(-bb.center().x(),-bb.center().y()+20,-bb.center().z()+20));
- mat->addChild(node);
- scene->getOceanScene()->addChild(mat);
复制代码
效果如下:
但是将模型放在root根节点下却无法显示模型。关键代码如下:
- osg::Group* root = new osg::Group;
- root->addChild( scene->getScene() );
- root->addChild( hud->getHudCamera() );
- osg::ref_ptr<osg::Node> node=osgDB::readNodeFile("glider.osg");
- osg::ref_ptr<osg::MatrixTransform> mat=new osg::MatrixTransform;
- osg::BoundingSphere bb=node->getBound();
- mat->setMatrix(osg::Matrix::translate(-bb.center().x(),-bb.center().y()+20,-bb.center().z()+20));
- mat->addChild(node);
- //将模型加在root根节点下
- root->addChild(mat);
复制代码
效果如下:
或者将模型加在scene->getScene() 这个组节点下效果也和将模型加在root根节点下一样显示不了模型。这是为什么?我更希望将模型放在根节点下,论坛里关于往osgOcean中添加模型的帖子有如下两个:感觉答复中提到的问题我也注意到了,但是还是无法显示模型。
http://bbs.osgchina.org/forum.ph ... amp;_dsign=9d5a2bed
http://bbs.osgchina.org/forum.ph ... amp;_dsign=61fa4cc3 |
|