双向分布函数
BRDF
BRDF Cook-Torrance 镜面反射
- 公式:
Func=4(N⋅V)(N⋅L)D⋅F⋅G
推导
-
E=∫δSAδLi⋅δSA⋅cosαδΩ=∫δLi⋅cosα微观δΩi
-
δS微观=δS宏观⋅D⋅δΩH
-
cosα微观=H⋅L
-
Lo=∫N⋅V⋅δΩOδLi⋅(H⋅L)⋅D⋅δΩH⋅F⋅GδΩi
-
δΩO=4(H⋅L)δΩH
-
Lo=∫4(N⋅V)δLi⋅D⋅F⋅GδΩi
GGX
用于描述常见硬表面模型
D项
- 公式:
D(N,H)=π[(N⋅H)2(α2−1)+1]2α2
α=Roughness2
- 理解:
- H为微观法线,因为在完美镜面的假设下,我们只能看到由法线为H的平面反射出来的光(to V)
- NdotH为法线分布函数 D(x)=π[x2(α2−1)+1]2α2 的自变量,α为该函数的参数。
- ∫D(x)⋅(N⋅H)δΩ=1
- D项名为法线分布函数,但并非表示概率密度,他是PDF(概率密度函数)⋅δS宏δS微
F项(Schlick 近似公式)
- 公式:
F(V,H)=F0+(1−F0)(1−V⋅H)5
- 理解:
- 对于法线为H的微小平面的菲涅尔现象
- F0为基础反射率
G项
- 公式:
G(x)=x⋅(1−k)+kx(x=N⋅VorN⋅L)
- 理解:
Charlie
用于描述微观各项同性的纺织物表面绒毛模型,边缘微光(Sheen)的效果
D项
- 公式:
D(N,H)=2π2+a1⋅(1−(N⋅H)2)2a1
- 理解:
- 当NdotH=1时,D项值为0,描述的是由微观直立绒毛形成的特殊波瓣
F项
V项(G与 4(N⋅V)(4⋅L) 约分)
Charlie_Fast
- 公式:
V(N,L,V)=4((N⋅L)+(N⋅V)−(N⋅V)(N⋅L))1
Estevez-Kulla Rational Fit
BRDF 漫反射
Lambert 与 Disney
Funclambert=πAlbedo
Funcdisney=πAlbedo⋅[1+(FD90−1)(1−N⋅L)5]⋅[1+(FD90−1)(1−N⋅V)5]
FD90=0.5+2⋅Roughness⋅(L⋅H)2
能量守恒
Ein≥Eout=Especular+Ediffuse
- 镜面反射项假设为绝对光滑(仅菲涅尔),所以漫反射项添加为:
Func⋅(1−F(N,V))
- 严谨条件下,漫反射项的系数应同时遵从入射透射与出射透射(双向能量守恒多层传输)