光照探针
Light Probe Groups

光照探针:技术信息

光照探针中的光照信息被编码为球谐 (SH) 基函数。我们使用三阶多项式,也称为 L2 球谐函数。它们采用 27 个浮点值进行存储,每个颜色通道使用 9 个浮点值。尽管 Unity 使用 Geomerics 的 Enlighten,但我们使用的 SH 基函数与您在他们博客上看到的不同(y 轴和 z 轴进行了交换)。Unity 使用的是 Peter-Pike Sloan 的论文愚蠢的球谐函数 (SH) 技巧 (Stupid Spherical Harmonics (SH) Tricks) 中的表示法和重建方法,而 Geomerics 使用的是 Ramamoorthi/Hanrahan 的论文辐射环境贴图的高效表示 (An Efficient Representation for Irradiance Environment Maps) 中的表示法和重建方法。

用于重建的 Unity 着色器代码可在 UnityCG.cginc 中找到,并使用 Peter-Pikes 论文的“附录 A10 辐射环境贴图的着色器/CPU 代码 (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 光照探针系统的更多背景信息,可阅读 Robert Cupisz 在 2012 年游戏开发者大会 (GDC 2012) 上的演讲报告“使用四面体曲面细分的光照探针插值 (Light Probe Interpolation Using Tetrahedral Tessellations)”- GDC 2012


  • 2017–06–08 Page published with no editorial review

  • 在 5.6 版更新了光照探针

光照探针
Light Probe Groups