|
接口程序和API(Interfaces 和 API)
各种流行的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技术的完美支持,它占据了目前的领导地位。
EAX(环境音效果扩展)
EAX全名为Environmental Audio Extension,这是创新公司在推出SB Live声卡时所推出的API插槽标准,主要是针对一些特定环境,如音乐厅、走廊、房间、洞窟等,作成声音效果器,当电脑需要特殊音效时,可以透过DirectX和驱动程序让声卡处理,可以展现出不同声音在不同环境下的反应,并且通过多件式音箱的方式,达到立体的声音效果。EAX在刚推出时为1.0版,目前是4.0版,目前许多游戏都支持此项规格。 |
|