三种EnvironmentMap的Spherical Harmonic Coefficients的计算方法

        这篇文章介绍如何计算三种Environment Mapping(EN)的Spherical Harmonic Coefficients(SHC)。其中Sphere Map的计算方法是来自Ramamoorthi[1],Cubic MapParabolic Map的计算方法是自GPU Gem2的第十章[2]。

 

基本原理

1. Environment Map

        原理可参照参考[3][4]中的资料,理解EM的原理有助于理解如何计算其每个texel对应的Solid Angle

2. Spherical Harmonic

        原理可参照参考[5][6]中的资料,可对照《信号与系统》中的傅里叶变换来理解。还可参考本文最后的  “Spherical Harmonic其他资料”。

 

计算方法

        SHC可由公式1计算得到

                                            image

        对于一个EM来说,公式1可变为

                                                   image

 

 

 

        其中:

                N是texel总数

                L (i)是第i个texel的RGB值

                Y_l_m(i)是第i个texel的Spherical Harmonic Basis Function的值

                dw(i)是第i个texel对应于单位球上的solid angle,满足image

        

        所以,要计算EM的SHC,则需要分别计算出  Y_l_m(i)和  dw(i)。对于不同的EM来说,计算  Y_l_m(i)和  dw(i)的方法是不一样的。

 

Parabolic Map

       Parabolic Map需要计算两面,计算方法相同,以+z面为例,如图所示

                                   image

       Solid Angle:

                              image

       SH Basic Function:

                              由n和v计算出r,由r计算Y_l_m

 

Cubic Map

       Cubic Map需要计算6个面,每个面计算方法是一样的,以+z面为例,如图所示

                                       image

       Solid Angle:

                            

       SH Basis Function:

                             由(x,y,1)计算Y_l_m

 

Sphere Map

       Ramamoorthi的计算方法是先将Sphere Map的texel映射到单位球上。如下图所示 ,紫色的点代表靠近  Sphere Map圆心的texel,绿色的点代表边缘的texel,越靠近边缘绿色越深。

                                                  image

        Solid Angle:

                             image

                            image

      SH Basis Function:

                            通过单位球上的点(x,y,z)可以计算出Y_l_m

 

        我现在暂时还没有弄明白为什么要这样计算Solid Angle。参考[4]中说Sphere Map边缘的texel应该比中心的texel包含更多的环境信息,按照我的理解边缘的texel对应的Solid Angle应该更大才对。

        用Ramamoorthi的方法可以得到和他论文一样的结果。为了方便计算,均采用PPM格式。

                      image

 

参考

[1] Ramamoorthi, Ravi, and Pat Hanrahan,  "An Efficient Representation for Irradi-ance Environment Maps," Computer Graphics (SIGGRAPH 2001 Proceedings), pp. 497-500, August 2001.

[2] Gary King, “Real-Time Computation of Dynamic irradiance Environment Maps,” GPU Gems 2.

[3] Jason Zink, “Dual Paraboloid Mapping In The Vertex Shader,”gamedev.net.

[4] Paul Zimmons, “Final Project : Spherical, Cubic, and Parabolic Environment Mappings,”

[5] Robin Green, “Spherical Harmonic Lighting : The Gritty Details,”

[6] Peter_Pike Sloan, “Stupid Spherical Harmonics(SH) Tricks,”

 

附:Spherical Harmonic其他资料

[1] kayru.org/articles/spherical-harmonics-in-games/

[2] http://www.yasrt.org/shlighting/

[3] Kelly Dempski, “Advanced lighting And materials With Shaders”

[4] Wolfgang F. Engel, “Efficient Evaluation of Irradiance Environment Maps,” ShaderX 2-Shader Program-ming Tips and Tricks

转载于:https://www.cnblogs.com/RenewGT/p/4563793.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值