0

私は自家製のゲームエンジンに取り組んでおり、現在オーディオエンジンの実装に取り​​組んでいます。これは主に独学上の理由によるものです。必要に応じて、または必要に応じて OpenAL、XAudio2、またはその他のプラットフォームを切り替えることができるように、一般的なオーディオ処理用のインターフェイス ラッパーを作成したいと考えています。また、このコードを再利用できるようにしたいので、できるだけ完全なものにして、さまざまなシステムにできるだけ多くの機能を実装させようとしています。当面は XAudio2 の実装に集中しており、後日 OpenAL の実装に移行する可能性があります。

過去数か月間、3D 処理 (リスナー/エミッター)、環境効果 (残響)、排除、閉塞、妨害、および直接音に関する多くの記事を読みました。これらのエフェクトをオーディオ再生で使用できるようにしたいと考えています。できる限りトピックを調査しましたが、オクルージョン (直接および反射信号の消音)、妨害 (直接信号の消音)、または除外 (反射信号の消音) が実際にどのように実装されているかについての例は見つかりません。MSDN のドキュメントを読むと、オクルージョンへの受動的な参照のように見えますが、実装については直接的なことは何もありません。私が見つけた最高のものは、一般的な「ローパスフィルターを使用する」ことですが、あまり役に立ちません

私の質問は次のとおりです。XAudio2 を使用して、オーディオ反射信号の消音 (除外) とオーディオ直接信号の消音 (障害) または両方 (閉塞) をどのように実装しますか? オーディオ グラフはどのように表示され、残響環境効果とどのように関連するのでしょうか?

編集 2013-03-26 :
グラフについてさらに考えてみると、正しい視点からグラフを見ていない可能性があることに気付きました。
グラフは次のように表示されます: ソース → エフェクト (サブミックス) → マスタリング
-または-
グラフは一般的に次のように表示されます。

       ↗→   Direct   → Effects  ↘
Source                            →Mastering
       ↘→ Reflections → Effects ↗

2 番目のグラフは、除外と障害を別々に計算できるようにグラフを分割します。私の混乱の一部は、それらが独立して処理される方法でした.
その場合、3D オーディオ DSP 構造のリバーブ設定が反射パスに適用されると思います。ドップラーは、直接パスのみ、または直接パスと反射パスの両方に適用されます。また、リバーブの環境効果は反射パスのみに影響します。これは正しいオーディオ グラフ モデルに近づいていますか?

4

1 に答える 1

0

グラフを次の行に沿って表示する必要があります。

入力データ ---> ローパス フィルター ---> 出力

ソースがより遮られるようになると、ローパス フィルターを調整します。ローパス フィルターのゲインを使用して、吸収をシミュレートすることもできます。フィルター設定は、サウンド デザイナーが調整できる方法で公開されるように設定するのが最適です。

この記事では、音の伝播について詳しく説明しています: http://engineroom.ubi.com/sound-propagation-and-diffraction-simulation/

これに関しては、リバーブなどの環境効果のグラフに沿って渡されます。これらをグラフのさらに下に配置するだけです。

入力 ---> ローパスフィルター ---> 出力 ---> リバーブ ---> マスターアウト

このようにして、リバーブされたサウンドはオクルージョンされたサウンドと一致します (そうしないと、リバーブが直接信号と一致しないため、奇妙に聞こえます)。

ローパス フィルターを使用すると曖昧で不完全に聞こえますが、実際には高周波数をフィルター処理してゲインを調整する以上の効果はありません。より高度な環境モデリングについては、「複雑なシーンにおけるダイナミック ソースのリアルタイム サウンド伝播のための事前計算された波シミュレーション」のようなものを研究したいと考えています (まだ十分な担当者がいないため、直接リンクすることはできません!)。あなたが達成しようとしている範囲を超えている可能性があります。

于 2013-03-26T11:17:45.683 に答える