注册 | 登录

游侠NETSHOW论坛





查看: 4867|回复: 6
打印 上一主题 下一主题

[转贴] 游戏的帧率控制 [复制链接]

帖子
2820
精华
0
积分
1413
金钱
2882
荣誉
0
人气
11
评议
0
跳转到指定楼层
楼主
发表于 2009-6-14 01:20:29 |只看该作者 |正序浏览
我曾在不同场合,多次向人表达我对游戏程序设计的一个重要观点:时间控制,对于游戏程序设计至关重要。

这是因为,大多数电子游戏,都是一个实时人机互动系统。在非人机互动的软件中,软件及硬件一起是一个封闭系统,时间参数对这个系统是否正确工作是无意义的量。这样的系统,我们尽量应该设计成自动化工作模式,只要有正确的输入,得到正确的输出即可。通常,这样的系统的开发,还应该有自动化测试的流程去驱动它。

但实时人机互动软件则不一样,我们得把人看成系统的一部分。人和机器的交互是通过人眼、人耳、键盘、鼠标等完成信息交换的。如果把人脑看成一个线程、计算机看成另一个线程,我们几乎没有能力实现一个资源锁,利用锁的方式保证系统工作永远正常。人脑在全速运转时,适时得不到正确的信息输入,整个系统就可认为出现了故障。

可见,在这样的系统中,时间控制显得多么的重要。

当我们提到游戏的帧速率,我想把逻辑帧率与渲染帧率分开来处理。在这个问题上,或许许多游戏引擎的开发者并不赞同我的做法。但是,这毕竟是一个可以简化问题复杂度的方法,个人以为值得推广。

所谓逻辑帧率,就是游戏引擎每秒处理逻辑事件的频率。在我参与的游戏项目里,通常,我们都将逻辑帧率固定在一个固定值。为了方便直觉的构想,多数情况下,我倾向于方便十进制计算的数值。比如 100 fps 、50 fps 、25 fps 、20 fps 等等。

限定了逻辑帧率后,我们可以把人机交互系统中的机器剥离出来,成为一个独立系统,这样在测试和设计时,时间的要素被弱化了。游戏逻辑可以被严格限定在第整数个帧内发生。

通常,视频游戏软件的大量时间都消耗在渲染图象中。而逻辑处理在今天的计算机上,可以更容易的保持在一个高帧率,以提高拟真度。注意,这里所谓的逻辑处理,还包括了虚拟世界中的物理状态的模拟,对于简单的游戏,可能仅仅是对象的坐标;复杂的 3d 游戏或许就包括了物理引擎的运算。

对于渲染的问题。个人认为人脑处理信息允许在很短时间的内出现一点偏差,系统会自我纠正。那么只要计算机输出的信息的时刻不要差的太远即可。视觉,虽然作为最大信息量的通道,需要保持较高的通讯频率,但我们并不需要无限的高。渲染帧率高于逻辑帧率一般是没有什么意义的。

当很多人埋头一味的追求高的渲染帧率时,我们是不是应该停下来仔细想想,怎样可以用最节省的方式让大脑适应你的游戏画面。最终是你的大脑在判断画面是否流畅,而不是渲染帧率那个数值的高低。

相信大家都看过很多欺骗眼睛的图片,网络上已经有很多了。许多静止的图片会让人感觉在动。一些运动的图片,实际的动作跟像素级别上的变动不太一样。

简单说来,人脑接受和处理图象的速度有限。大脑在处理此刻视网膜上的图象的同时,还会对未来这些图象的变化有一个预期。当图象的运动满足这个预期时,我们会感觉很流畅很舒适;当和预期不符时,或者让我们头晕眼花,或者让我们产生错觉。(btw, 我忘记曾经在哪看过一副瀑布的 gif 动画,这组动画经过特别处理。当瀑布静止时,我们的眼睛会产生水向上倒流的感觉。)

所以,无论是 3d 游戏还是 2d 游戏。快速的移动镜头都是不提倡的。不光是游戏,电影中,我们也极少看见导演快速的移动镜头,大多数场景都是固定镜头拍摄的。

如果你非要移动镜头(比如让镜头跟随主人公),那么也尽量让移动速度表现的足够匀速。因为我们能达到的帧速率有限,快速移动镜头很难做到线性(无论是 2d 还是 3d 游戏都很难做到),大多数情况下,我们会在设计上放慢镜头的移动。

最后,谈一下镜头移动和渲染帧率的控制问题。

既然人脑总希望画面符合预期,我们在引擎呈现的时候,最关键的就是在最准确的时刻渲染出准确的一帧。如果我们一味的在系统空闲的时候渲染,往往会出现在很短时间段内,时快时慢,虽然快慢相差不多(可能只有 0.01 秒的差别),但也会影响到人脑的感觉。

一个简单的办法就是,把渲染帧率也锁死。比如锁定为和逻辑帧率相同,或为逻辑帧率的一半,1/3 等。在多任务操作系统环境中,这样可以让你的游戏跟别的应用程序良好的协同工作。当游戏尽量的把空闲时刻让出时,它也更容易的在准确的时刻渲染时期待的画面出来。

