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\{\begin{aligned}&light(w)=L(p,w)\\&t(w)=n\cdot w\end{aligned}\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\{\begin{aligned}&light(w)=\sum_{i=0}L_iY_i(w)\\&t(w)=\sum_{i=0}t_iY_i(w)\end{aligned}\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都单独通过积分求解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值