目录:


在光的反射和折射现象中的能量分布:$I_{i}=I_{d}+I_{s}+I_{t}+I_{v}$
分别表示为: $I_{i}$ 入射光强,$I_{d}$ 漫反射光强,$I_{s}$ 镜面反射光强,$I_{t}$ 透射光强,$I_{v}$吸收光强

6-1-1-1.png

立体角:面元ds向点光源P所张的立体角为 $dw=\frac{dS}{r^2}$

点发光强度

  • 单位时间内通过面元$ds$的光能量为光通量 $dF$
  • 点发光强度为某个方向上单位立体角内的光通量 $I=\frac{dF}{dw}=\frac{dF}{dS}r^2$

Phong光照明模型

简单光照明模型模拟物体表面对光的反射作用

光源为点光源
反射作用分为

  • 镜面反射(Specular Reflection)
  • 漫反射(Diffuse Reflection)

物体间作用用环境光(Ambient Light)表示

理想漫发射

由Lambert余弦定律,漫反射光强为$I_{d}=I_{p}K_{d}cos\theta =I_{p}K_{d}(L,N)$

$K_{d}$是与物体有关的漫反射系数,$0<K_{d}<1$
漫发射系数$K_{d}$有三个分量$K_{dr}$,$K_{dg}$,$K_{db}$分别代表RGB三原色的漫反射系数,通过调整它们来设定物体的颜色

漫反射强度=材质的漫反射系数×光源强度×(法线方向向量·入射光方向向量)
例如:0.5(反射一半)×1(最强,白色)×cos0(入射光垂直于法线,夹角0)=0.5(半减,灰色)
“·”是点乘,也就是说最后两向量的点积表示的就是它们夹角的cos值

镜面反射光

对一般的光滑表面,反射光集中在一个范围内,且由反射定律决定的反射方向光强最大
镜面反射光强可表示为$I_{s}=I_{p}K_{s}cos\alpha=I_{p}K_{s}(R,V)^n$

$K_{s}$是与物体有关的镜面反射系数,$n$为反射指数,反映物体表面的光泽程度,数目越大物体表面越光滑
反射方向计算$R=2Ncos\theta-L=2N(N·L)-L$
镜面反射光将会在反射方向附近形成很亮的光斑,称为高光现象
镜面反射光产生的高光区域只反映光源的颜色
镜面反射系数是一个与物体的颜色无关的参数

镜面反射强度=材质镜面反射系数×光源强度×(法线方向向量·入射光与视点夹角一半的方向向量)^光泽度
例如:0.5(反射一半)×1(最强,白色)×cos0(视点位于反射光方向上,夹角0)^1(加权1)=0.5
(半减,灰色)
* ^光泽度”是“光泽度次方”,光泽度越大,高光的亮斑越小

环境光(环境反射)

环境光是一种经过多次反射平衡的光,它的强度是均匀的,并且分布是一样的,即: 环境光没有位置或方向上的特征,只有一个颜色亮度值,而且不会衰减,所以在所有方向和所有物体表面上投射的环境光的数量是恒定不变的。

环境光是光源间接对物体的影响
光在物体和环境之间多次反射,最终达到平衡
同一环境下的环境光光强分布均匀

环境反射强度=材质环境反射系数×环境光强度
例如:0.5(反射一半)×1(最强,白色)=0.5(半减,灰色)

Phong光照明模型

PHONG模型就是漫反射、镜面反射与环境反射的和,即:
像素颜色 = 环境反射色 + 漫反射色 + 镜面反射色

$I=I_{a}K_{a}+I_{p}K_{d}(L,N)+I_{p}K_{s}(R,V)^n$

对物体表面上的每个点P,均需计算光线的反射方向。
为了减少计算量,假设:

  • 光源在无穷远处,L为常向量
  • 视点在无穷远处,V为常向量
  • (H•N)近似(R•V),H为L与V的平分向量
  • $H=(L+V)/|L+V|$
  • 对所有的点总共只需计算一次H的值,节省了计算时间

Phong光照明模型是真实感图形学中提出的第一个有影响的光照明模型

Phong光照明模型的不足

  1. 显示出的物体象塑料,无质感变化
  2. 没有考虑物体间相互反射光
  3. 镜面反射颜色与材质无关
  4. 镜面反射大入射角失真现象

增量式光照明模型

多边形内部的象素颜色相同
不同法向的多边形邻接处有光强突变及马赫带效应
保证多边形之间的颜色光滑过渡-增量式光照明模型

在每个多边形顶点处计算光照明强度或参数,然后在各个多边形内部进行双线性插值,得到多边形光滑均匀颜色分布

两个主要算法

  • 双线性光强插值、Gouraud明暗处理
  • 双线性法向插值、Phong明暗处理

Gouraud双线性光强插值

Gouraud于1971年提出,又被称为Gouraud明暗处理
计算多边形各顶点的光强,再用双线性插值,求出多边形内部各点的光强

算法步骤的基本描述

  1. 计算多边形顶点的平均法向
  2. 用简单光照明模型计算顶点的平均光强
  3. 插值计算离散多边形边上的各点光强
  4. 插值计算多边形内域中各点的光强