试验室研究方向课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《试验室研究方向课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试验室 研究 方向 课件
- 资源描述:
-
1、游戏中的音频编程与人机交互主要内容o 声音播放o 调节声音o 三维立体声o 音效o 人机交互什么是声音o 声音:50Hz-22,000Hz之间的压力波n 本质上而言是正弦波,具有波幅和频率等属性o 声音的低频部分不仅仅被耳朵,也可被身体所感知o 人感知到声音从某一地方发出n 不能精确地定位出音源什么是声音?o 声音表现为波形,可以被记录、保存以及精确播放o 声音(Sound)不等同于音乐(Music)o 声音可以被合成出任意效果什么是声音?o 声音是一个时间域上的函数: x( t ) (从物理属性上看, 是一个时间箭头)o 频率域:X( f ) (从数学和人的感知上看)o 声音的产生:是什么造
2、成了声音?o 感知:我们自己的感受!什么是声音?o 时间域:与声音的生成最相关o 频率域:与人的感知最相关三维声音o 考虑下列影响人感知声源位置的因素,把声音作三维定位,创造出三维的环境声响n 声源越远,音量越小n 从左边发出的声音将在左耳中产生较大的音量n 从左边发出的声音将首先到达左耳,左右耳朵相差1微秒左右n 从脑后传来的声音,与从前方传来的声音相比,有一定程度的减弱体检声音在游戏中的重要性o 除了视觉以外,最重要的信息获取手段就是声音o 可以指导视觉感知,甚至比视觉更为集中、有效o 可根据声音收集周围物体的信息o 能带来某种情景暗示目标1:营造沉浸感o空间的暗示使得玩家能判断自己的方位
3、n距离n方向感n当音源和听者移动时的更新n连续性是关键!o在实体的世界中n玩家不能听到大墙背后的声音目标2: 营造意境o 能传递不同的心情和意境n 沉重的、压迫感的和狭窄的能造成热的空间感n 回音能造成空旷、悠远、冷寂的空间感o例如仙剑奇侠音乐n 其他的环境相关的声音操作游戏中的音频编程o更好地体现游戏中声音的意义n声音作为载体在空间中传播n玩家和游戏智能利用声音做出gameplay决定o如果声音处理不好n玩家将忽视声音的存在n对于有遮挡物的室内场景,将给玩家错误的暗示玩家的空间定位空间的合成感玩家自身的位置玩家所在空间的材质大的石头房子小的金属房子小的木质房子对声音的操作o 采样(Sampl
4、ing)n 通过任意方式录制声音o 合成 (Synthesis)n 模拟合成n 调频合成n 波表合成对声音的操作 o 模拟合成n 不同频率波形的简单叠加o 从已有波形中选择o 叠加后进行滤波o 调频合成n 通过改变频率调整输出波形o 波表n 录制下来的每种乐器的声音,以数字化形式存放对声音的操作o MIDI - Musical Instrument Digital Interface(乐器数字界面)o 用于控制音乐合成器n合成细节由合成器决定o MIDI数据n仅仅是一个事件的列表,描述了一个声音卡或其他播放设备要产生某种声音的特定的步骤n每一个描述乐器演播的动作的字都赋给一个特定的二进制代码
5、。要奏响一个音符,你要发出一个“音符开”(Note On)消息,然后对该音符赋以一个“速度”,用以判断该音符能奏多响。 n其他控制包括选择哪件乐器演奏、混合和平移声音以及控制电子乐器等。DirectX组成o DirectSound:处理声音的播放。包括单声道、立体声、三维声与多通道声音。o DirectShow:提供不同的视频播放和视频采集功能。o DirectInput:控制鼠标、键盘、游戏操纵杆和力反馈装置的输入o DirecMusic:合成并播放所以声音,包括音乐。(建立在DirectSound基础上)o DirectPlay:控制多人对战游戏中的通信。DirectX 9的声音播放o 集
6、成DirectSoundn WAV 文件或其他资源现在可以由 DirectSound加载器加载,通过 DirectSound演奏器进行播放 n 合成器的输出被送至多个回放缓冲区内,每一个缓冲区对应特定的三维位置和声音效果n 提供空间残音效果、交互三维声音、环境混响、扭曲和回音等效果,并可随意添加第三方制作效果。DirectX播放声音的例子o Visual Studio .NETo DirectX SDKo 四个例子说明:n High5:播放声音n Cacophony(杂音):改变立体声音量、频率n 三维声音播放n 音效处理实例1:High5o 掷骰子声音(1到5个)o dsutil.cpp:提
7、供声音方面的实用库,可以修改为我所用o dxutil.cpp:directX实用库o / CSoundManager类和 Csound类在 dsutil.h中定义. 他们是Dsound类中最为有用的,也是可以被开发者扩充的类。High5 步骤o 初始化声音管理器o 装入声音文件o 由用户触发播放声音文件o 两个全局变量n g_pSoundManager: 声音管理器n g_pSound:CSound,声音对象HIGH5o 声音播放中最常用到的是时间函数o MS Win 32 SDK中提供的计时工具并不精确:最小间隔是55毫秒;o 在古老的Multimedia SDK中,有一个毫秒级的timeG
8、etTime函数(DWORD)n initMSTimer:记录调用时的时间n getMSTimer:计算两者之间的间隔时间初始化声音管理器o InitDirectSound():o 创造一个新的管理对象:og_pSoundManager = new CSoundManager();osoundWorking = false;oif (g_pSoundManager != NULL)o 初始化该管理对象if (SUCCEEDED(g_pSoundManager-Initialize( hwndDlg,DSSCL_PRIORITY)osoundWorking = true;ooDSSCL_PRIO
9、RITY:仅播放当前focus的声音装入声音文件/ 处理正在播放的声音if( g_pSound )g_pSound-Stop();g_pSound-Reset();/ 删除声音对象SAFE_DELETE( g_pSound );/ 声音文件名strcpy(fullFilename,g_soundDir);strcat(fullFilename,filename);/ 将wave 文件装到DirectSound 缓冲区中if (FAILED(g_pSoundManager-Create( &g_pSound,fullFilename, 0, GUID_NULL, nSounds )return
10、false;声音管理器的声音创建函数o 声音管理器创建一个CSound对象,从wav格式中复制到指定数目的缓冲区(buffer)中;o Create( &g_pSound /声音对象,fullFilename/路径, 0, GUID_NULL, nSounds/指定数目缓冲区 )o 第三个参数:指定是否可以对该声音进行处理,如DSBCAPS_CTRL3D参数可以用于三维声音控制o 第四个参数:guid3DAlgorithm,指定三维声音处理方式。如果前面没有指定DSBCAPS_CTRL3D,必须设为GUID_NULL声音管理器的声音创建函数(续)o 如果控制参数设置为0,那么在播放时不能修改!
11、o DSBCAPS_CTRLVOLUME:可以修改音量o DSBCAPS_CTRLFREQUENCY:修改频率o DSBCAPS_CTRLPAN :可以移动声音o DSBCAPS_CTRLFX:可以生成音效o DSBCAPS_CTRL3D:可以进行三维处理播放声音o for (n=0; nnSounds; n+)/ 延迟最多0.2秒odelay = dieRoll(200);ocurrent = getMSTime();owhile (getMSTime() Play( 0, dwFlags, 0 , 0 , 0 );o 实例2:Cacophony(杂音)o 功能:改变音量、Panning和频
12、率o 仅处理二维声音o 修改了Csoundmanager和Csound两个类o 将dsutil.h和dsutil.cpp改为Extended-dsutil.h和Extended-dsutil.cpp,添加三个类:o class CCircularSound;/处理streamingo class CSoundFXManager; /音效管理器o class CSoundFXData;/音效对象数据实例2:Cacophony(杂音)o 改变声音的播放时段o 启动与结束音量o 启动与结束声音移动的位置o 频率的起始与结束CSoundEffect类o 用于管理各种声音的特效o 几个方面:o Star
13、t_time:播放的起始时刻o Start_distance:播放的起始距离o Start_position:播放的起始位置o Start_frequency:播放的起始频率o End_distance:播放的结束距离o End_position:播放的结束位置o End_frequency:播放的结束频率o On_completion:指向下一个播放的声音实例3:Rumpus吵闹的三维声音o DirectSound最有震撼力的是三维声音o 三维功能通过IDirectSound3Dbuffer和 IDirectSound3Dlistener两个接口提供o 在应用中, IDirectSound3
14、Dbuffer物体表示声音源, IDirectSound3Dlistener表示听到声音的物体(用户)三维Direct Soundo IDirectSound3Dbuffern 位置n 声源传播速度n Sound projection conen 与有向光源类似o IDirectSound3Dlistenern 位置n 方向三维声音中的几个影响因素o Doppler 效应n 快速移动的物体朝向听者,声音将被压缩,因此,具有更高的频率n 快速移远的物体,声音将被扩充,因此,具有更低的频率三维声音中的几个影响因素o Distance Factor:实际场景中的尺寸与meters的比例。如英尺:0.
15、3048o Rolloff Factor:决定声音消失的快慢。0表示没有衰减。类似于绘制中的雾。(demo:carrevupdown.wav)o 最小距离:三维声音中的几个影响因素o Ambient Sounds:泛音o Sound Cones:音锥,模拟有向声音三维声音中的几个影响因素三维声音播放的数据结构o CSoundManager* g_pSoundManager = NULL;o CSound* g_pSoundmax_sounds;o LPDIRECTSOUND3DLISTENER g_pDSListener = NULL;o / 听者o DS3DLISTENER g_dsList
展开阅读全文