转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
用VB.Net实现DirectSound9 (4) DS3D         ★★★★

用VB.Net实现DirectSound9 (4) DS3D

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1289 更新时间:2009/4/23 19:00:43

关键字:VB DirectX9 DirectSound 3D                              作者:董含君


昨天去百度搜索DirectSound3D的资料,真是一点都没有。惊讶啊。

google有一些,还是微软的。看来真的要填补国内空白了。

高手门看来都很忙啊。

========以上是废话================

一开始看微软DSound3D的例子很困难,主要是术语太多,如果准备工作做的不够,可以说几乎看不懂。

从家里翻出一本DirectX的速成教材,看来有解释的必要。

=========以下是正文===============

一个3D的声音,我们可以理解为一个3D的缓冲区(Buffer)

研究D3D的同志们知道,需要创建一个场景,然后设置顶点,光照,摄像机...

DS3D也是类似,大体有一下概念。这些需要跟现实联系起来理解。

1 声源 就是发声的物体。具备很多属性(慢慢讨论)(Buffer3D)

2 listenner 可以理解为听众,同样具备很多属性。(Listener3D)

3 声源与听众之间有各种关系,这就组成了场景,再代码里面不存在,是通过声源与听众的关系体现的。

4 声源是可以移动的,于是他有了位置(Vector3 position)

5 听众也是可以移动的,他也有位置(Vector3 position)

6 声源与听众都有位置,所以存在距离(distance)

7 由于存在距离又可以移动,于是便有了速度。(辅助概念)

8 有了声源的移动跟听众的位置,所以产生了多普勒效应(DopplerFactor)
(不懂?就是接近的物体音调变高,离去的时候相反。还不懂?去看看初中物力教科书....)

9 声音也有特性,比如衰减。距离越远,效果自然不一样。(RolloffFactor)

10 有两种声音:A 360度空间的声音(如爆炸) B 有方向的声音(如说话具有方向性)
对于前者,好说,需要注意的是,听众也有这两种属性。
带有方向的分为3个部分可以想象成3个嵌套的圆锥,声源(你的嘴巴)在顶点位置,发出的声音在最内的圆锥没有感觉出强烈的衰减。但是在外测的圆锥能够明显的感觉到(靠近内侧圆锥听得更加清楚,也许你会进去),最后剩下的就是听不到的了。
(也许你会说现实生活中我朝一个方向喊话,周围都能听到。那是因为波的传播特性以及反射的结果)

以上就是DS3D再现实中的参考模型。如果上面的你不能充分理解,那么你永远无法进入DS3D.

下一步,进入代码。

用设备device创建关联大家都会了,也知道他们都有自己的相关的参数的类,比如listenerParameters,Listener3DSettings

播放声音依赖于Buffer.play()

前3章说的就是如何通过修改Buffer的参数来达到声音效果的不同。

DS3D也是如此,修改Buffer的
        application3DSettings.Position = position;(x,y,z,)
        application3DSettings.Velocity = velocity;
然后利用这些位置参数
applicationBuffer3D.AllParameters = application3DSettings;

这样听到的声音就不一样了。

实质上,初始化完成DS 以及 DS3D之后,开始播放,我们修改的就是这些参数而已。

跟修改音量类似,只不过音量我们可以直接增大10或者减少5。而修改三维坐标需要用方程来解决罢了。
(也许会用到立体解析几何的知识)

DS3D理解起来不是很难了吧,就是修改坐标参数。其他的多普勒或者衰减微软已经做好了(什么!你要自己做,那你不用看本文了)

至于代码理解起来比较复杂,个人认为微软的例子使用了太多的技巧,导致理解起来难度增大。

下次我自己做个简单的例子,用来结束DS3D这一章。

为了写代码,用这么多文字介绍这些预备知识是值得的


[办公软件]如何在Excel表格单元格中输入比例(如4:1并让其正确…  [VB.NET程序]VB.NET实现DirectSound9 (8) 音效控制器
[VB.NET程序]VB.NET实现DirectSound9 (7) 录音  [VB.NET程序]VB.NET实现DirectSound9 (6) 声音特效
[VB.NET程序]VB.NET 实现DirectSound9 (5) DS3D2  [VB.NET程序]VB.NET 使用DirectSound 3
[VB.NET程序]学习笔记,VB.NET使用DirectSound9 (2)  [VB.NET程序]学习笔记,VB.NET使用DirectSound9 (1)
[VB.NET程序]VB.NET 实现DirectSound9 (10) 均衡器  [VB.NET程序]VB.NET实现DirectSound9 (9) 实现示波器
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台