查看: 1917|回复: 4

osgGA::NodeTrackerManipulator

[复制链接]

该用户从未签到

发表于 2013-5-6 15:40:14 | 显示全部楼层 |阅读模式
使用osgGA::NodeTrackerManipulator设置相机跟随运动的节点,实现相机围绕模型运动一周的效果。
首先,通过得到模型的包围盒半径绘制一个与包围盒中心同高度的点,设置圆周有32个点,将得到点作为animationPath的关键点,得到animationPath;
第二,绘制一个透明的球体,作为相机跟随的点,将第一步得到的路径,通过setUpdateCallback(new osg::AnimationPathCallback(animationPath.get(), 0.0, 1.0))传递给透明的球体;
第三,通过ntm->setTrackNode(mt->getChild(0));设置mt为相机跟随的节点
       通过上面三步,可以在osg中实现跟随,但是在osgEarth上由于模型所在的坐标很大,例如-2.3827e+006,不能实现模型跟随的效果,目前的效果就是,地球在转,设置的跟随的那个球体,在地球外面。
       具体原因我也不清楚,之前曾经通过交互点击路径,采用osgGA::NodeTrackerManipulator实现了相机跟随节点漫游,不知道为什么这种方式的路径不行,有没有人遇到过类似问题?

该用户从未签到

发表于 2013-5-6 17:35:59 | 显示全部楼层
地球在转,设置的跟随的那个球体,在地球外面。
我不明白这句话的意思

该用户从未签到

 楼主| 发表于 2013-5-6 17:39:51 | 显示全部楼层
array 发表于 2013-5-6 17:35
我不明白这句话的意思

地球绕着地轴转,那个被设置了animationPath的小球(相机跟随的节点),在地球外面的空间上

该用户从未签到

发表于 2013-5-13 09:14:56 | 显示全部楼层
那个被设置了animationPath的小球(相机跟随的节点),在地球外面的空间上
那个小球应该在什么地方?您的不少条件都没有说清楚啊

该用户从未签到

 楼主| 发表于 2013-5-14 09:01:04 | 显示全部楼层
array 发表于 2013-5-13 09:14
那个小球应该在什么地方?您的不少条件都没有说清楚啊

小球的位置本该在鼠标点击的位置,但是激活旋转命令就会变成在地球外面,不知道为什么。这个之前您在群里回答的,我用您的方法实现了,setViewMatrixAsLookat()。但是之前的这个不知道为什么不行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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