第五章光学模型及其算法实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章光学模型及其算法实现

一、复习要求

1.简单光反射模型

2.增量式光反射模型

3.局部光反射模型

4.光源模型

5.简单光透射模型

6.光线跟踪显示技术

二、内容提要

1.简单光反射模型

(1)基本光学原理

①照度定律

普通物理学中的照度定律(Lambert余弦定律):

π

I=K f I L cosθ, θ∈ [0,

2

式中,反射常数K f与物体表面性质有关,也描述物体的颜色。

注意:按一般规定,入射光L是从表面上一点指向光源的矢量。

②材质分配

事实上,一个物体的颜色就是它所反射出的光的颜色,取决于光源的颜色和该物体对光的反射性。例如,将一个阳光下的红球放到只有黄灯照明的室内,它就变成黑的了,因为那里没有任何红色光可被反射,而所有黄色光都被吸收了。

在使用光照时,原有的“绘图颜色”概念已不能适用,而采用“材质”一词。

定义:材质(material)被定义为一个物体对环境光、漫反射光、镜面反射光的反射性。它们分别以一个对应的RGB值表示,称为材质的Ambient,Diffuse,Specular分量(即光学定律中的反射系数K a, K d, K s)。

材质还可以包括另一种辐射性,用于描述自身发光的物体,例如汽车尾灯或夜光表。通

111 / 13

常,灯具的表面也被看成是一个自发光体。

③ 折射和透射

Snell 正弦定律(或称折射定律)属于几何光学原理,用于确定两个物体间的入射角与折射角的关系:

1

2

21ηηθθ=sin sin

式中,θ1表示在物体1

表面处的入射角,而θ2表示在物体2内部的折射角;η1和η2分别是这两个物体的折射率。

如图5-1所示,除了从同侧光源射过来的反射光外,观察者还将会看到从另一侧光源穿过物体后射出的透射光:

图5-1 光的折射和透射

(2)简单光反射模型(Phong 模型)的导出

图5-2 光的反射

简单光反射模型只模拟物体表面对光的反射作用,并不考虑物体表面的透射和散射作用。在简单光反射模型中一个点光源照射到物体表面一点,再反射出来的光,可分为三部分:环境光(泛光)、漫反射光镜面反射光。

在Phong 模型中,物体表面的光照效果是环境反射光、光源的漫反射光和镜面反射光的

合成效果。

· 环境反射光(Ambient Light):从背景物体散射出来的光。可用下式计算:

I 1=K a I a

其中K a 为环境光系数 ·光源的漫反射光(Diffuse Light):从一个粗糙的、无光泽的表面反射出,它与入射角有关(即符合Lamber 定律)

I 2=K d I L cos θ

其中K d 为粗糙度

·镜面反射光(Specular Reflection):从一个光滑的、明亮的表面反射出(或称单反射光): I 3=K s I L cos n α

其中,K s 为单向反射率;n 控制反射光束的锥度,其值越大,光束越窄,表示该表面越明亮(如磨光金属面大理石)(较小可表示苹果、木质等)

当α=0(即视线位于反射方向上)时,将呈现一个高光点(hotspot)(如白光下的铜球上的亮白点)

根据Phong 模型的定义,在多边形所有的点处按下式计算光强: I=I 1+I 2+I 3=K a I a +K d I L cos θ+K s cos n α

注意:在具体计算中,反射系数K d 、K s 和K a 也可按RGB 分解成三个分量:(K dr ,K dg ,K db )、(K sr , K sg , K sb )和(K ar , K ag , K ab ),各分量范围均为0.0~1.0。

2.增量式光反射模型

(1)双线性光强插值法(Gourand Shading)

在图像空间中,Gouraud 光照模型(双线性光强插值法)计算各像素的光强如下: (1) 只在多边形的顶点处,按下式计算光强:

I=K a I a +K d I L cos θ(只考虑环境光和漫反射光)

而顶点的法矢等于各邻面法矢的平均值:

∑==n 1

i i A N n 1N ρρ

(2) 对于多边形边上和内部的各点(像素),用顶点明暗度的线性插值计算出:

图5-3 求法矢的平均值

113 / 13

令 ∆I AB =

A B A B y y I I --,∆I AD = A

D A

D y y I I --

故I S = I A + ∆I AB •∆y ,I T = I A + ∆I AD •∆y

对于多边形内部的各点(像素),用两边端点光强的线性插值法计算出: 令∆I ST =

S

T S

T x x I I --

故 I P = I S + ∆I ST •∆x

另一种计算多边形边上和内部的各点光强的改进方法是增量法,它利用扫描线的相关性来简化计算如下:

对于边上的点: I S, y+1 = I S, y + ∆I AB ,

I T, y+1 = I T, y + ∆I AD

对于内部的点: I x+1, P = I x, P + ∆I ST ,

Gouraud 算法优缺点:算法简单,计算量小。但不能再现高光。适用粗糙表面

(2)双线性法向插值法(Phong Shading)

在图像空间中,Phong 光照模型(双线性法向插值法)计算各像素的度如下:

顶点的法矢等于各邻面法矢的平均值,即∑=n 1

i i N n 1ρ

对于多边形上和内部的各点(像素),用顶点法矢的线性插值。计算公式如下: 令∆N S = B A B A y y N N --, ∆N T = D

A D

A y y N N --

故 N S, y+1 = N S, y + ∆N S , N T, y+1 = N T, y + ∆N T 令

∆N P =

S

T S

T x x N N --

故∆N x+1, P =∆N x, P + ∆N P

注意:这里,法矢Np 就是实际曲面上该点的切平面法矢的近似值

Phong 算法优缺点:真实感强,但计算量较大,适用光滑表面

目前大多数渲染软件采用Gouraud 和Phong 光照模型作为Quick(快速)和Full(完全) Rendering ,能满足一般真实感显示要求。 Gouraud 和Phong 光照模型两者比较如下:

GouraudShading Phong Shading

双线性光强插值法 双线性法向插值法 适用于漫反射光(粗糙表面) 适用于镜面反射光(特别是有高光的金属表面) 马赫带效应较重 马赫带效应较轻

图5-4 双线性亮度插值法

图5-5 双线性法矢插值法

相关文档
最新文档