光照模型
L = L d + L s + L a L=L_d+L_s+L_a L=Ld+Ls+La
L d L_d Ld为漫反射光, L s L_s Ls为高光, L a L_a La为环境光。
1.漫反射
理解:漫反射散向四面八方,与观察方向无关,只与表面接受到的光源的有效光有关
L
d
=
k
d
I
r
2
m
a
x
{
0
,
n
⋅
l
}
L_d=k_d\frac{I}{r^2}max\{0,n\cdot l\}
Ld=kdr2Imax{0,n⋅l}
k d k_d kd漫反射系数(范围0至1,表明反射的强度), I I I光源, r r r表面距光源距离, n n n表明法向量, l l l入射光向量(注意方向为负)
ps:均为单位向量
2.高光
相比于Phong模型,Blinn-Phong模型的高光项采用
l
,
v
l,v
l,v两者的角平分线与
n
n
n的夹角来表示观察方向与镜面反射方向的夹角,从而提高计算效率。
L
s
=
k
s
I
r
2
m
a
x
{
0
,
n
⋅
h
}
p
L_s=k_s\frac{I}{r^2}max\{0,n\cdot h\}^p
Ls=ksr2Imax{0,n⋅h}p
k s k_s ks镜面反射系数(范围0至1,表明反射的强度), I I I光源, r r r表面距光源距离, n n n表明法向量, h = l + v ∣ l + v ∣ h=\frac{l+v}{|l+v|} h=∣l+v∣l+v, p p p表示角度的影响,因为高光只在小角度才会起作用,下面是 c o s p x cos^px cospx的几个变化图
3.环境光
在Blinn-Phong模型中环境光被当作常数处理
L
a
=
k
a
I
a
L_a=k_aI_a
La=kaIa