光线照到物体表面发生三种情况:反射、投射、吸收转换为热能。只有反射光和投射光能够刺激眼睛产生颜色,因而物体表面的反射光和投射光决定了物体呈现的颜色。
一、光照明模型
目的:产生明暗过度自然的真实感图形。
概念:描述了物体表面的颜色与其空间位置、朝向、物理属性(反射率、折射率)及光源之间的关系。
二、发展历程
1.早期光照明模型基于经验,只能反映光源直接照射的情况。
2.比较精确的模型:通过模拟物体之间光的相互作用,可以得到令人满意的结果。
3.更精确的模型:模拟物体自身的光照相互作用、模拟光源至物体表面以及物体表面至视点之间光的传播。
三、真实感图形绘制的步骤:
1.用数学方法建立所需三维场景的几何描述。通常是由三维造型系统完成。场景的几何描述直接影响了图形的复杂性和图形绘制的计算开销。
2.将三维几何描述转换为二维透视图。通过对场景的透视变换来完成。
3.隐藏面消除,确定场景中的所有可见面,将视野之外或被其它物体遮挡的不可见面消去;(以上确定形状)
4.计算场景中可见面的颜色。
5.根据基于光学物理的光照明模型计算可见面投射到观察者眼中的光亮度大小和色彩组成,并将它转换成适合图形设备的颜色值,从而确定投影画面上每一像素的颜色,最终生成图形。(以上确定色彩)
三维形体->变换->明暗处理(光照)->光栅化->真实感图像 (3D流水线)
四、简单光照模型
I = Ie + Id + Is
=IaKa +Ip[Kd(L⋅N)+Ks(V⋅R)n]
条件:1.仅考虑光源照射在物体表面产生的反射光。
2.通常假定物体表面是光滑的且由理想材料构成。
3.忽略光源的颜色和几何形状(点光源白光照明)
效果:可以模拟出不透明物体表面的明暗过度,具有一定的真实感。但真实感较差,阴影区域边界尖锐。
在简单光照明模型中:反射被分为理想漫反射和镜面反射。
在简单光投射模型中:透射光分为理想漫透射光和规则透射光。
光源发出的光为直接光,物体对直接光的反射或折射称为直接反射和直接折射,相对的,把物体表面间对光的反射和折射称为间接光,间接反射,间接折射。
基本概念:
环境光:光线在场景中经过复杂传播之后,形成的弥漫于整个空间的光线。
Ie =KaIa , (Ambient Light)
Ie为物体表面所呈现的亮度;Ia为环境光亮度 Ka为物体表面的环境光反射系数
漫反射:粗糙、无光泽物体表面对光的反射。
点光源:向周围所有方向上辐射等强度的光。
Id =IpKdcosθ θ∈[0,π/2] (Diffuse Reflection)
Ip点光源的亮度;Kd物体表面漫反射系数; θ入射角
衰减函数为 f(d) = min(1/(c0 + c1d+c2d²),1 )
带入光照明方程得
I=IaKa +f(d)Ip[Kd(L⋅N)+Ks(V⋅R)n]
深度暗示技术(Depth Cueing)模拟光在这段传播过程中的衰减。
S0 = Sb + (Z0 - Zb)/(Zf-Zb)*(Sf - Sb);
(1)选择合适的颜色
(2)为颜色模型的三个分量分别建立光照明模型。
Iλ =IaλKaλ + f(d)Ipλ[Kdλ(L⋅N)+Ksλ(V⋅R)n]
λ = R,G,B的波长
七、采用多个光源
Iλ =IaλKaλ +∑f(d)I [K (L⋅N)+K (V⋅R)n]
1.均匀着色(flat shading 或constant shading)
仅用一种颜色绘制整个多边形。
适用场景 光源在无穷远,视点在无穷远,多边形是物体的精确表示。
2.光滑着色(smooth shading)
主要采用插值着色方法
(1)Gouraud着色方法 颜色插值着色方法,通过对多边形顶点颜色进行线性插值来获得其内部各点的颜色。
步骤:
1.计算多边形的单位法矢量。
2.计算多边形顶点的单位法矢量。
3.利用光照明模型计算顶点的颜色
4.在扫描线消隐算法中,对多边形顶点颜色进行双线性插值,获得多边形内部各点的颜色。
缺点:不能正确模拟高光。
(2)Phong着色方法 对多边形顶点的法矢量进行插值,又称法向插值着色法。
步骤:
1.计算多边形的单位法矢量
2. 计算多边形顶点的单位法矢量
3.在扫描线消隐算法中,对多边形的法矢量进行双线性插值,计算出多边形内部各点的法矢量
4.利用光照明模型计算P点的颜色。
缺点: 由于多边形每一点都需要计算一次光照明模型,因而计算量远大于Gouraud着色方法。
九、插值着色方法的问题:
1.不光滑的物体轮廓
2.透视变形 由于是透视变换之后进行的插值计算,没有考虑到深度
3.方向依赖性 图形旋转会造成计算颜色的点发生变化
4.公共顶点处颜色不连续。一个图形的边在另一个图形的顶点处
5.顶点法向不具有代表性。顶点法向是由相邻多边形法向的平均值来算的。