|
使用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实现了相机跟随节点漫游,不知道为什么这种方式的路径不行,有没有人遇到过类似问题? |
|