随笔 - 477  文章 - 813  trackbacks - 0
<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567


子曾经曰过:编程无他,唯手熟尔!
feedsky
抓虾
pageflakes
Rojo
狗狗
google reader
bloglines
my yahoo
newsgator
netvibes
鲜果


Locations of visitors to this page

常用链接

留言簿(66)

随笔分类(616)

随笔档案(477)

相册

BCB

Game Industry

OGRE

other

Programmers

Qt

WOW Stuff

搜索

  •  

积分与排名

  • 积分 - 276879
  • 排名 - 5

最新随笔

最新评论

阅读排行榜

评论排行榜

60天内阅读排行

声卡对于我们来说,十分的熟悉了,正是声卡技术的发展,将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 七星重剑 阅读(242) 评论(0)  编辑 收藏 引用 所属分类: Game Music & Sound


标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
.NET频道  博客园社区  闪存
网站导航: