OpenAL 1.1 距離モデルとゲイン

閑話休題。以前書いたように、OpenAL では複数の距離モデルがあり、それぞれによって音源から届く音の減衰のパターンを変えることができます。
しかしながら実際にどれだけ違うのか OpenAL 1.1 の仕様書に書いてある数式を見ただけでは
さっぱり分からないので、C# で実装してグラフにしてみました。ソース
C#Hello World 以外のソースを書くのが初めてなので、たったこれだけを書くだけでかなり骨が折れました。
でもたったこれだけでも C++ を使いたくなくなるほど良い感じです。
環境は Mono 1.1.9 です。グラフは gnuplot で描きました。



グラフの条件は、 Reference_distance が 10.0f, Max_distance が 100.0f です。
横軸が音源-聞き手間の距離、縦軸がゲインです。パラメータは Rolloff_factor がそれぞれ 0.2, 0.5, 1.0 です。



1, Inverse Distance Rolloff Model


2, Inverse Distance Clamped Model


3, Linear Distance Rolloff Model


4, Linear Distance Clamped Model


5, Exponential Distance Rolloff Model


6, Exponential Distance Clamped Model



このうち、I3DL2 モデルと等価なのは 2 の Inverse Distance Clamped モデルです。
これだけ見るとフーンっていう感じですが、まあなんとかそれぞれの聞こえ方に当たりが付けられそうなので
あとは実際に聞き比べないと分かりませんです。