Image-Based Lighting 知識編

 今回は記事の中で、IBLに必要になりそうな知識をまとめます。まだPaul Debevec氏のものを1ページぐらいしか読んでいないですけどね。(笑)

 まず前提条件として、シェーダで3Dグラフィックスが出来ることです。頂点シェーダとかピクセルシェーダとかいじれないと辛いと思います。理解していればついていけると思いますが。私は基本的に理論を理解できていないことが多いですが、一応ここまではなんとなく出来ます。

 最初に必要そうなものはBRDFです。BRDFとは、双方向反射率分布関数のことです。簡単に言うと光が反射されたとき、どの方向にどれだけ反射するかを表したものです。現在これをプログラムに実装するやり方がわからないので要勉強ですね。

 次に環境マッピングです。もともと環境マッピングはIBLに似ていると感じたのですが、キューブマップ・スフィアマップと二種類ある点。さらにライティングを計算するためのテクスチャ座標の求め方も一緒になりそうです。予想ですが、環境マッピングは反射して映ったもの、IBLはライティングの計算に使用する違いがあると思います。環境マッピングを併用するときには二度計算が必要なのでしょうかね?

 最後にHDRIです。HDRIはHigh Dynamic Range Imageの略で、通常の画像に輝度を追加した画像フォーマットです。データとして入っているのが、RGBAではなくRGBEになっているとのことです。(Eの部分はAlphaで使用することもあるようです)
これが環境マッピングに使用するテクスチャ画像にそっくりです。Paul Debevec氏も川瀬正樹氏も今給黎隆氏もこれを使用しているので、HDRIのフォーマットを覚えることは重要です。


少し箇条書きっぽくなってしまいましたが、この3点をIBL時には使用しそうなので注意していきます。また、上記3つのことはほぼt-pot『HDR画像フォーマット』で解説されています。