ARCore之路-运动跟踪之3D声场(四)
上节我们已经利用共振音频(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