ライトプローブのライティング情報は、球面調和基本関数として符号化されています。L2 Spherical Harmonicsとしても知られる 3 次の多項式を使用します。これらは 27 の浮動小数点値 (各カラーチャンネルに 9 ずつ)を使って格納されます。
The Enlighten Realtime Global Illumination implementation in Unity uses a different spherical harmonics approach than Geomerics, the feature’s original developer, namely the notation and reconstruction method from Peter-Pike Sloan’s paper, Stupid Spherical Harmonics (SH) Tricks. Geomerics’ original approach was based on the notation and reconstruction method from Ramamoorthi/Hanrahan’s paper, An Efficient Representation for Irradiance Environment Maps.
再構成のためのシェーダーコードは UnityCG.cginc にあり、Peter-Pikes の論文の Appendix A10 Shader/CPU code for Irradiance Environment Maps のメソッドを使用しています。
データは内部的にこのように並べられます。
[L00: DC]
[L1-1: y] [L10: z] [L11: x]
[L2-2: xy] [L2-1: yz] [L20: zz] [L21: xz] [L22: xx - yy]
R, G, B の 9 つの係数はこのように並べられます。
L00, L1-1, L10, L11, L2-2, L2-1, L20, L21, L22, // レッドチャンネル
L00, L1-1, L10, L11, L2-2, L2-1, L20, L21, L22, // ブルーチャンネル
L00, L1-1, L10, L11, L2-2, L2-1, L20, L21, L22 // グリーンチャンネル
Unity のライトプローブシステムに関するさらに詳しい情報は、GDC 2012 の Robert Cupisz の講演 Light Probe Interpolation Using Tetrahedral Tessellations, GDC 2012 を参照してください。
2017–06–08 公開ページ
Light Probes、 5.6 で更新