Board logo

标题: [业评] [旧文重发] 再谈次世代游戏容量问题——被遗忘的音效 [打印本页]

作者: RestlessDream    时间: 2008-6-12 17:44     标题: [旧文重发] 再谈次世代游戏容量问题——被遗忘的音效

随着MGS4的发售和是否移植Xbox 360平台的话题火热起来,其中一个焦点就是容量问题。
翻出一篇旧文来,和大家探讨,那30G(50G?)里到底塞了些什么……或许很大一部分会是声音数据。

转自 叉包牌电饭煲
译者:叉包饭斯DKCK


被遗忘的“声音”——次世代的游戏音效

Mat Noguchi是Bungie的音效编程师,参与了Halo和Halo2的声音程序开发工作。
以下是一篇2004年GDC上听完卡马克大神(John Carmack,对,就是那个火箭控)的主旨发言后,写的一篇“不同凡响”的评论。
引用:
最近我最主要的特征是逢人就念叨:“卡马克错了。”(嗯,在Bungie工作还是很富有生趣的)

在今年(2004 年)GDC的主旨演讲上,卡马克大神提到时下的游戏音效得益于处理能力来解决,而未来两年内将得到彻底解决。虽然从技术上讲,此说成立(用DSP我们能模拟很多东西),但这番话忽略了游戏日益增长的数据瓶颈。虽然图像是游戏最光彩夺目的一面,但声音目前是,而且将一直会是游戏中所占容量最大的一部分。至少好游戏都是如此。

以下是有关游戏音效的一些惊人事实。我们假设一款游戏同步播放256个单声道音效。根据今天游戏行业的标准,假设采样率(sample rate)为44.1kHz,稍稍高出“Nyquist人耳听力范围”标准,采样的数据大小为16位(2 bytes)。

那么,该游戏音效每秒种要播放256个独立的声音,每秒就必须占用(声道数)x(采样率)x(采样大小)=256x44100x2bytes=22.5MB的数据空间。

当然,一般情况下不需要那么多音效。那么我们就算一般的游戏过程中,每秒平均需要40个独立的声音同步播放。那么带宽就从22.5MB/s降低到3.5MB/s。目前游戏使用的硬件压缩能进一步把带宽降低到1MB/s。

看起来还比较合情合理。但不幸的是,如果我们要连续播放40秒以上的声音,我们就需要更多数据。实际上,要多出许许多多。Halo一代的游戏音效数据在未经压缩的状态下,一共有2.5GB,22kHz和44kHz兼有。压缩后约为700MB,每个关卡大约有150-200MB数据。

200MB 的数据听起来也不可怕。但既然没有人能真正精打细算地用足声音内存,那我们就必须实现存储媒介上声音“流”播放(流媒体那样的边读取边播放)。而且我们必须完美地实现什么声音该在什么时候放(实际上因为游戏多变的环境,不可能做到这一点)——我们需要的是:要么有更多的声音缓存,要么有真正随心所欲的磁盘读取速率。不幸的是,大多数存储设备都是针对区块读取而优化的,而且也从来没有人愿意把更多的内存留给声音,真是让我们求生不能求死不得。我能解决一些问题,但通常解决这种问题的办法(压制声音数据的容量)并不尽人意。

就算内容/数据的问题解决,想营造一个令人信服的声音环境所消耗的计算量还是要远远高于图形。要实现真实的声音环境,我们需要混响(reverberation),或者说直白点,回音问题。

混响描述的是一个声音所处的声学环境的反应。举个直白的例子,混响就是你在浴室里唱歌和在轿车里唱歌的区别。更为完整的声音传播过程被展现了出来。

要决定某一个声音的回响效果,我们就需要确定音源和听者之间所有的(传播)路径。这其中包括了音源到听者之间所有直接的路径,加上可以听到的反射路径。如果你真地想做到精确,那么你就要把这些声音归类到不同的频谱。(低频的震动能比高频的传播更远)在游戏图形技术里,同样的问题就是全局光照,目前的游戏都是预先计算出一个静态的光照,用一个总体趋势来逃避问题的复杂性。就算动用全部现有的运算能力也不可能实现以上两者的实时运算。怎么能说有什么已经被“基本解决”了呢。

[当然这不是说我们没有够牛的变通手段。本代的声音硬件(指Xbox/PS2)遵守的是I3DL2标准,所以我们至少还能改善声音品质,当然彻底颠覆听觉的表现就表指望啦。]

这就是我喜欢干声音编程这一行的理由:)
转自 叉包牌电饭煲

[ 本帖最后由 RestlessDream 于 2008-6-12 18:57 编辑 ]
作者: csitd    时间: 2008-6-12 17:48

不知有没有人统计过用多声道玩游戏的玩家比率,个人认为不会超过5%
作者: Vulala    时间: 2008-6-12 17:51

