查看: 1776|回复: 4

osgearth 球面动画问题

[复制链接]

该用户从未签到

发表于 2013-11-1 17:21:49 | 显示全部楼层 |阅读模式
最近需要做球面动画,现在遇到 这样一个问题,我使用osg的动画路径,插入一些列球面坐标,然后旋转四元数设定为,球面两点之间的差乘。这样出来的动画,有动画在运行,不过有个问题,当场景不动的时候,动画显示没有问题。当鼠标稍微移动一下场景,我发现场景的帧率编程2,3,场景中的updateCallback 为300多,每一帧中。请问这是为什么,节点更新回调中,哪些变化对其时间影响较大

场景移动时

场景移动时

场景静止时

场景静止时

该用户从未签到

 楼主| 发表于 2013-11-18 10:17:15 | 显示全部楼层
本问题已解决

该用户从未签到

发表于 2013-11-19 16:13:35 | 显示全部楼层
您好,我也想做球面动画,按照Array老师的教程,写了下面代码:
osg::AnimationPath* CCustomOSGWnd::CreatePath()
{
        typedef osg::AnimationPath::ControlPoint ControlPoint;
        osg::ref_ptr<osg::AnimationPath> path = new osg::AnimationPath;
        path->insert(0.0,ControlPoint(osg::Vec3d(122.20,28.59,400)));
        path->insert(5.0,ControlPoint(osg::Vec3d(122.2075,28.66,300)));
        path->insert(10.0,ControlPoint(osg::Vec3d(122.215,28.73,200)));
        path->insert(15.0,ControlPoint(osg::Vec3d(122.225,28.80,100)));
        path->insert(20.0,ControlPoint(osg::Vec3d(122.23,28.86,0)));

        return path.release();

}

BOOL CCustomOSGWnd::CreateMoveModel()
{
        osg::Node* model = osgDB::readNodeFile("F:\\new\\ThirdPartyLib\\Data\\Model\\F-16.ive");//cessna.osg

        osg::AnimationPath* path = CreatePath();
        path->setLoopMode(osg::AnimationPath:OOP);

        osg::MatrixTransform* positioned = new osg::MatrixTransform;
        positioned->setMatrix(osg::Matrixd::scale(0.08,0.08,0.08));
        positioned->addChild(model);
        positioned->setUpdateCallback(new osg::AnimationPathCallback(path));
        m_pRootNode->addChild(positioned);

        return TRUE;
}
但是运行后没有反应,能指点下吗,谢谢了

该用户从未签到

 楼主| 发表于 2013-11-20 11:15:20 | 显示全部楼层
你使用的是经纬度坐标,根本没有坐标转化,那样的话,就不是球面坐标,你可以看下osgEarthExample 下的osgearth_los.cpp。里面有一个简单的球面动画

该用户从未签到

发表于 2013-11-20 17:29:09 | 显示全部楼层
ysw 发表于 2013-11-20 11:15
你使用的是经纬度坐标,根本没有坐标转化,那样的话,就不是球面坐标,你可以看下osgEarthExample 下的osge ...

谢谢指点,非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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