查看: 1748|回复: 3

sethomeposition的视角问题

[复制链接]

该用户从未签到

发表于 2014-1-17 19:28:53 | 显示全部楼层 |阅读模式
漫游器设置tm->setTrackNode(ship1);
const osg::BoundingSphere& boundingSphere=ship1->getBound()
我想设置视角在ship1的船舱位置,
我错误的做法如下:
用这个dir = osg::Vec3d(0, 1,-0.33);       
tm->setHomePosition(boundingSphere._center+dir*(-40),
boundingSphere._center,
tm->getUpVector(osg::Matrix::identity()),false);
但是这个(0, 1,-0.33)向量是朝着下的,用(0,-1,0),视点的高度又不够
我想在boundingSphere._center的一定高度平视前方.
但是用另一个外接球bs=boundingSphere._center+osg::vec3f(0,0,20);这样不行.
求指教啊.

该用户从未签到

发表于 2014-1-18 22:13:25 | 显示全部楼层
改变setHomePosition的第二个参数,也就是center的值,当然同时可能也要改变第三个up的值来满足您的要求

该用户从未签到

 楼主| 发表于 2014-1-19 17:05:30 | 显示全部楼层
array 发表于 2014-1-18 22:13
改变setHomePosition的第二个参数,也就是center的值,当然同时可能也要改变第三个up的值来满足您的要求

改变了center=node1->getBound()._center+30*osg::vec3f(0,0,1);
漫游器设置是tm->setTrackNode(node1);
但是发现改变center没有效果,
我想是不是setTrackNode为node1的原因.
但是如果mt设置为(0,0,30),并addChild(node1),
然后setTrackNode为mt的话就看不到node1的模型.

该用户从未签到

发表于 2014-2-18 11:15:54 | 显示全部楼层
voovoo 发表于 2014-1-19 17:05
改变了center=node1->getBound()._center+30*osg::vec3f(0,0,1);
漫游器设置是tm->setTrackNode(node1); ...

我也碰到了类似的问题,楼主您的问题解决了吗?怎么弄的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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