动画?
作者: 测试一下    时间: 2008-6-12 17:53

木耳路过~
作者: 十年后海啸    时间: 2008-6-12 17:57

很好,30G满赛!
作者: zhuliang    时间: 2008-6-12 18:24

引用:
原帖由 csitd 于 2008-6-12 17:48 发表
不知有没有人统计过用多声道玩游戏的玩家比率,个人认为不会超过5%
这里根本就不是在说声道,而是指同时发出的声音.
作者: hugang    时间: 2008-6-12 18:27

Halo一代的游戏音效数据在未经压缩的状态下,一共有2.5GB,22kHz和44kHz兼有。压缩后约为700MB,每个关卡大约有150-200MB数据。
PC版HALO果然渣啊,我记得整个游戏都不到700MB,可见压缩成什么鸟样了:D
作者: RestlessDream    时间: 2008-6-12 18:30

引用:
原帖由 hugang 于 2008-6-12 18:27 发表
Halo一代的游戏音效数据在未经压缩的状态下,一共有2.5GB,22kHz和44kHz兼有。压缩后约为700MB,每个关卡大约有150-200MB数据。
PC版HALO果然渣啊,我记得整个游戏都不到700MB,可见压缩成什么鸟样了:D
未必。很可能是音效就占到三分之一。一代Gearbox移植的时候用DX彻底把shader重写一遍
作者: csitd    时间: 2008-6-12 18:32

引用:
原帖由 zhuliang 于 2008-6-12 18:24 发表

这里根本就不是在说声道,而是指同时发出的声音.
我想说的是,搞那么多声音运算,最后输出立体声,等于白费啊
作者: Jackli    时间: 2008-6-12 18:33

要是以后一个喇叭就能创造一个虚拟环绕声场来,音效就会被大多数的玩家和厂商重视了。
现在的的5.1、7.1系统实在是限制太多了,还是普及不开呀
作者: RestlessDream    时间: 2008-6-12 18:33

引用:
原帖由 csitd 于 2008-6-12 18:32 发表
我想说的是,搞那么多声音运算,最后输出立体声,等于白费啊
你没理解声道的概念
作者: csitd    时间: 2008-6-12 18:39

引用:
原帖由 RestlessDream 于 2008-6-12 18:33 发表

你没理解声道的概念
我知道你的意思,音源当然越多越好和声道无关,但是耗费了巨大人力物力,如果要准确还原还需要大量运算资源的东西,最后因为只有少数人用达标的多声道高品质音响系统导致这些效果都大打折扣,短板效应太明显了
作者: Jackli    时间: 2008-6-12 18:45

引用:
原帖由 RestlessDream 于 2008-6-12 18:33 发表

你没理解声道的概念
能不能科普下?
我也没概念的
作者: 谁家那个小那谁    时间: 2008-6-12 18:47

回响这个词听着很不专业

混响 好吗 :D
作者: 谁家那个小那谁    时间: 2008-6-12 18:48

引用:
原帖由 csitd 于 2008-6-12 18:32 发表

我想说的是,搞那么多声音运算,最后输出立体声,等于白费啊
你去电影配音的地方溜一圈就明白了。为什么要使用多轨录音机 :D
作者: hugang    时间: 2008-6-12 18:49

引用:
原帖由 csitd 于 2008-6-12 18:39 发表

我知道你的意思,音源当然越多越好和声道无关,但是耗费了巨大人力物力,如果要准确还原还需要大量运算资源的东西,最后因为只有少数人用达标的多声道高品质音响系统导致这些效果都大打折扣,短板效应太明显了
有条件的话,还是应该上多声道音响,试过5.1以后,你就会觉得只用立体声玩游戏有多惨了。
而且实际上,用5.1音响玩360和PS3的玩家绝对没有你想象中那么少:D
作者: RestlessDream    时间: 2008-6-12 18:57

引用:
原帖由 谁家那个小那谁 于 2008-6-12 18:47 发表
回响这个词听着很不专业

混响 好吗 :D
好的~:D
作者: 司徒正美    时间: 2008-6-12 19:01

所以容量已成为游戏的宣传重点,抵抗啦,蓝龙啦,LO啦,MGS4啦,还有天剑龙穴等杂碎啦了!
作者: aweiwei    时间: 2008-6-12 19:51

所说的声道,实际上是音轨,也就是同时发出声音的数目。

比方说,主角在走路的时候,走步声、呼吸声、换枪的声音、敌方走路的声音、风声、远处的瀑布声、枪声、炮声……这些声音要同时发出,而且要单独处理并混合在一起。




欢迎光临 TGFC Lifestyle (http://club.tgfcer.com/) Powered by Discuz! 6.0.0