赞
踩
参考文章:https://zhuanlan.zhihu.com/p/351289217
球谐函数可以类比泰勒展开,傅里叶级数。都是通过一组不同阶的基函数线性组合而成,只不过傅里叶级数的基函数是三角函数,而球谐函数的基函数是球函数。即正交基为球函数,极坐标即球函数系数。
同样就像傅里叶变换拟合曲线一样,球谐函数拟合3d物体时,所用阶数越高,拟合越贴切,但是也有可能出现过拟合的情况。
若将函数所表示的距离变成颜色上的数值差异,就可以用球谐函数来拟合颜色信息。
参考文章:
漫反射光照函数
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
进行替换
{
l
i
g
h
t
(
w
)
=
L
(
p
,
w
)
t
(
w
)
=
n
⋅
w
\left.\left\{
进行球谐函数展开
{
l
i
g
h
t
(
w
)
=
∑
i
=
0
L
i
Y
i
(
w
)
t
(
w
)
=
∑
i
=
0
t
i
Y
i
(
w
)
\left.\left\{
带回光照函数模型化简
L
(
p
,
w
o
)
=
∑
i
=
0
L
i
t
i
L(p,w_o)=\sum_{i=0}L_it_i
L(p,wo)=i=0∑Liti
此时形式简单,但是实际上计算时,需要预计算
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=0∑∞m=−l∑l2l+14π
LlmtlYlm(n)
此时只需要通过顶点着色器传入的法向量n计算出球谐函数
Y
l
m
(
n
)
Y_l^m(n)
Ylm(n),再与常数相乘,不需按原来要对每个t都单独通过积分求解。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。