查看: 1952|回复: 12

关于AnimationPathManipulator(已解决)

[复制链接]

该用户从未签到

发表于 2013-5-15 20:42:41 | 显示全部楼层 |阅读模式
本帖最后由 一大波蓝猫 于 2013-5-16 10:35 编辑

我使用AnimationPathManipulator漫游器  代码如下
osg::ref_ptr<osgGA::AnimationPathManipulator> apm = new osgGA::AnimationPathManipulator(animationPath);
animationPath是一个路径 osg::ref_ptr<osg::AnimationPath>类型的 为什么运行后朝向 不对了呢
我使用模型路径动画 发现模型运动路径和朝向是对的 但是 为什么路径漫游就不对了呢 本来是朝向前的 但是路径漫游中朝向地面了 请问是什么原因啊? 求知道 谢谢!

该用户从未签到

 楼主| 发表于 2013-5-15 21:08:49 | 显示全部楼层
好像是因为上来视点就是朝向Z轴负方向的? 请问怎么让他朝向一个轴么 我调用了setHomePosition不管用啊

该用户从未签到

发表于 2013-5-15 23:45:19 | 显示全部楼层
估计是你的Quator 调用的方式不对,好好看看它的参数说明!

该用户从未签到

发表于 2013-5-16 08:04:04 | 显示全部楼层
camera的观察 和 模型的正好是相反的 注意一下这里

该用户从未签到

 楼主| 发表于 2013-5-16 09:22:52 | 显示全部楼层
VR_user_happy 发表于 2013-5-15 23:45
估计是你的Quator 调用的方式不对,好好看看它的参数说明!

我没用别的东西 就是下面两行代码啊。。是说少设置什么了么? 我试了下用setHomePosition和setByInverseMatrix都不行啊。。

osg::ref_ptr<osgGA::AnimationPathManipulator> apm = new osgGA::AnimationPathManipulator(animationPath);
viewer.setCameraManipulator(apm,true);

该用户从未签到

 楼主| 发表于 2013-5-16 09:23:44 | 显示全部楼层
liuzhiyu123 发表于 2013-5-16 08:04
camera的观察 和 模型的正好是相反的 注意一下这里

哦? 意思是说路径漫游和模型路径动画 如果使用同一个路径文件 那效果是反着的? 这里相反是指什么相反? 请指教!

该用户从未签到

 楼主| 发表于 2013-5-16 10:35:11 | 显示全部楼层
问题解决了。。在插入路径关键点的时候 用四元数做了几次旋转 把视点朝向调正了。。谢谢各位。。

该用户从未签到

发表于 2013-5-16 12:30:32 | 显示全部楼层
貌似解决,只是纠正,你并没找到问题的原因
     你在创建路径的时候,点的位置是正确的,但四元数,创建的有问题,主要是起点,你再查查!
     否则,下次出现这种情况,你又要去作校正?

该用户从未签到

 楼主| 发表于 2013-5-16 22:27:33 | 显示全部楼层
VR_user_happy 发表于 2013-5-16 12:30
貌似解决,只是纠正,你并没找到问题的原因
     你在创建路径的时候,点的位置是正确的,但四元数,创建的 ...

我觉得是不是因为 OSG默认的初始视点朝向是朝向Z轴负方向的 我创建关键点的朝向的时候 是让关键点绕Z轴旋转 所以视点还是朝向Z轴负方向的  不知道我说的对不对? 谢谢指导!

该用户从未签到

发表于 2013-5-16 23:01:22 | 显示全部楼层
本帖最后由 VR_user_happy 于 2013-5-16 23:05 编辑

1. 你模型的初始方向在不加载动画路径的时候,是否与你加载动画路径的头一个点后(不设多点,只保留一个点),是否与你的预期相符,就知道你是否旋转有错没有!
2. 其实与默认视点一点关系么有,只与坐标系有关!
    你的QUATOR四元素控制着旋转,如果你加载使用错误,他就不超向你预定的方向!
3.特别是你初始化化如果有做矩阵4元素的旋转,特别是在处理osg:: Quat qRot(0,0,0,1)要格外小心


   

该用户从未签到

发表于 2013-5-16 23:15:35 | 显示全部楼层
本帖最后由 VR_user_happy 于 2013-5-16 23:37 编辑

  1. 不太明白,你的路径漫游是什么,如果是只摄像机视点自动路径漫游(使用同一条路径)
   视点的初始位置HOME 只是略有点头向下,如果你的自动路径加载向下看,就说明你的Quator旋转有问题
估计是你读取设置Quator是第一个参数搞错了,请问你是怎么用四元素读取或是写关键点的?是X,Y,Z,W还是W,X,Y,Z(读或写估计有误)!
2. 你说模型在路径上正确,估计是你做了调整。
             A 模型初始化就不是正常的吧?
                 在VIEWER查看器,或单独加载是就正确?
            B 在关键点又做了多余的旋转

该用户从未签到

 楼主| 发表于 2013-5-17 09:06:22 | 显示全部楼层
是摄像机视点自动路径漫游
osg:uat rotation(osg::Quat(osg::inDegrees(-90.0f),osg::Vec3(0.0,1.0,0.0))
                        *osg::Quat(osg::inDegrees(90.0f),osg::Vec3(1.0,0.0,0.0))
                        *osg::Quat(yaw, osg::Vec3(0.0,0.0,1.0)));
这个是插入关键点时的四元数 模型是个车 用viewer看是正常 但是用同一个路径的话(不做任何多余的旋转)视点朝向总是朝向车子底部的

该用户从未签到

发表于 2013-5-17 11:02:56 | 显示全部楼层
1.
你这是所有点还是某个调整点:
    一般只需要旋转一个轴(Z轴---小车在XOY平面内运动):osg:uat(yaw, osg::Vec3(0.0,0.0,1.0)));
    如果所有插入点都是做这种旋转,肯定有问题
2.如前面我所讲的:(如果不是所有点)
   只保留第一个路径点(时间T放长点) 再看加载的动画路径,就可知道你做的旋转是否正确了,如果小车的旋转不是你预期的就说明了问题
      ( 不知道你的路径是存储的文件形式,还是临时用插入控制点做的)

      
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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