Unity3D:光照探针-技术信息
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
光照探针:技术信息
光照探头中的照明信息被编码为球谐基函数。我们使用三阶多项式,也称为 L2 球谐波。它们使用 27 个浮点值存储,每个颜色通道 9 个。
Unity 中的 Enlighten 全局光照实现使用与该功能的原始开发人员 Geomerics 不同的球谐方法,即 Peter-Pike Sloan 的论文《愚蠢的球谐波 (SH) 技巧》中的符号和重建方法。Geomerics的原始方法基于Ramamoorthi / Hanrahan的论文“辐照度环境图的有效表示”中的符号和重建方法。
用于重建的着色器代码可在 UnityCG.cginc 中找到,并使用 Peter-Pikes 论文中附录 A10 辐照度环境贴图的着色器/CPU 代码中的方法。
数据在内部的排列顺序如下:
[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
由3D建模学习工作室整理翻译,转载请注明出处!