ARCore之路-运动跟踪之3D声场(四)

版权声明:David Wang原创ARCore文章,仅供学习研究之用,不得用于任何商业目的,未经授权不得转载! https://blog.csdn.net/yolon3000/article/details/82716059

  上节我们已经利用共振音频(Resonance Audio)SDK实现了3D音效,这只是使用了共振音频(Resonance Audio)最简单的特性,共振音频(Resonance Audio)提供了远比示例中高级的功能技术特性,特别是模拟房间的参数,可以模拟很多生活中的真实环境特性,本节主要对Room参数、API进行更详细的了解。

一、Room effects

这里写图片描述

  如上图所示,Room属性中主要包括Surface Materials 、Reflectivity、Reverb Properties、 Size。

1、Surface materials

  对Room六个声学表面可以赋与不同的声学材质,共振音频(Resonance Audio)共提供了23种不同的材质,我们可以直接选择城要的声学材质,每一种声学材料定义了在不同的频率下声波吸收或反射率。例如,Heavy Curtain(厚窗帘) 吸收高频部分,因些提供一个更干燥、温暖声音的房间特性。Polished Concrete(抛光混凝土)在所有频率上都会反射更多的声音能量,从而产生更明亮和更有回声的房间特性。

2、Reflectivity

  这个参数用来对Resonance Audio Room中声源的早期反射强度进行调节,这样用户就能对他们周围房间的大小和形状有一个大致的印象。例如,减少这个参数的值来用来模拟受限小空间的声音,增加这个值用来模拟空旷空间的声音。

3、Reverb properties

  这些参数影响Resonance Audio Room的后期混响,它主要包括以下三个参数:
  Reverb Gain
  这个参数用来调整房间效果的混响增益,这个混响增益不是直接来自声源的声波。可以用这个参数来调整混合声音的“厚重”或“单薄”。例如,如果想让房间混响变弱,调整Reverb Gain使声音听其来更“单薄”。
  Reverb Brightness
  混响亮度(Reverb Brightness)用来调节混响中低频或高频的数量。Resonance Audio Room可以提供不同频率的不同混响衰减率,Room的墙面材质对不同的频率的音频吸收和反射率是不一样,就像在真实房间中一样。可以使用这个参数来调整房间声音的充盈程度。例如,降低混响亮度,给人一个房间更饱满的印象,并模拟一个包含许多物体或人的房间的声音。
  Reverb Time
  混响时间(Reverb Time)用来调节混响的时间长度,即混响的衰减时间。该值是根据Resonance Audio Room指定的表面材质和房间尺寸计算的混响时间的乘数,可以使用这个参数来对模拟房间的大小进行声学调整。

4、Room size

  使用x、y和z参数设置Resonance Audio Room的尺寸(以米为单位)。房间尺寸影响房间声音效果,这个尺寸同时也设置了声音的边界,当用户进入到范围内时触发房间声音效果,或者平稳地从一个Resonance Audio Room切换到另一个中。

二、Resonance Audio API

  共振音频(Resonance Audio)提供的主要API类如下:

类说明
ResonanceAudio 这是共振音频(Resonance Audio)的主要类,它负责共振音频(Resonance Audio)与操作系统及硬件的交互。
ResonanceAudioAcousticMesh 这个类用来处理Mesh,保存mesh filter或者terrain的复制风格信息,以及分配给三角形的表面材质。
ResonanceAudioListener 对Unity AudioListener的增强,提供更多高级的3D声场的调节参数。
ResonanceAudioMaterialMapper Resonance Audio material mapper可编程对象,负责处理GUID到表面材质的映射(这些材质定义了表面的声学特性)。
ResonanceAudioMaterialMapperUpdater Resonance Audio material mapper updater
ResonanceAudioReverbProbe 共振音频(Resonance Audio)混响Probe,作为音效的采样点,这个采样点会向其周围的环境发射射线,以此来感知周围环境的声学特性并利用这些信息来计算混响音效。
ResonanceAudioRoom 模拟房间,利用这个模拟房间来模拟真实的音效环境。
ResonanceAudioRoomManager 模拟房间的管理类,管理模拟房间的3D声场。
SurfaceMaterialDictionary 一个可序列化的字典类,它负责从表面材质到GUID的映射。
ResonanceAudioSource 对Unity AudioSource的增强,提供更多高级的3D声场的调节参数。

  此外,共振音频(Resonance Audio)技术还提供了对声音的混响烘焙(Reverb baking),与对光线进行烘焙一样,通过设置探针(Probe),可以将声音特性直接烘焙到环境中,省去实时的音频处理,降低处理器的压力。

参考文献

1、Developer Guide for Resonance Audio for Unity Developer Guide for Resonance Audio for Unity
2、Resonance Audio Unity SDK API Reference Resonance Audio Unity SDK API Reference

猜你喜欢

转载自blog.csdn.net/yolon3000/article/details/82716059