查看: 1217|回复: 4

从外部读取的模型文件在场景中的问题?

[复制链接]

该用户从未签到

发表于 2009-10-12 20:27:08 | 显示全部楼层 |阅读模式
我是个OSG新手,当从外部文件读取多个模型放到场景中时,只能看到一个物体别的看不到,试着调视点位置还是不行,请各位大虾给我讲讲。。

该用户从未签到

发表于 2009-10-12 21:25:20 | 显示全部楼层
您需要提供更多的信息,否则我无法给您以帮助

该用户从未签到

 楼主| 发表于 2009-10-12 22:28:30 | 显示全部楼层
  1. #include <stdafx.h>
  2. #include <osgDB/ReadFile>
  3. #include <osgViewer/Viewer>
  4. #include <osg/Node>
  5. #include <osg/MatrixTransform>
  6. #include <osgGA/MatrixManipulator>

  7. void main()
  8. {
  9.         osgViewer::Viewer viewer;

  10.         osg::ref_ptr<osg::Group> root = new osg::Group;

  11.         osg::ref_ptr<osg::Node> tank = new osg::Node;

  12.         osg::ref_ptr<osg::Node> terrain = new osg::Node;

  13.         osg::ref_ptr<osg::MatrixTransform> trans = new osg::MatrixTransform;
  14.        
  15.                 osg::Matrix mr;
  16.                 //mr.translate(osg::Vec3(0.f,0.f,10.f));
  17.                 trans->setMatrix(mr);
  18.                 //mr.scale(osg::Vec3(5.f,5.f,5.f));
  19.                 mr.rotate(osg::DegreesToRadians(90.f),osg::Vec3(1.f,0.f,0.f));

  20.         terrain = osgDB::readNodeFile("lz.osg");

  21.         spaceship= osgDB::readNodeFile("spaceship.osg");

  22.         trans->addChild(spaceship);
  23.         root->addChild(trans);
  24.         //root->addChild(terrain);

  25.         viewer.setSceneData(root.get());
  26.        
  27.         viewer.getCamera()->setViewMatrixAsLookAt(osg::Vec3(0.f,0.f,10.f),osg::Vec3(0.f,0.f,-10.f),osg::Vec3(0.f,10.f,0.f));
  28.         viewer.realize();
  29.         viewer.run();
  30. }
复制代码

该用户从未签到

发表于 2009-10-12 22:47:02 | 显示全部楼层
您需要确切地知道两个模型的世界坐标和大小,以及同时观察它们的可行性。如果想同时观察一个地球和一根筷子的话,我想您无论如何也看不到后者的。

该用户从未签到

 楼主| 发表于 2009-10-13 09:29:34 | 显示全部楼层
就是说先要查看模型的源文件,搞清它的世界坐标,然后进行转换。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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