|
楼主 |
发表于 2017-11-18
|
封闭
现在让我们来研究封闭效果。在原理上来说,它可以通过调低音量来实现,但更加实际的实现办法是使用低通过(low-pass)的过滤。
图11:封闭
在大部分情况下,1种类型的封闭(occlusion)就已经足够了 – 音源被定位为在看不见的障碍物后面。直接通路被遮挡住了,过滤的度数要依据几何的参数(厚度)和墙壁的制造材料。既然音源和和听众之间没有直接的接触,音源的回波也根据同样的原则被压抑了。
图12:障碍
Creative的API开发者使用了更加可行的概念,使用意味着直接通路被包住的障碍物 – 和听众没有直接的接触,但源和听众是在相同的房间内;接着,反射会以相同的形式传输到听众的耳里。
图12:排斥
使用得最多的是排斥。源和听众在不同的房间,但他们有直接的接触,直接的声音可以传到听众,但反射的声音会发生失真(依据材料的厚度,形状和属性)。
总之,无论效果怎么的真实(使用Aureal A3D,Creative Labs EAX 或者手动选择你自己的音擎),都必须跟踪几何(完全或者部分声音)以找出是否与音源有直接的接触。这对性能有莫大的关联,这也是为什么在大多数情况下要为声音搭建最简单的几何空间(为了能够获得更加逼真的效果,特别是射击,3D RPG或者其它类似的游戏)。幸运的是,该类型的几何通常要经过处理,以找出碰撞 – 为了不在玩家的房间内跟踪整个路径。这就是为什么我们能够使用相同的几何结构来表现出更多的声音细节。
环境渐变(Environments morphing)
图13:环境渐变
Creative Lab的另外一个解决办法是在2001年发布的EAX3。这是一个环境到另外一个环境的逐步转换参数的算法。上面的图片论证了两个效果的实现。
首先进行的是位置转换:混响(reverb)参数会根据玩家在两个环境位置的绝对不同参数而逐渐地改变(在该情况下,户外的空间和户内的空间隔着金属的墙)。随着玩家与户外的更加临近,户外的回响参数就能够工作得更加有效率,反之亦然。
接下来的类型是极限变化:当玩家穿越边界(BORDER)=1的区域,参数会自动地进行改变。
环境渐变是与回响相关的最重要函数。但是目前在对已经预先设置的参数进行修改的时候会有点问题。即使没有使用到逐渐过渡,你也能够通过设置渐变因素等于0.5而使用这些函数形成一定的平均环境(例如,我们在户外的石头走廊),这样我们就能够得到不同声场的平均效果。
在环境渐变被开发出来之前,游戏(例如游戏”食肉动物2″/Carnivores 2)的效果并不能够通过使用不同的参数进行逐渐地(它们在EAX1和EAX2已经预先设定好了)改变。中间的环境有25个预先设定的变量组成。例如,有岩洞渐变到山谷的设定;而在听的过程中会选择石走廊作为中间的参数。现在有了环境渐变,你就可以避免很多纷繁复杂的处理工作了。
接口程序和API(Interfaces 和 API)
图14:各种流行的API技术
现在让我们讨论音频引擎中API编程的应用。可供选择的选项并不多:Windows Multimedia, Direct Sound, OpenAL, Aureal A3D。
不幸的是,Aureal A3D 的驱动仍旧臭虫(bug)连篇,在目前最流行的Windows 2000和XP操作系统,它工作效率的稳定性仍然非常差。
视窗媒体系统(Windows Multimedia system)是从早期的Windows 3.1继承而来的最基本的声音再现系统。它较大的缓冲会造成比较大的延迟,所以在游戏中很少有应用;但是,某些准职业声卡使用的WinMM为WDM驱动作了特别的优化。
OpenAL是Loki Entertaiment公司的跨平台API解决方案,与OpenGL类似。它被Creative推动作为Direct Sound可供选择之一。该主意是很好的,但现实却是残酷的,因为它的效果比较差。此外,Loki Entertaiment在最近已经宣布了破产。我们希望新的可供选择的声音API尽快出现,因为OpenAL对程序员们来说是简直就是恶梦。然而,NVIDIA在最近发布了它nForce 芯片组里支持的OpenAL硬件驱动,效果让人好到不相信。
Direct Sound 和 Direct Sound 3D 是目前最优秀的API。它们现在还没有势均力敌的对手,它有点自命不凡;毕竟,它能够在没有任何辅助的前提下,能够真实地重现声音的效果。
这些硬件API(拥有硬件驱动程序的API,而非通过DirectSound或者WinMM来模拟声音的再现),它们被称为包装(使用准备好的软-硬接口程序,来创建它们自己的应用程序接口)。
作为规则,每个游戏都有它自己打包好的应用程序接口。目前有很多这类型的API组件包(它们没有真正的硬件支持):Miles Sound System, RenderWare Audio, GameCoda, FMOD, Galaxy, BASS, SEAL。
MilesSS是其中最著名之一 – 2700种游戏完全使用了该组件包。 它获得了Intel RSX技术的许可,现在能够作为软件3D Sound的可选选项择之一。该技术有很多可供选择的功能,但这不足以弥补它的缺陷:它仅能够应用在Win32和Mac平台,并且需要极昂贵的授权费用。
Galaxy Audio原被开发为用于虚幻,现在它使用在所有基于虚幻引擎的游戏上;但Unreal 2却是基于OpenAL,这就是为什么我们可以认为Galaxy已经死了的原因。
Game coda和RenderWare Audio 分别来自Sensaura 和Renderware,它们具有几乎相同的大小,都支持PC,PS2,GameCube,XBOX还有其它很多的特性,但它的授权费用也是非常的昂贵。
FMOD,最近引入的技术,它具有广泛的功能选择和对API技术的完美支持,它占据了目前的领导地位。 |
|