三维虚拟声音仿真方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三维虚拟声音仿真方法

【摘要】本文利用Directsound 3D技术研究虚拟声音系统,系统仿真程序设计及主要编程思想利用Visual C + +平台开发示例程序3D sound,实现虚拟环境实现声音效果。

【关键词】3D;sound

虚拟现实技术是近年来十分活跃的研究领域之一,是一系列高新技术的汇集,这些技术包括计算机图形学、多媒体技术、人工智能、人机接口技术、传感器技术以及高度并行的实时计算技术,还包括人的行为学研究等多项关键技术。虚拟现实技术在军事、航天、医学、教育、娱乐等领域具有广泛的应用价值。为了让用户产生更加强烈的沉浸感,在生成’-图形的同时,还可以提供逼真的’-声音效果。作为虚拟现实系统中必须的部分,虚拟声音系统的研究也受到了极大的重视。DirectSound 3D是微软公司所推出的,它利用声音大小的比例调整多卜勒效应,来达到以软件来模拟3D音效的效果,创立了在三维空间定位音效文件的标准方式。任何应用程序透过它和支持DirectSound 3D的声卡,便可以获得所需的效果。由于这是许多声卡厂商与微软共同制定的,现在大部分的声卡都支持这项技术。本文利用Directsound 3D技术实现虚拟环境实现声音效果。

1.仿真原理

Directsound 3D是通过软件模拟来实现3D音效的,所以要先讲一下Dsound 的3D模拟空间。这个空间类似现实空间,可以用笛卡儿坐标系来描述Dsound 的3D空间,有x,y,z三个坐标轴坐标轴。

在这个模拟空间中Dsound提供了模拟的声源对象和倾听者对象(listener),声源和听者的关系可以通过三个变量来描述:在三维空间的位置,以及运动的速度,以及运动方向。

位置即声源和听者在三维空间的所在位置,随着两者的相对位置不同,则听者便会听到不同的声音效果。

速度为声源和听者在三维空间中的移动速度,此项特性同样会改变两者在空间的坐标,以产生不同的声音效果。

声源和听者相对运动的方向也会影响听者听到的声音效果,因为声音是具有方向性的。这个下面会谈到。

知道了3D声源以及3D环境中的听者,那么怎么产生3D音效呢?一般来说,在产生3D音效的时候,主要有下面的几种情况,一是声源不动,而听者在模拟的3D空间进行运动,二是听者不动,让声源在模拟的3D空间进行运动,三是听者和声音同时在运动。如下图1、2所示。

Directsound给我们提供了听者和声源对象的接口,我们可以通过上面提到的三种方式设置改变声源或者听者的位置,运动速度和方向就可以形成3D音效了在3D环境中,我们通IDirectSound3DBuffer8接口来表述声源,这个接口只有创建时设置DSBCAPS_CTRL3D标志的Directsound buffer才支持这个接口,这个接口提供的一些函数用来设置和获取声源的一些属性。在一个虚拟的3D环境中,我们可以通过主缓冲区来获取IDirectSound3DListener8接口,通过这个接口我们可以控制着声学环境中的多数参数,比如多普勒变换的数量,音量衰减的比率。

2.设计方案

3.仿真结果

根据上述介绍的方法,采用D irectSound维声音程序初始界面具,在V isual C+ + 6.0 中实现了程序的具体实现。通过下拉菜单可以测试三维声音在不同角度的效果。这样就可以利用D irectSound 技术,通过VC6. 0 编程对三维声音进行了实时仿真,程序较好地实现了声音的三维效果。

参考文献

[1]B radley Bargen,Peter Donnelly Inside D irectX[M].北京:北京希望电子出版社,1999.

[2]何正伟,杨宏军,花传杰.实时三维声音仿真系统的设计与实现[J].计算机应用研究,2002,19(1):23225.

[3]刘卫宏,陈培.V isual C++编程基础[M].北京:北京希望电子出版社,2003.

[4]李鹤文,张文新.V isual C++多媒体开发指南[M].北京:科学出版社,1996.

相关文档
最新文档