随笔 - 505  文章 - 1034  trackbacks - 0
<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789


子曾经曰过:编程无他,唯手熟尔!

常用链接

留言簿(94)

随笔分类(649)

随笔档案(505)

相册

BCB

Crytek

  • crymod
  • Crytek's Offical Modding Portal

Game Industry

OGRE

other

Programmers

Qt

WOW Stuff

搜索

  •  

积分与排名

  • 积分 - 903620
  • 排名 - 14

最新随笔

最新评论

阅读排行榜

评论排行榜

声卡对于我们来说,十分的熟悉了,正是声卡技术的发展,将PC音频带入了一个全新的境界,使得在PC上聆听水晶般的声音成为可能。那么好的声音是如何发出来
的,本文将从声卡的底层技术出发,带领大家一探究竟。

  优秀的硬件设计,奠定了声卡良好工作的基础,但同时需要出色的软件支持,才会将声卡的性能释放。优秀的声卡配套软件,应该性能强大,使用简单。我们以目前Audigy声卡为例,配套软件中所包含的内容很多,这里我们只说最关键的一个:EAX。


EAX全名为Environmental Audio Extension,即环境音效指令集,是创新公司推出的API(Application Program Interface,即应用程序接口。,技术厂商将自己的特有音频技术开发为3D音频API,而对于软件开发商(如游戏开发商)来说,利用只要使用该API,即可实现不同的3D音效。

  EAX主要是针对一些特定环境,如音乐厅、走廊、房间、洞窟等,作成声音效果器,当电脑需要特殊音效时,可以透过DirectX和驱动程序让声卡处理,可以展现出不同声音在不同环境下的反应,并且通过多件式音箱的方式,达到立体的声音效果。

  EAX在刚推出时为1.0版,目前是4.0版,还有即将发布的5.0版本。我们以目前的 EAX4.0来分析,利用EAX是如何实现游戏中的3D音频处理。EAX4.0有:多环境,环境过渡,环节过滤,环境位移,环境反射等先进特效。下面我们就来简单分析这些特效的实现。

●环境过渡(Environment Morphing):

  在游戏中,当角色从一个环境,到另外一个环境。声音效果应该是逐渐过渡的,EAX4.0实现了从一种环境向另一种环境的无缝转换。而这在以前会非常生硬地切换到另一个环境效果,很不真实。我们来看环境过渡是如何实现的。

  在图中,从门口,经过走廊,到达大厅,我们取了三个位置:门口、走廊中间、走廊和大厅交界处。在角色从门口进入大厅的过程中,要进行的位置转换,混响(reverb)参数会根据角色在两个环境位置的绝对不同参数而逐渐地改变。随着角色的位置,在走廊里移动,更加接近大厅的。就调用更多的大厅的回响参数,这样大厅的效果就更突出。位置1到2位置,和位置2到位置3就是参数渐变的过程。

  当角色,从门口进入走廊,和从走廊进入到大厅的位置1和位置3处。属于位置极限变化,参数会自动的改变。

  环境渐变是与回响相关的最重要函数。以前的游戏没有逐渐过渡,只能通过设置一个渐变函数值。使用这些函数值形成一定的平均环境,得到不同声场的变化的平均效果,不是很真实。使用了EAX的环境渐变后,游戏效果不能通过使用不同的参数进行逐渐地改变,因为在EAX中,是通过调用预先设定的值来完成的(这一点非常重要,在下面的问题处理中,我们要用到)。比如EAX把从门口经过走廊到大厅的过程中,预先设置预几十个变量,把走廊做为中间参数,逐步调用就可以了。虽然实现起来非常简单,但是需要强大的DSP处理能力做保证。从前面的分析我们知道 EMU10KX的处理能力足可以胜任这个工作。

●环境过滤(Environment Filtering):

  通过环境过滤,EAX可以准确模拟声音同时在开放和封闭的环境中传播的效果。

  如图在声音1的音源被定位在障碍物后。直接通路被遮挡住了,这就是障碍效果。这样就采用EAX的环境过滤来进行处理,依据障碍物的几何参数(厚度)和墙壁的制造材料来调用EAX函数的过滤度数。由于音源和角色之间没有直接的接触,音源的回波也根据同样的原则被压抑了。音源3定位在关闭的门的后面,这就是封闭效果。一般处理方式,可以通过调低音量来实现,但更加实际的实现办法是使用低通(low- pass)的过滤来改变声音的效果。这样处理以后,可以得到低沉压抑的声音。我们认为EAX这里使用HRTF(头部相关传输函数)技术,通过过滤或转换来进行模拟。?此外,还有排斥处理。比如音源和游戏角色在门敞开的不同的房间,这样直接的声音通过门可以传给角色。如何表现这类声音呢?EAX就依据墙壁材料的厚度,形状和属性对反射的声音进行失真处理,来表现声音这样细微的差别。

●环境移位(Environment Panning):

  现实中,当游戏角色和一个环境的相对位置或距离不断变化的时候,声音效果也是变化的。EAX是如何处理这样的变化的,我们来看下图。

  如图,我们将从音源(一条从屋顶流到水池的泉水)到游戏角色的距离分为6个区域,距离越远,声音越小。这样,可以采用降低音量级的方式来进行处理。从音源到角色,没经过一个区域,声音强度降低几个dB。这样声音越来越小,在这6个区域之外,EAX引擎就可以关闭,这样还可以释放处DSP的运算资源。

  同时音量级是有对数相关性的。不同的音源的音量级是不同的,比如对应较大的声音和较安静的声音,音源也可以被区分为最小和最大的距离。例如流水在几个区域,声音就听不见了。而怪兽,则在几个区域之后,声音还很大。

posted on 2006-11-16 04:08 七星重剑 阅读(494) 评论(0)  编辑 收藏 引用 所属分类: Game Music & Sound

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理