美文网首页征服Unity3d何三思Unity3D技术文档翻译
【Unity3D技术文档翻译】第3.6.6.1篇 光照探针:技术

【Unity3D技术文档翻译】第3.6.6.1篇 光照探针:技术

作者: 何三思 | 来源:发表于2018-08-18 10:27 被阅读5次
    Unity3D技术文档翻译

    上一章:【Unity3D技术文档翻译】第3.6.6篇 光照探针概述 (Light Probes)

    本章原文所在章节:【Unity Manual】→【Graphics】→【Graphics Overview】→【Lighting】→【Global Illumination】→【Light Probes】→【Light Probes: Technical information】

    光照探针:技术说明 (Light Probes: Technical information)

    光照探针中的光照信息被编码为球面谐波基函数(Spherical Harmonics basis functions)。我们使用三级多项式,又称为 L2 球谐函数。它们被存储为27个浮点值,每个颜色通道使用其中9个值。虽然 Unity 使用了 Geomerics 的 Enlighten 技术,我们使用了一种与他们博客中不同的球谐(简称 SH)基础(y 和 z 轴被交换了)。Unity 使用了 Peter Pike Sloan 的论文 Stupid Spherical Harmonics (SH) Tricks 中提到的符号和再建方法,而 Geomerics 使用的符号和再建方法来自于 Ramamoorthi/Hanrahan 的论文 An Efficient Representation for Irradiance Environment Maps

    Unity 中用于再建的 shader 代码可以在 UnityCG.cginc 中看到,使用的是来自 Peter-Pikes 论文中用于辐照度环境映射的附录 A10 中的 shader/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, // red channel
    
    L00, L1-1,  L10,  L11, L2-2, L2-1,  L20,  L21,  L22, // blue channel
    
    L00, L1-1,  L10,  L11, L2-2, L2-1,  L20,  L21,  L22  // green channel
    

    想要了解更多关于 Unity 光照探针系统的内容,你可以查看 Robert Cupisz 在 GDC 2012 上发表的演讲 Light Probe Interpolation Using Tetrahedral Tessellations”, GDC 2012

    如果本文对你有帮助的话,点个赞或者评论一下吧!

    下一章:【Unity3D技术文档翻译】第3.6.6.2篇 放置光照探针

    相关文章

      网友评论

        本文标题:【Unity3D技术文档翻译】第3.6.6.1篇 光照探针:技术

        本文链接:https://www.haomeiwen.com/subject/bbszbftx.html