私は自家製のゲームエンジンに取り組んでおり、現在オーディオエンジンの実装に取り組んでいます。これは主に独学上の理由によるものです。必要に応じて、または必要に応じて OpenAL、XAudio2、またはその他のプラットフォームを切り替えることができるように、一般的なオーディオ処理用のインターフェイス ラッパーを作成したいと考えています。また、このコードを再利用できるようにしたいので、できるだけ完全なものにして、さまざまなシステムにできるだけ多くの機能を実装させようとしています。当面は XAudio2 の実装に集中しており、後日 OpenAL の実装に移行する可能性があります。
過去数か月間、3D 処理 (リスナー/エミッター)、環境効果 (残響)、排除、閉塞、妨害、および直接音に関する多くの記事を読みました。これらのエフェクトをオーディオ再生で使用できるようにしたいと考えています。できる限りトピックを調査しましたが、オクルージョン (直接および反射信号の消音)、妨害 (直接信号の消音)、または除外 (反射信号の消音) が実際にどのように実装されているかについての例は見つかりません。MSDN のドキュメントを読むと、オクルージョンへの受動的な参照のように見えますが、実装については直接的なことは何もありません。私が見つけた最高のものは、一般的な「ローパスフィルターを使用する」ことですが、あまり役に立ちません
私の質問は次のとおりです。XAudio2 を使用して、オーディオ反射信号の消音 (除外) とオーディオ直接信号の消音 (障害) または両方 (閉塞) をどのように実装しますか? オーディオ グラフはどのように表示され、残響環境効果とどのように関連するのでしょうか?
編集 2013-03-26 :
グラフについてさらに考えてみると、正しい視点からグラフを見ていない可能性があることに気付きました。
グラフは次のように表示されます: ソース → エフェクト (サブミックス) → マスタリング
-または-
グラフは一般的に次のように表示されます。
↗→ Direct → Effects ↘
Source →Mastering
↘→ Reflections → Effects ↗
2 番目のグラフは、除外と障害を別々に計算できるようにグラフを分割します。私の混乱の一部は、それらが独立して処理される方法でした.
その場合、3D オーディオ DSP 構造のリバーブ設定が反射パスに適用されると思います。ドップラーは、直接パスのみ、または直接パスと反射パスの両方に適用されます。また、リバーブの環境効果は反射パスのみに影響します。これは正しいオーディオ グラフ モデルに近づいていますか?