计算机图形学复习与考试指导
110
第五章 光学模型及其算法实现
一、复习要求
1.简单光反射模型
2.增量式光反射模型
3.局部光反射模型
4.光源模型
5.简单光透射模型
6.光线跟踪显示技术
二、内容提要
1.简单光反射模型
(1)基本光学原理
① 照度定律
普通物理学中的照度定律(Lambert余弦定律):
I=KI cosθ, [0,
fL
2
式中,反射常数K与物体表面性质有关,也描述物体的颜色。
f
注意:按一般规定,入射光L是从表面上一点指向光源的矢量。
② 材质分配
事实上,一个物体的颜色就是它所反射出的光的颜色,取决于光源的颜色和该物体对光
的反射性。例如,将一个阳光下的红球放到只有黄灯照明的室内,它就变成黑的了,因为那
里没有任何红色光可被反射,而所有黄色光都被吸收了。
在使用光照时,原有的“绘图颜色”概念已不能适用,而采用“材质”一词。
定义:材质(material)被定义为一个物体对环境光、漫反射光、镜面反射光的反射性。它
4U电脑书库() maito:wdg98@
第五章 光学模型及其算法实现
111
们分别以一个对应的RGB值表示,称为材质的Ambient, Diffu, Specular分量(即光学定
律中的反射系数K
ads
, K, K)。
材质还可以包括另一种辐射性,用于描述自身发光的物体,例如汽车尾灯或夜光表。通
常,灯具的表面也被看成是一个自发光体。
③ 折射和透射
Snell正弦定律(或称折射定律)属于几何光学原理,用于确定两个物体间的入射角与
折射角的关系:
sin
12
sin
21
式中,表示在物体1表面处的入射角,而表示在物体2内部的折射角;和分
1212
别是这两个物体的折射率。
如图5-1所示,除了从同侧光源射过来的反射光外,观察者还将会看到从另一侧光源穿
过物体后射出的透射光:
图5-1 光的折射和透射
(2) 简单光反射模型(Phong模型)的导出
4U电脑书库() maito:wdg98@
计算机图形学复习与考试指导
112
图5-2 光的反射
简单光反射模型只模拟物体表面对光的反射作用,并不考虑物体表面的透射和散射作
用。在简单光反射模型中一个点光源照射到物体表面一点,再反射出来的光,可分为三部分:
环境光(泛光)、漫反射光镜面反射光。
在Phong模型中,物体表面的光照效果是环境反射光、光源的漫反射光和镜面反射光的
合成效果。
· 环境反射光(Ambient Light):从背景物体散射出来的光。可用下式计算:
I=KI
1aa
其中K为环境光系数
a
· 光源的漫反射光(Diffu Light):从一个粗糙的、无光泽的表面反射出,它与入射角有关
(即符合Lamber定律)
I=KIcosθ
2dL
其中K为粗糙度
d
· 镜面反射光(Specular Reflection):从一个光滑的、明亮的表面反射出(或称单反射光):
I=KIcos
3sL
n
α
其中,K为单向反射率;n控制反射光束的锥度,其值越大,光束越窄,表示该表面越
s
明亮(如磨光金属面 大理石)(较小可表示苹果、木质等)
当α= 0(即视线位于反射方向上)时,将呈现一个高光点(hotspot)(如白光下的铜球上
的亮白点)
根据Phong模型的定义,在多边形所有的点处按下式计算光强: I=I+I+I = KI +
123aa
KIcosθ+ Kcosα
dLs
n
注意:在具体计算中,反射系数K、K和K也可按RGB分解成三个分量:(K, K, K)、
dsadrdgdb
(K, K, K)和(K, K, K),各分量范围均为0.0 ~ 1.0。
srsgsbaragab
2.增量式光反射模型
(1) 双线性光强插值法(Gourand Shading)
在图像空间中,Gouraud光照模型(双线性光强插值法)计算各像素的光强如下:
(1) 只在多边形的顶点处,按下式计算光强:
I = KI + KIcosθ(只考虑环境光和
aadL
漫反射光)
而顶点的法矢等于各邻面法矢的平均值:
1
n
NN
Ai
n
i1
(2) 对于多边形边上和内部的各点(像素),
用顶点明暗度的线性插值计算出:
5-3 图 求法矢的平均值
4U电脑书库() maito:wdg98@
第五章 光学模型及其算法实现
113
令 I = , I =
ABAD
IIII
BAAD
yyyy
BADA
故 I = I + I•y, I = I + I•y
SAABTAAD
对于多边形内部的各点(像素),用两边端点光强
的线性插值法计算出:
令 I =
ST
II
TS
xx
TS
故 I = I + I•x
PSST
图5-4 双线性亮度插值法
另一种计算多边形边上和内部的各点光强的改进方法是增量法,它利用扫描线的相关性
来简化计算如下:
对于边上的点: I
S, y+1S, yAB
= I + I,
I = I + I
T, y+1T, yAD
对于内部的点: I
x+1, Px, PST
= I + I,
Gouraud算法优缺点:算法简单,计算量小。但不能再现高光。适用粗糙表面
(2) 双线性法向插值法(Phong Shading)
在图像空间中,Phong光照模型(双线性法向插值法)计算各像素的度如下:
1
n
顶点的法矢等于各邻面法矢的平均值,即
N
i
n
i1
对于多边形上和内部的各点(像素),用顶点法矢的线性插值。计算公式如下:
令 N = =
ST
NNNN
ABDA
, N
yyyy
ABAD
故 N = N + N, N = N + N
S, y+1S, yST, y+1T, yT
令 N =
P
NN
TS
xx
TS
图5-5 双线性法矢插值法
故 N = N + N
x+1, Px, PP
注意:这里,法矢Np就是实际曲面上该点
的切平面法矢的近似值
Phong算法优缺点:真实感强,但计算量较大,适用光滑表面
目前大多数渲染软件采用Gouraud和Phong光照模型作为Quick(快速)和Full(完全)
4U电脑书库() maito:wdg98@
计算机图形学复习与考试指导
114
Rendering,能满足一般真实感显示要求。
Gouraud和Phong光照模型两者比较如下:
Gouraud Shading Phong Shading
双线性光强插值法 双线性法向插值法
适用于镜面反射光(特别是有高光的金属表面) 适用于漫反射光(粗糙表面)
马赫带效应较轻 马赫带效应较重
高光域准确 生成多面体真实感图象效果差
速度较快(算法简单、计算量小) 速度较慢(计算量较大)
然而,这类简单光照模型共同存在下列的问题:
由于光强函数的一阶导数不连续,线性插值法均有马赫带效应(光照效果在数值上不连
续)。
透明效果需要另作处理才行,而且不能产生阴影。
注:实用Phong光照模型的计算公式要考虑随距离的线性或平方反比衰减
(3) 加速算法
在简单的光线跟踪算法中,每条射线都要和所有物体求交,然后再对所得的全部交点进
行排序,才能确定可见点。因此对于每条射线,计算复杂度都是O(n)以上。当物体个数较
少时,计算量还可以接受。但是当环境较复杂,物体个数较多时(例如成干个原子组成的分
子模型或成万个多边形构成的建筑物模型),简单的光线跟踪算法的处理速度就无法接受了。
然而,对于每—条射线,它实际上只与少数几个物体有交,与绝大多数物体根本不相交。也
就是说,对于复杂环境,大多数求交计算都是无效运算。我们可以通过一些途经来减少这种
无效运算。这就是加速算法所要考虑的主要问题。一般说来,加速算法是通过预先把物体按
空间位置适当地组织起来,以便在绘制时缩小搜索范围,减少排序时间来提高效率的。常用
的组织方法有包围体树、自适应八叉树和三维立方体阵列。
3.局部光反射模型
局部光反射是由光源直接照射到射入点,经漫反射和镜面反射到视点而形成。
4.光源模型
在计算机图形学中,光源模型的三个基本因素是几何形状、光强分布和光谱分布。
4U电脑书库() maito:wdg98@
第五章 光学模型及其算法实现
115
有向光源(directed lights):方向保持不变,即为平行光(发射出半圆柱面光);
光源强度不作衰减。如太阳光、远光源。
点光源(point lights):方向是从光源位置到面片中心,发射出圆球面光;光强分布
是各向同性的,要考虑随距离的线性或平方反比衰减(falloff);可以产生阴影。
聚光灯(spotlights):发射出圆锥形光束;要考虑随距离的线性或平方反比衰减;可
以产生软阴影区域。
从几何形状上讲,一般电灯(钨丝白炽灯)理想化成点光源,而且光强分布是各向同性
的;一般日光灯(长管灯)可理想化成线光源;经过特殊设计的吸顶灯可理想化成面光源。
5.简单光透射模型
(1) 透明效果的模拟方法
① 透射计算公式
最简单的透明算法不考虑折射的影响,即假定光线穿过透明体表面时不改变方向,,此
时则有:(如图12.11C所示)
I = (1 - K)I + KI, 其中K [0, 1]
TRTreflectTtransmitT
K称为物体的透明度(Transparency),可取值范围从0(不透明)至1.0(全透明)。光线照
T
射到透明体表面的两个交点A和B处的光强分别是反射光强I和透射光强I。
reflecttransmit
图5-6 光的透射
显然,在全透明场合下(即K = 1),只有光的透射效果:
T
I = KI
TRTtransmit
这也称为规则透射。
注意:1. 在颜色四元组RGBA中,ALPHA = 1 - K,称作不透明度。
T
2. 对不透明物体,将会在地面上投射出阴影(Shadow)。
4U电脑书库() maito:wdg98@
计算机图形学复习与考试指导
116
② 漫透射、理想透明和半透明
一个点光源照射在透明体表面上,将可能产生如下三种光透射作用:
对于表面粗糙的透明物体上,将形成漫透射。透射出来的光将朝着各方向均匀地散
射,此时透射光强I与入射光强I及入射角的余弦cos成正比,即:
tL
I = KIcos
ttL
式中,K称为透射系数,可取0 ~ 1.0。
t
进入理想的透明物体的透射光只沿折射方向传播,而在其他方向都看不见透射光。
进入一般较透明(或半透明)物体的透射光也往其他方向传播一部分透射光,并且
某方向透射光的强度随着偏离透射方向(即下述角的增大)而明显地衰减。
I = KIcos
ttL
n
t
式中,I是光源的强度或入射光强;K称为透射系数,可取0 ~ 1.0。幂值用于控制
Ltt
n
透射光束的锥度,其范围1 ~ 2000;其值越大,光束越窄。为视线V与透射方向T之间的
夹角。
(2) Wittded光透射模型
Whitted光透射模型是1980年Whitted提出的,并运用在光线跟踪算法的实现中。它考
虑了环境光、漫反射光和镜面反射光(即Phong模型)以及从环境反射或透视到视线的光。
具体计算如下:
I= KI + + KI+ KI
p aass tt
I(KcosKcos)
i
Lids
ns
LiiLii
= I•K + K + K + KI+ KI
aadsss tt
I(L•N)I(R•V)
ii
ns
式中,第一部分包含了Phong模型中的所有参数;第二部分模拟了场景光投射在光滑
表面上产生的理想镜面反射作用(即 = 0),K为镜面反射率;第三部分模拟了场景光通过
s
透明体表面产生的规则透射作用(即不考虑折射时的全透明),K为透射系数。I和I分别
tst
表示场景中其他物体反射和透射过来的光在该物体表面上的镜面映像和透射映像,如图所
示。
图5-7 透明体表面上的镜面映像和透射映像
4U电脑书库() maito:wdg98@
第五章 光学模型及其算法实现
117
(3) Hall光透射模型
Hall整体光照模型要比Whitted模型更为完善,还考虑沿着反射方向和折射(透射)方
向的散射现象,以模拟“透射高光”。
在Hall整体光照模型中,假定光源和视点都在无穷远处,使光线和视线方向简化为常
向量。计算公式如下:
I= I
p
局部 全局
+ I
(1) II +
局部
= K
aa
I(KcosKcosKcos)
i
Lidst
nsnt
= I•K + K+ K+ K
aadst
I(L•N)I(R•V)I(T•V)
iii
LiLiLi
nsnt
即包括环境光、漫反射光、镜面反射光和透射光。
(2) II+ KI
全局
= K
RR TT
即由其他物体反射或透射在透明体表面上产生的沿着视线方向的光。
6.光线跟踪显示技术
(1) 基本光线跟踪算法
Ray-Tracing算法的基本思想如下:
在物体空间中,假定视点取在Z轴上,XOY平面取作为投影屏幕(其与显示器屏幕的像
素布局一一对应),通过跟踪多个光源对各像素的贡献而计算出它们的色彩明暗度。
在光线遇到某一物体(不是背景)时,应继续跟踪光线,而不管光线的强度或深度如何。
图5-8 光线跟踪法
光线跟踪算法包括下列的三个步骤:
4U电脑书库() maito:wdg98@
计算机图形学复习与考试指导
118
步骤一、 从视点穿过某像素P发出一条射线R,它逆着光线方向跟踪所有光源在这个
可见点(即离视点最近的交点)上产生的色彩明暗度:
I = I + I
A
局部全局
其中I和I的具体计算按步骤二。
局部全局
步骤二、 首先计算出可见点处的曲面法矢(并存储它,以供备用),然后查找表面数据
表(其含有表面的颜色属性、粗糙度、反射率、透明度等)进行计算:(Hall整体光照模型)
(1) I= KI + I(Kcos + Kcos + Kcos)
局部
aaLdst
nn
st
即包括环境光、漫反射光、镜面反射光和透射光。
(2) I= KI+ KI
全局
RR TT
即由其他物体反射或折射到视线的反射或透视方向的光。
步骤三、判断可见点是否处在阴影(shadow)中:从该点向光源引射线。若射线与某个不
透明的物体相交,则该点在阴影中(此时只取环境光),而返回到步骤一。
光线跟踪法的特点:
a. 同时处理消隐和渲染,并有透明效果和阴影生成。
b. Ray-Tracing本质上是一种递归算法(层次等于物体个数),效率极高
算法加速方法:
事实上每条射线只与少数几个物体相交。若预先将物体按空间位置适当地组织起来(如
采用包围体),则可缩小搜索范围,避免不必要的求交运算。树:仅当射线与根结点有交时,
才进行它与子结点求交
优缺点:光线跟踪法是目前最常用的高级渲染技术之一,但没有考虑物体表面之间的
漫反射(如辐射度计算方法)。
在光线跟踪算法中,跟踪光线的终止条件有以下四个:
1) 被跟踪的光线与光源相交;
2) 被跟踪的光线遇到背景;
3) 被跟踪的光线对某交点处的光强贡献趋于零;
4) 光线跟踪的深度已经很深了。
(2) 光线与物体求交
①与坐标系平面求交
光线与坐标系平面的交点可以由下面
向量方程求出:+t=x+y
sdIJ
ii
由于s=xI+yJ+zK,d=xI+yJ+zK,可推出:
sssddd
xtxx
sdi
ytyy
sdi
ztz0
ds
下面两种情况,光线与平面不相交:
z=0时,光线平行于xy平面
d
4U电脑书库() maito:wdg98@
第五章 光学模型及其算法实现
z=0时,光线起始点在xy平面上
s
z≠0,且z≠0时
ds
119
t
如果t>0,光线与平面相交
如果t<0,光线的反向延长线与平面相交
z
s
z
d
②与任意平面求交
右图中,n=xI+yJ+zK,为给定平面的法线向
nnn
量,P(x,y,z)为平面上一点,则平面向量方程为:
0000
x(x-x)+y(y-y)+z(z-z)=0
n0n0n0
令(t)=+t与该平面相交,又
rsd
s=xI+yJ+zK,d=xI+yJ+zK,则
sssddd
x(x+tx-x)+y(y+ty -y)+z(z+tz -z)=0
nsd0nsd0nsd0
可推出下式:
t
x(xx)y(yy)z(zz)
ns0ns0ns0
xxyyzz
ndndnd
另,则
p(xx)I(yy)J(zz)K
s0s0s0
t
np
nd
当=0时,光线平行于该平面,即不相交。
nd
如果t=0,光线起始点在平面上
如果t>0,光线与平面相交
如果t<0,光线的反向延长线与平面相交
③与球面求交
右图为一半径为R,中心点为(x,y,z) 的球
ccc
体,(x,y,z)是球面上的任意一点。
设向量c=xI+yJ+zK,p=xI+yJ+zK
ccc
则球体的向量方程为:
|p-c|=R
令(t)=+t与该平面相交
rsd
,则
|-c|=R
sd
+t
22
展开得:
|d|t+2|s-c||d|t+|s-c|=R
2222
4U电脑书库() maito:wdg98@
计算机图形学复习与考试指导
120
令A=|d|,B=|s-c||d|,C=|s-c|-R,则
222
At+2Bt+C=0
2
BBAC
2
t
A
0不相交
B2AC0光线(或负的延长线)与球体相切
0两个(可能的)交点
(3) 光线跟踪中的简单阴影
定义5-1:阴影(shadow)是指景物中那些没有被光源直接照射到的暗区。
图5-10 阴影生成
阴影生成从原理上来说非常简单:只有那些从视点可见的、而从光源不可见的面(多边
形)才会落在阴影内。换句话说,若将视点放在光源处,那末它看不到所该光源产生的阴影。
因此,阴影生成的一般性算法如下:
步骤一、将光源位置作为视点,利用消隐算法求出它的不可见面(包括背面和被其他面
遮挡的面)和可见面。这样,将所有面分为两大类。
步骤二、在实际的视点处,对上述面进行消隐,并选用一种光照模型双重可见面的明暗
度,而对上述不可见面的可见部分采用环境光,形成阴影。
步骤三、将不可见面的可见部分投射到地面上,即表示影
子(shadow)。
注意:仅当存在某一投影面(如地面、墙面)时,
物体才有可能在该平面上投射出其影子。
定义5-2:阴影可分为全阴影(whole-shadow)和半阴影
4U电脑书库() maito:wdg98@
图5-11 半阴影区
第五章 光学模型及其算法实现
121
(half-shadow)两种。全阴影就是物体表面上那些没有被所有光源直接照射的部分,而半阴影
是指物体表面上那些只被一部分光源直接照射的部分。
定义5-3:全阴影加上在它周围的半阴影而组成一个软阴影(soft-shadow)区域,使影子
边缘有较缓慢的过渡。
显然,单个点光源只能形成全阴影,而半阴影则是由多个点光源或线光源、面光源产生
的,如图5-11所示。由于半阴影的计算量较大,许多场合下(除聚光灯外)我们只考虑由
点光源产生的全阴影。
因为光源在物体表面上产生的阴影区域均为它们的不可见面。若取光源作为视点,那么任何
隐藏面消除算法都能用于阴影计算。在实际应用中,还需根据阴影计算的特点考虑如何减少
其时间和空间耗费。
三、例题分析
例1.设n=I+J+2K为通过点P=(1,1,0)的平面的法线矢量。试判断s=-2I+J+2K,d=I-K的光
0
线是否与平面相交。
解答:因为
n•d11102(1)10
故而可以引入:
p(xx)I(yy)J(zz)K
0s0s0s
[1(2)]I(11)J(02)K
3I2K
t1
n•p13102(2)
>0,光线与平面相交
n•d1
所以交点是(x+x,y+y,z+z)=(-1,1,1)
sdsdsd
四、习 题
1.写出简单光反射模型近似公式,并说明其适用范围及能产生的光照效果。
2.写出线光源的光强公式及其积分算法。
3.试描述Witted光透射反射模型和Hall光透射模型。
4.简单叙述光线跟踪算法。
5.试描述光线与几种常见物体面的求交算法。
五、解题指导与习题解答
1.答案:简单光反射模型只模拟物体表面对光的反射作用,并不考虑物体表面的透射和散
射作用。在简单光反射模型中一个点光源照射到物体表面一点,再反射出来的光,可分为三
4U电脑书库() maito:wdg98@
计算机图形学复习与考试指导
122
部分:环境光(泛光)、漫反射光镜面反射光。
根据Phong模型的定义,在多边形所有的点处按下式计算光强: I=I+I+I = KI +
123aa
KIcosθ+ Kcosα
dLs
n
在Phong模型中,物体表面的光照效果是环境反射光、光源的漫反射光和镜面反射光的
合成效果。
2.答案:线光源的光强公式如下:
其中 表示漫反射系数, 表示漫反射率, 是来自光源的光亮度, 是 朝
辐射方向的投影角。 是被照射表面的法向, 是单位光线向量。
在一般情况下,上述公式只能用数值算法做近似的计算。其实质是用多个点光源来近似
线光源。
3.答案:Whitted光照模型是一种全局光照模型,它模拟了由环境引起的镜面反射分量和
规则透射分量。在这个模型中,假定被照明物体的表面非常光滑,从而可以用理想镜面反射
分布函数来模拟镜面反射;同样,对于透射也采用理想的情况。它可以用如下公式描述:
其中 是局部光照模型计算的反射光亮度, 表示镜面反射分量,
表示透射分量。 表示衰减系数, 表示镜面反射系数,
表示镜面反射率, 是环境的光亮度, 环境的透射光亮度, 表示光线向量的规则
透射向量。
Hall模型对Whitted模型进行了改进,它的特点是:
1)引入光源引起的规则透射分量,用以模拟“透射高光”。
2)显式表示表面光谱漫反射率、光谱镜面反射率和光谱规则透射率,且用菲涅耳反射
函数和折射函数分别表示镜面反射率和透射率。
3)用反映材料滤光特性的函数表示传输过程中的衰减因子。
以上特点使Hall模型成为整体光谱光照模型,并能表现更精致的照明效果。
4.答案:在物体空间中,假定视点取在Z轴上,XOY平面取作为投影屏幕(其与显示器屏幕
的像素布局一一对应),通过跟踪多个光源对各像素的贡献而计算出它们的色彩明暗度。
光线跟踪算法包括下列的三个步骤:
步骤一、 从视点穿过某像素P发出一条射线R,它逆着光线方向跟踪所有光源在这个
可见点(即离视点最近的交点)上产生的色彩明暗度:
I = I + I
A
局部全局
其中I和I的具体计算按步骤二。
局部全局
步骤二、 首先计算出可见点处的曲面法矢(并存储它,以供备用),然后查找表面数据
表(其含有表面的颜色属性、粗糙度、反射率、透明度等)进行计算:(Hall整体光照模型)
(1) I= KI + I(Kcos + Kcos + Kcos)
局部
aaLdst
nn
st
即包括环境光、漫反射光、镜面反射光和透射光。
(2) I= KI+ KI
全局
RR TT
即由其他物体反射或折射到视线的反射或透视方向的光。
4U电脑书库() maito:wdg98@
第五章 光学模型及其算法实现
123
步骤三、判断可见点是否处在阴影(shadow)中:从该点向光源引射线。若射线与某个不
透明的物体相交,则该点在阴影中(此时只取环境光),而返回到步骤一。
5.答案: 见本章光线与物体求交部分详述。
4U电脑书库() maito:wdg98@
本文发布于:2023-05-22 20:33:25,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/168475880649420.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:第五章 光学模型及其算法实现资料.doc
本文 PDF 下载地址:第五章 光学模型及其算法实现资料.pdf
留言与评论(共有 0 条评论) |