查看: 1062|回复: 1

添加AnimationPathCallback后飞机模型姿态出现偏差

[复制链接]

该用户从未签到

发表于 2014-4-18 09:20:39 | 显示全部楼层 |阅读模式
本帖最后由 nie 于 2014-4-18 09:23 编辑

想做一个飞机延直线飞行,写好路径后飞机确实按直线飞行,但是却出现了不想要的姿态上的滚转。
创建AnimationPath的代码如下
osg::AnimationPath* createPath(osg::Vec3Array* tracknode, float time)
{
        osg::ref_ptr<osg::AnimationPath>path = new osg::AnimationPath;
        path->setLoopMode(osg::AnimationPath:OOP);
        int num = 32;
        float delta_time = time/(float)num;
        for(int i = 0; i<num, i++)
        {       
                osg::Vec3 pos = (*tracknode);
                osg:uat rot = (0,osg::X_AXIS,0,osg::Y_AXIS,0,osg::Z_AXIS);
                path->insert(delta_time*(float)i,osg::AnimationPath::ControlPoint(pos,rot));
        }
        return path.release;
}
其中的tracknode是已经定义好的坐标数组。
在没有加AnimationPathCallback之前,飞机模型是摆正了的,加了之后就翘起来了(但保持这个姿态不变),
不知道为什么会有一个姿态上的变化,纠结啊。
设断点查看path,_rotation的值是Quat(0,0,0,1)。

该用户从未签到

发表于 2014-4-18 15:03:28 | 显示全部楼层
可以看一下飞机模型节点的nodepath查看问题出在哪,最终的maxrix肯定有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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