我要发帖 回复

高级会员

25

主题

1782

积分

0

专家分

:

私信
发表时间 : 2012-5-6 12:35:48 | 浏览 : 2003    评论 : 6
我设置了一条路径,不是程序一开始按路径运行,而是一段时间后,随机切换到按路径运行,那么这个时间怎么控制?
在实际现象中,如果路径是总共60秒,我30秒的时候切过来,它会从中间运行,而从60秒切过来,它就直接在最后那个路径点上了。
怎么样才能实现向vp那样,无论什么时候切换过来都可以从头开始运行路径。
谢谢各位,请赐教!

最近VR访客

obuil 评论于2012-5-6 23:22:13
切换过来之后 ,是怎么读取的呢?这是关键
UE4   |   虚幻引擎   |   Unity VR    |    Hololens
jamesjin 评论于2012-5-7 07:14:50
通过先前创建的一条osg::AnimationPath,利用如下语句切换:
osg::ref_ptr<osgGA::AnimationPathManipulator> apm  = new osgGA::AnimationPathManipulator();
apm->setAnimationPath(path)  ;  
view->setCameraManipulator(apm);

请obuil多多指教,谢谢!我总觉得与系统运行时间有关,但不知道该怎么设置?
pplander 评论于2012-5-7 11:27:44
方法一:
设置重头开始可以利用osgGA::AnimationPathManipulator空格提供的功能,即
getViewer()->getEventQueue()->keyPress(' ');  //执行空格按键事件。
实现动画重头开始,它其实就是调用osgGA::AnimationPathManipulator类的 空格键盘事件代码。

方法二:自己直接调用osgGA::AnimationPathManipulator空格事件的代码。


动画的原理就是在帧循环里面维护计算时间和位置的关系来实现的。 无论是osgGA::AnimationPathManipulator 还是 osg::AnimationPathCallback,都需要维护 _timeoffset这个关键的变量。









jamesjin 评论于2012-5-7 18:50:38
非常感谢,执行空格按键事件管用。
但是如果我用setTimeOffset,不管用
jamesjin 评论于2012-5-7 19:08:21
执行空格按键事件,虽然可以从头开始沿路径运行,但又有新问题是:
一开始2、3秒钟一片白茫茫,然后再沿路径运行,是否是home位置的缘故,还是其它原因?
因为我设置了home还是有问题?谢谢
jamesjin 评论于2012-5-11 18:24:49
我直接控制_TimeoffSet就可以了,比用空格键好

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-1-21 11:45 PM

返回顶部