- audio: 更新 audio-mixer, equalizer, fft-filter, hrtf, reverbation 方法文档 - resources: 更新资源管理文档 - debug: 新增 renderdoc-capture 文档
54 lines
1.5 KiB
Markdown
54 lines
1.5 KiB
Markdown
# Reverbation
|
||
|
||
**命名空间**: `XCEngine::Audio`
|
||
|
||
**类型**: `class`
|
||
|
||
**头文件**: `XCEngine/Audio/Reverbation.h`
|
||
|
||
**描述**: 混响效果器,基于 Schroeder 算法实现。
|
||
|
||
## 概述
|
||
|
||
Reverbation 是 Schroeder 算法的并行 Comb 滤波器 + AllPass 滤波器混响实现。它模拟真实环境中声音的早期反射和后期混响,支持调节房间大小(RoomSize)、阻尼(Damping)、干湿信号混合比等参数,适用于游戏场景中的环境混响效果。
|
||
|
||
## 公共方法
|
||
|
||
| 方法 | 描述 |
|
||
|------|------|
|
||
| `ProcessAudio` | 处理混响音频 |
|
||
| `SetRoomSize` | 设置房间大小 |
|
||
| `GetRoomSize` | 获取房间大小 |
|
||
| `SetDamping` | 设置阻尼 |
|
||
| `GetDamping` | 获取阻尼 |
|
||
| `SetWetMix` | 设置湿信号混合比例 |
|
||
| `GetWetMix` | 获取湿信号混合比例 |
|
||
| `SetDryMix` | 设置干信号混合比例 |
|
||
| `GetDryMix` | 获取干信号混合比例 |
|
||
| `SetWidth` | 设置声场宽度 |
|
||
| `GetWidth` | 获取声场宽度 |
|
||
| `SetFreeze` | 设置冻结模式 |
|
||
| `IsFreeze` | 检查冻结状态 |
|
||
|
||
## 使用示例
|
||
|
||
```cpp
|
||
#include <XCEngine/Audio/Reverbation.h>
|
||
|
||
using namespace XCEngine::Audio;
|
||
|
||
void SetupReverb() {
|
||
Reverbation* reverb = new Reverbation();
|
||
reverb->SetRoomSize(0.5f);
|
||
reverb->SetDamping(0.5f);
|
||
reverb->SetWetMix(0.3f);
|
||
reverb->SetDryMix(0.7f);
|
||
reverb->SetWidth(1.0f);
|
||
}
|
||
```
|
||
|
||
## 相关文档
|
||
|
||
- [Audio 模块总览](../audio.md) - Audio 模块总览
|
||
- [IAudioEffect](../i-audio-effect/i-audio-effect.md) - 音频效果接口
|