光照(明暗模型)概述
三维图形的真实感取决于能否成功地模拟明暗效应。明暗模型用以计算可见表面应该显示地亮度和菜色。通常涉及一个明暗模型需要考虑的主要问题是照明特性、表面特性和观察角度。
照明特性 是指可见表面被照明的情况,主要有光源的数目和性质,环境光及阴影效应等。
表面特性 主要是指表面对入射光线的反射、折射或透明的不同情形,还有表面的纹理及颜色等。
观察角度 是指观察景物时观察者相对可见表面所在的位置。
不同明暗模型的区别主要在于模拟方法。
一般来说明暗模型可以分解为三个部分:漫射照明、具体光源的照射及透射效应。具体光源照射产生的效果又分为漫反射和镜面反射两部分。
漫反射及具体光源的照明
- 环境光:物体表面多次反射而产生的均匀的照明光线。环境光线的存在使物体得到漫射照明。
漫射照明的亮度:
- I=IaKa,
I是可见表面的亮度,Ia是环境光线的总亮度,Ka是物体表面对环境光线的反射系数,在0~1之间。
- 具体光源在物体表面可以引起漫反射和镜面反射。
- 漫反射
粗糙的物体表面向各个方向等强度地反射光,这种等同地向各个方向散射的现象。观察者从不同角度观察看到这一点的亮度是相同的,即漫反射与观察者的位置无关。I=IaKa+Ip·Kd·L·N/(r+k)
Lambert 定律
当方向光照射到朗伯反射体上时,漫反射光的光强与入射光的方向和入射点表面法向夹角的余弦成正比
- Id=Ip·Kd·cosθ
Id 是漫反射引起的可见表面上一点(点光源)的亮度,lp是点光源发出的入射光线引起的亮度。
Kd(0<k <1)漫反射系数。
θ 是可见表面法向量N(顶点法向量)和点光源方向L(由顶点指向光源)的夹角,称为入射角(0≤ θ ≤90°)。θ=0,说明光线垂直于物体表面,漫反射光强最大;θ=90°,光线与物体表面平行,物体接收不到任何光线。
为简化余弦计算,假定N和L都是单位向量,则cosθ=L·N,有Id=Ip·Kd·L·N。
若将环境光线和漫反射效果结合起来,则计算亮度的公式应为:
- I=IaKa+Ip·Kd·L·N
通常认为具体光源对可见表面产生的照明作用随光源与表面之间距离的增加而下降。设R是光线从光源发出到达表面再反射到视点的距离,则应有
- I=IaKa+Ip·Kd·L·N/R2
然而上式对于平行投影(R=∞)、透视投影效果不好,用r+k代替 R2,获得更逼真的效果:
- I=IaKa+Ip·Kd·L·N/(r+k)【8-6】
r是光源到表面的距离,k是根据经验选取的一个常数。
上文参考:https://blog.csdn.net/sezane/article/details/81051670
镜面反射与Phong模型
镜面反射是指来自具体光源的光线到达可见表面上某一点后,主要沿着和入射角相等的反射角所决定的方向传播,从而使得观察者从不同角度观察时,这一点呈现的亮度并不相同。在任何有光泽的表面上都可以观察到镜面反射的效果。只有当观察者相对表面观察方向与反射光线的方向之间的夹角α=0时,才能看到镜面反射引起的反射光线。对于不是非常理想的光泽表面&#x