为什么只有60 FPS在cocos2d真的平滑?(why is only 60 fps really

2019-07-05 00:17发布

它可能已经问过,但我不能在任何地方找到它...

在纬来,每秒24帧和任何上述光滑。 Cocos2D中似乎是光滑的,只有当它的60 fps或也许少了几分。 30与50之间的任何东西肯定是不流畅,FPS计数器似乎并不准确...

为什么是这样? 或者它只是我有这种情况?

Answer 1:

实际上有几个原因行为,它不只是cocos2d的,但在环境中的任何游戏引擎看到的效果垂直同步启用(VSYNC)。 在iOS VSYNC始终是,在个人电脑上你通常将其关闭,以提高帧速率,如果他们是一致的显示器率低于成本的选项屏幕撕裂 。 通常像iOS设备的LCD在60Hz更新其显示,从而允许最大60帧的。

cocos2d的1.x中默认使用CADisplayLink类更新的Cocos2D 2.x使用CADisplayLink独占。 CADisplayLink导致的更新与屏幕刷新率同步。 含义的通知时,屏幕已经完成绘制它的内容发送。

当你得到60 fps的一切都很好。 但是,如果游戏不能设法呈现时间呈现60 fps的帧,它会接收下一个屏幕刷新完成后,才在下一次更新。 这有效地尽快减半帧率作为帧率下降到略低于60 fps的 - 尽快或者换句话说,作为您的更新和渲染周期时间超过16.666毫秒的时间才能完成。 这意味着你只能有与CADisplayLink更新的iOS 60,30,20和15帧帧率的离散(4 60由1,2,3分割)。

其效果是很明显的,因为60,30,20和15帧之间波动的帧率 - 即使只是一秒钟的一小部分 - 没有手感光滑,主要是因为它是如此的不稳定 - 忽快忽慢是我们看到的“不顺利”。 如果你的游戏受此影响,你可能会发现,限制帧率为30 fps,实际上使游戏显得更平滑。 你也有更多的时间来更新与帧之间呈现的东西。

这被认为是“平稳”的24 fps的帧率电影的steadyness,也是电影导演学会了避免场景中,由于有限的帧率变得非常明显。 例如,他们避免地狱什么游戏做的非常频繁:横向滚动,即侧身相机的运动或侧身相机传递对象的运动。

你会惊讶流畅的电影有多少,可当你看霍比特人 - 这是第一个电影大片以48 fps的运行。 你会立即注意到更“真实”和“逼真”的在电影中的角色如何。 为了得到一个印象,看看这个非官方的48 fps的霍比特人拖车 。

什么的Cocos2D显示为FPS是不是从60至30至20和15帧,但平均帧率开关在几个帧的准确表示。 因此,当cocos2d的版画“45个FPS”这意味着一半的游戏在过去几帧显示30帧,另一半以60fps的时间。



Answer 2:

两个主要的问题。

首先是匹配显示器的刷新率 - 别的,你会得到不规则的运动,眼睛/大脑善于分辨。 至少是在它的倍数。

第二是运动模糊。 电影/视频趋于具有运动模糊,这傻瓜观看者看到成连续运动。



文章来源: why is only 60 fps really smooth in cocos2d?