在看3dmax教程时,发现在Shader Basic Parameters一栏中,有几个可选的光照模型。想起来之前书里看过的光照模型,于是查了查资料,从程序的角度来总结下这些光照模型。
Lambert:
虽然3dmax里边没有这个但是赶脚还是应该写一下……
描述漫反射:
L=cos¯¯¯¯¯θi∗cdiff
BRDF形式:
f(l,v)=cdiffπ
- θi :入射方向和法线的夹角。
BRDF中除以 π 的这个系数,原因是BRDF理论中,为了保持能量守恒而,做了归一化。后边的系数也都来源于此,就不一一说明了。
Phong
For surfaces with strong, circular highlights
在Lambert基础上,增加镜面高光:
L=cos¯¯¯¯¯θi∗cdiff+cos¯¯¯¯¯mαr∗cspec
BRDF形式:
f(l,v)=