当前位置:   article > 正文

3DGS学习(三)—— 球谐函数

3DGS学习(三)—— 球谐函数

球谐函数

直观了解

参考文章:https://zhuanlan.zhihu.com/p/351289217
球谐函数可以类比泰勒展开,傅里叶级数。都是通过一组不同阶的基函数线性组合而成,只不过傅里叶级数的基函数是三角函数,而球谐函数的基函数是球函数。即正交基为球函数,极坐标即球函数系数。
在这里插入图片描述

同样就像傅里叶变换拟合曲线一样,球谐函数拟合3d物体时,所用阶数越高,拟合越贴切,但是也有可能出现过拟合的情况。
在这里插入图片描述

球谐函数性质

  1. 正交性:各个基函数之间线性独立
  2. 旋转不变性:环境光照变化之后只需要简单的计算就可以得到光源旋转之后的结果,在后续应用中补充。

若将函数所表示的距离变成颜色上的数值差异,就可以用球谐函数来拟合颜色信息。

球谐光照

参考文章:

  1. https://zhuanlan.zhihu.com/p/359856625
  2. https://zhuanlan.zhihu.com/p/363600898

漫反射光照函数
L ( p , w o ) = ∫ Ω L ( p , ω i ) n ⋅ ω i d w i L(p,w_o)=\int_{\Omega}L(p,\omega_i)n\cdot\omega_idw_i L(p,wo)=ΩL(p,ωi)nωidwi

  • Ω \Omega Ω为半球空间,入射光方向 w i w_i wi,观察方向 w o w_o wo,着色点 p p p, n n n 为着色点 p p p 的法线。

进行替换
{ l i g h t ( w ) = L ( p , w ) t ( w ) = n ⋅ w \left.\left\{

light(w)=L(p,w)t(w)=nw
\right.\right. {light(w)=L(p,w)t(w)=nw

进行球谐函数展开
{ l i g h t ( w ) = ∑ i = 0 L i Y i ( w ) t ( w ) = ∑ i = 0 t i Y i ( w ) \left.\left\{

light(w)=i=0LiYi(w)t(w)=i=0tiYi(w)
\right.\right. light(w)=i=0LiYi(w)t(w)=i=0tiYi(w)
带回光照函数模型化简
L ( p , w o ) = ∑ i = 0 L i t i L(p,w_o)=\sum_{i=0}L_it_i L(p,wo)=i=0Liti
此时形式简单,但是实际上计算时,需要预计算 t i t_i ti,即对每一组法线方向都要计算一组球谐函数得到其系数,实际开销较大。于是利用球谐函数旋转不变性的性质继续推导得到
L ( n ) = ∑ l = 0 ∞ ∑ m = − l l 4 π 2 l + 1 L l m t l Y l m ( n ) L(n)=\sum_{l=0}^\infty\sum_{m=-l}^l\sqrt{\frac{4\pi}{2l+1}}L_l^mt_lY_l^m(n) L(n)=l=0m=ll2l+14π LlmtlYlm(n)
此时只需要通过顶点着色器传入的法向量n计算出球谐函数 Y l m ( n ) Y_l^m(n) Ylm(n),再与常数相乘,不需按原来要对每个t都单独通过积分求解。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/179218?site
推荐阅读
相关标签
  

闽ICP备14008679号