模拟真实的光照环境:
高光反射(specular):表示物体表面是如何反射光线的
漫反射(diffuse):表示有多少光线被折射、吸收和散射出表面
标准光照模型:
直接光照(direct light):直接从光源发射出来经过物体表面一次发射后进入摄像机的光线
基本方法:把进入到摄像机的光线分为4部分,每一部分单独计算贡献度
- 自发光(emissive)部分:当给定一个方向时,物体本身会向这个方向发射多少辐射量。
- 高光反射(specular)部分:描述当光线从光源照射到模型表面时,该表面会在完全镜面反射方向散射多少辐射量。
- 漫反射(diffuse)部分:描述当光线从光源照射到模型表面时,该表面会向每个方向散射多少辐射量。
- 环境光(ambient)部分:描述其他所有的间接光照。
环境光:一般是一个全局变量,即场景中的所有物体都使用同一个环境光
cambient=gambientc_{ambient} = g_{ambient}cambient=gambient
自发光:直接使用该材质的自发光颜色
cemissive=memissivec_{emissive} = m_{emissive}cemissive=memissive
漫反射:符合兰伯特定律(Lambert’s Law):反射光线的强度与表面法线和光源方向的夹角的余弦值成正比
cdiffuse=(clight⋅mdiffuse)max(0,n⃗⋅l⃗)c_{diffuse} = (c_{light}·m_{diffuse})max(0,\vec{n}·\vec{l})cdiffuse=(clight⋅mdiffuse)max(0,n⋅l)
- clightc_{light}clight:光源颜色
- mdiffusem_{diffuse}mdiffuse:材质漫反射颜色
- n⃗\vec{n}n:表面法线
- l⃗\vec{l}l:指向光源的单位矢量
- max(0,n⃗⋅l⃗)max(0,\vec{n}·\vec{l})max(0,n