球面調和関数
参照:
例えばある点での全方向(放射状)からの光の当たり方について、それをテクスチャ画像として真面目に保存すると、容量を食ってしまう。そこで、そういった放射状の光データを数個の係数だけで再現できるようにした関数を球面調和関数(以下、SH)と呼ぶらしい。SHは無限に存在しているらしく、それぞれ位数$ mと次数$ \ellという2つのindexで指定できる。 次数$ \ellはSHの全体的傾向を決め、位数$ mはそのバリエーションを産む。
https://gyazo.com/70ae6661dddaa3087627e2faed8699f9
CGでは$ \ell=2までで事足りるとか。この場合、RGBそれぞれ9つの係数データ(=計27個)さえあればSHを構築でき、光の当たり方を再現できる。テクスチャとして保存するより圧倒的にエコ。 $ \ell=0が全体的な色、$ \ell=1でx,y,z軸それぞれの色、$ \ell=2で斜め方向の色情報がそれぞれ得られるイメージ。それらのデータがすべて使われて最終的に放射状の光の当たり方が取得できる。
https://gyazo.com/31869c3f28cbdcae92d68c856872e832