|
发表于 2007-8-25 22:46:00
|
显示全部楼层
Re: Re:求助,如何处理3rd摄影机抖动问题
这个问题大概是我很早的时候求助的帖子吧,主要的问题是我们的ogre camera是被物理引擎驱动的,而我们物理这一部分还未调整好,所以player再某些情况会有抖动,而camera又是基于player的,所以就会导致camera的抖动,并且会将player抖动放大很多,其结果就是camera抖动高频低幅,看起来很不舒服,后来跑到水木清华bbs上请教有人提出每帧传入一个kalman滤波器应该效果很好,然后我研究了很久这个kalman滤波算法,没搞清楚。。。opencv有个C实现的算法,不过我也还是没研究透。。惭愧。。。最后只好用其他的办法暂时处理了一下,效果不太好。
如果camera是自己驱动没有物理引擎的话,绑定到节点或者不绑定应该都不会出现抖动的,不绑定的话,大概就这么做就ok了啊
Ogre::Vector3 pos = player_pos + player_up * 1.5 - player_dir * 2.5 ;
Ogre::Vector3 lookat = player_pos + player_up * 0.5 ;
然后设置pos以及lookat就ok,绑定的话就更容易了
camera初始化的时候设置一次位置,大概(0,1.5,2.5)就ok,然后让camera node去
autotrack player node,应该不会有什么问题
很多情况下绑定与不绑定其实就是local space与world space的差别了,当然有些情况也许需要例外考虑,比如fix yaw之类的
但是这种镜头就是硬梆梆的,没有弹性,就是类似于超级玛丽或者Tony Hawk那种效果,可以参考game programming gems4上面的文章实现这种效果,或者本版有位id是大堆数字的老大(抱歉没能记住id)有帖一个ogre的小游戏demo参考一下,不过我觉得那个camera的效果有些bug,有些地方似乎写的有点复杂了~~
darkangel01: Re:求助,如何处理3rd摄影机抖动问题
我旋转的抖动倒是很轻微。。使用了很多算法都没用。
我在网上看到有人说,把摄影机的位置加入一个滤波算法中可以解决类似的问题。
|
|