btw, 我们目前的引擎使用了一个简单的渲染帧率控制函数。侦测最近几秒的渲染情况,一旦发现过忙,则主动下调渲染帧率,让渲染可以均匀的进行;当系统比较空闲时,再上调渲染帧速率。实际运用下来,效果不错。

使用道具 举报

帖子
1133
精华
0
积分
567
金钱
1105
荣誉
0
人气
0
评议
0
7#
发表于 2009-6-14 03:29:13 |只看该作者
看不懂……略过……顶技术帖……LZ文化人~
CPU Intel Corei7 920 主板 技嘉GA-EX58-UD5
内存 海盗船TR3X6G1600C9(三通道装)
硬盘 希捷 1TB 7200.12 32M
显卡 索泰GTX295 极速版/GTX560 TI 耳机 razer HP-1
风扇 九州风神黑虎鲸金尊版
机箱 Tt Element S series  声卡 创新SB Audigy Value
LCD 三星T240                电源 海盗船 CMPSU-750TX
鼠标 Logitech G9x     键盘 Cherry G80-3000LPCEU-2

使用道具 举报

帖子
366
精华
0
积分
183
金钱
1582
荣誉
0
人气
0
评议
0
6#
发表于 2009-6-14 03:27:09 |只看该作者
lz说得有些混乱                                                                                       ·

使用道具 举报

帖子
2344
精华
0
积分
1173
金钱
4881
荣誉
0
人气
3
评议
0
5#
发表于 2009-6-14 01:32:15 |只看该作者
专业啊 [支持] [支持] [支持]

使用道具 举报

帖子
3050
精华
0
积分
1688
金钱
4114
荣誉
16
人气
27
评议
0
地板
发表于 2009-6-14 01:31:41 |只看该作者
抢占 沙发

使用道具 举报

帖子
1857
精华
0
积分
938
金钱
1515
荣誉
0
人气
5
评议
0
板凳
发表于 2009-6-14 01:30:56 |只看该作者
太长  未看   纯顶

使用道具 举报

帖子
2820
精华
0
积分
1413
金钱
2882
荣誉
0
人气
11
评议
0
沙发
发表于 2009-6-14 01:25:40 |只看该作者
快速运动 24p 到 30p  对于显示运动平滑的效果是不够的
恰恰是视觉暂留的原因导致 第一帧画面感觉还没消失第二帧画面出现
出现运动抖动!
难道你没注意到看电影人物大幅度横向移动时你要看清楚脸上的细节是困难的
这样更清晰有何意义?
当年的工程师解决带宽问题隔行传输数据时,把一帧弄成不同运动状态的两场的图像碰巧增加运动平滑感! 是不争的事实

作三维动画 不添加运动模糊效果 按帧计算 这样生成的字幕运动非常不舒服
很抖! 如果改场生成播放到电视上迎刃而解


其实我们能感觉到电影的帧率不足导致的运动抖动的
为何却不生厌烦哩?
1。电影拍摄通常快速运动运动模糊处理的比较适合,运动模糊会减缓抖动闪烁感
2。电影播放时胶片换格之间的黑消隐对消除视觉暂留导致的闪烁感也有一定的效果
3。通常电影摄影镜头不会胡乱的乱摇乱晃 运动镜头往往有一定的视觉中心,比如摄影机目标点锁定的的位置运动幅度很小 而其他运动幅

度大的位置由运动模糊减缓(类似景深浅时突出清晰主体的处理 )
4。电影主要的人物镜头多数是固定机位拍摄人物对话的镜头 人物逐步的表情运动幅度很小不会出现闪烁抖动问题

电影帧率能提高到 50帧/秒 那是绝对利于平滑运动效果的!
为什么不淘汰? 因为它已是一个世界标准 淘汰带来的损失 与对欣赏情节干扰并不大的闪烁抖动 不言而喻

除非是我的眼睛作怪 但我知道 我以前算的 25p/S 的3d动画(放到crt电视上显示),运动不流畅的感觉是很难受的 因为恰恰那个横向移

动展示图片之时同时看清楚是很重要的,所以换到场渲染才得以解决问题
而液晶电视何以这种闪烁感要小 因为液晶的“拖尾”现象 无异于给运动添加了运动模糊,因拖尾会使眨眼的人似乎有些瞌睡迷西,所以

差点的液晶看电视很不舒服

我抽时间做个 50p/s 和 25p/s 的动画给你看看就了然了

50p/s的动画:
http://www.paintblue.net/video/50ps.mov

25p/s
http://www.paintblue.net/video/25ps.mov

这两个都是1秒钟的动画,一个是50p/s的mov 一个是25p/s
比较这两个动画,一目了然! 都是一样的分辨率,此时你能说运动中的图像
25p那个和50那个一样清楚?  25p的显然闪烁抖动的很难受

这只是一个局部强化的例子,能说明低帧率的问题
只不过通常情况下 专业摄影师的作品和有理的计划拍摄的25p作品运动不流畅带来的骚扰没这么夸张
但对一个随意的家庭录影手持抖动很厉害的摄影者拍摄的片子来说 此时25p抖动闪烁的问题,会像上面的例子被凸现出来
这个是不得不承认的
因此对于随意的手持摄像采用25p不是好主意!
JVC hd101 720P 25p的目的也是不为家庭录像定位,是低成本电影的定位

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-10-4 05:06 , Processed in 0.306167 second(s), 12 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到