移动端均会出现,性能好点抖动小。pc平台均无法出现。
高速物体移动(抖动)->设置UI位置(抖动)->摄像机根据物体设置位置
高速物体移动(抖动)->摄像机根据物体设置位置->设置UI位置(没有任何抖动)
FPS一直都是50-60。
现在,物体是物理推动的,摄像机是根据物体移动后才移动的。这个抖动是摄像机抖动嘛?摄像机是通过lerp(摄像机,球,ratio)
移动端均会出现,性能好点抖动小。pc平台均无法出现。
高速物体移动(抖动)->设置UI位置(抖动)->摄像机根据物体设置位置
高速物体移动(抖动)->摄像机根据物体设置位置->设置UI位置(没有任何抖动)
FPS一直都是50-60。
现在,物体是物理推动的,摄像机是根据物体移动后才移动的。这个抖动是摄像机抖动嘛?摄像机是通过lerp(摄像机,球,ratio)
老问题,应该是计算精度引起的,我以前做摄像机追踪物体也是这样,想办法绕过去吧.
PC端没事,移动跟网页都不行
高速移动并没有出现抖动 缩放摄像机小概率会出现…
是啊。晕死了。类似跑酷游戏,这个是主要功能。没办法绕过。。。
摄像机挂在高速运动物体上没事,如果摄像机和高速运动物体保持一定位置偏差,比如摄像机和高速运动物体距离缓冲之类,需要计算两者之间距离变化,就会发生抖动.
这个问题以前翻烂论坛,当时有人也提了这个问题,官方回复是因为网页端计算精度问题导致的,在后来某个版本中修复了。
我后续用的新版本,又出现了这个问题,也没找到解决办法,只好把摄像机直接挂物体上了.
在哪里保持的位移差。update里面不行,可以尝试放在lateUpdate,如果还是不行,可以监听 afterUpdate 里面处理。
以前尝试过update里不行,lateUpdate里也不行.
afterUpdate还没尝试过.
我解决了。
1.如果你是物理引擎驱动物体运动的,卡顿最主要的原因是物理帧和逻辑帧不同步。导致摄像机抖动。解决方法就是物理和逻辑帧设置同步就行了。我是尽可能的保持都是60帧,我的项目i6很勉强。
sp:
物理:
cc.director.getPhysicsManager().enabledAccumulator=true;
cc.PhysicsManager.FIXED_TIME_STEP=1/60
逻辑帧:
cc.game.setFrameRate(60)
2.摄像机运动不能使用【lerp】函数,抖动的情况会被加剧。直接设置当前目标为摄像机目标position。再pc上物理帧和逻辑帧稳定,lerp函数运行就良好。
3.摄像机最好放到lateupdate。
设置了帧率不开固定步数就是根据帧率来计算的 没必要再去设置
不能lerp? 这个就是为了解决防抖的…比如移动频率过快I 导致摄像机造成视觉上的抖动
研究了很久,一开始我也认为lerp就是为了防抖,但是使用了反而造成了抖动。
http://www.manew.com/thread-90300-1-1.html
我也是看了这篇文章才怀疑lerp函数,之后尝试后发现确实是lerp函数造成的
不是吧 我没用之前抖得不行 我说的抖不是你那种抖 我说的是频率造成的那种? 懂? 用了之后平滑很多… 不然移动很快会玩头晕的 摄像机跟随的物体移动真超快的 不知道你的有多快? 你说的抖 对应我的就是缩小摄像机的时候 像卡了一下的那种情况
以前物体用的tween,摄像机用的坐标=物体位置+偏差.
明明在一个update里调用的方法设置的偏差,就是抖个不停.
解决就好!下次我也尝试用物理和逻辑同步试试看
帧率不稳定才是抖动最大的元凶
对的。但是物理帧和逻辑帧你根本没办法保证。很蛋疼。
该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。