第十一章 真实感图形技术
1,简单光照明模型
2,多边形绘制方法
3,透明
4,整体观照明模型
5,光线跟踪算法
第十章 真实感图形绘制
光照模型 (Illumination Model):计算某
一点的光强度的模型
11.1 真实感图形的 特点
? 能反映物体表面颜色和亮度的细微变化
? 能表现物体表面的质感
? 能通过光照下的物体阴影,极大地改善场景的
深度感和层次感,充分体现物体间的相互遮挡
关系
? 能模拟透明物体的透明效果和镜面物体的镜面
效果
影响观察者看到的表面颜色的因素
① 物体的几何形状
②光源 位置、距离、颜色、数量、强度、种类
③环境 遮挡关系、光的反射与折射, 阴影
④视点位置
⑤物性 材料、颜色、透明度 折射性
⑥表面光洁度
光源
① 几何性质
– 点光源
– 线光源
– 面光源
② 光谱组成
– 白色光等能量的各种波长可见光的组合
– 彩色光
– 单色光
11.2 真实感图形学早期发展
? 1967年,Wylie等人第一次在显示物体时
加进光照效果,认为光强与距离成反比。
? 1970年,Bouknight提出第一个光反射模
型,Lambert漫反射+环境光
? 1971年,Gouraud提出漫反射模型加插值
的思想
? 1975年,Phong提出图形学中第一个有影
响的光照明模型
相关物理知识
? 光的传播
– 反射定律:入射角等于反射角,而且反射光
线、入射光线与法向量在同一平面上
光源 法向量
入射光 反射光
视线
折射定律
– 折射定律:折射线在入射线与法线构成的平
面上,折射角与入射角满足
入射光
折射光
?
?
2
?
1
?
1
2
s in
s in
??
???
能量关系
– 在光的反射和折射现象中的能量分布:
– 下标为 i,d,s,t,v的能量项分别表示 为入射光强,
漫反射光强,镜面反射光强,透射光强,吸
收光强
– 能量是守恒的
i d s t vI I I I I? ? ? ?
11.3 简单光照明模型
模拟物体表面的光照明物理现象的数学
模型-光照明模型
简单光照明模型 亦称局部光照明模型,
其假定物体是不透明的,只考虑光源的
直接照射,而将光在物体之间的传播效
果笼统地模拟为环境光。
可以处理物体之间光照的相互作用的模
型称为整体光照明模型
简单光照明模型
光照射到物体表面,主要发生:
反射
透射(对透明物体)
部分被吸收成热能
反射光,透射光决定了物体所呈现的颜

简单光照明模型 -环境光
假定物体是不透明的(即无透射光)
? 环境光,在空间中近似均匀分布,即在任何位置、
任何方向上强度一样,记为 Ia
? 环境光反射系数 Ka,在分布均匀的环境光照射
下,不同物体表面所呈现的亮度未必相同,因为它们
的环境光反射系数不同。
? 光照明方程(仅含环境光),Ie = KaIa
Ie为物体表面所呈现的亮度。
简单光照明模型 - 环境光例子
? 具有不同环境光反射系数的两个球
0.1?aI
4.0?aK 8.0?
aK
简单光照明模型 -环境光
? 缺点:虽然不同的物体具有不同的亮度,
但是同一物体的表面的亮度是一个恒定
的值,没有明暗的自然过度。
简单光照明模型
? 考虑引入点光源。
? 点光源:几何形状为一个点,位于空间中的某
个位置,向周围所有的方向上辐射等强度的光。
记其亮度为 Ip
? 点光源的照射,在物体的不同部分其亮度也不
同,亮度的大小依赖于物体的朝向及它与点光源之间
的距离,
简单光照明模型,-漫反射 角度
余弦的推导
? 漫反射
– 粗糙、无光泽物体(如粉笔)表面对光的反射
– 光照明方程
? 漫反射的亮度
? 点光源的亮度
? 漫反射系数
? 入射角
漫反射光的强度
只与入射角有关
]2,0[c o s ??? ?? dpd KII
pI
dK
?
dI
简单光照明模型 -漫反射
? 将环境光与漫反射结合起来
一般取 Ia= (0.02~0.2)Id
? 例子
)( NLKIKIIII dpaade ?????
简单光照明模型 -漫反射
缺点:对于许多物体,使用上式计算其反
射光是可行的,但对于大多数的物体,
如擦亮的金属、光滑的塑料等是不适用
的,原因是这些物体还会产生镜面发射。
简单光照明模型 -镜面反射
? 镜面反射
– 光滑物体(如金属或塑料)表面对光的反射
? 高光
– 入射光在光滑物体表面形成的特别亮的区域
简单光照明模型 -镜面反射
? 理想镜面反射
? 观察者只能在反射方向上才能看到反射
光,偏离了该方向则看不到任何光。
简单光照明模型 -镜面反射
? 非理想镜面反射
? P为物体表面上一点,L为从 P指向光源的单位
矢量,N为单位法矢量,R为反射单位矢量,V
为从 P指向视点的单位矢量
光滑平面
I = Ip K scosna
镜面
简单光照明模型 -镜面反射
? 镜面反射
? Is为 镜面反射光强。 点光源的亮度
– Ks是与物体有关的镜面反射系数。 n为 镜面反射指数,n越
大,则 Is随 a的增大衰减的越快。
– n的取值与表面粗糙程度有关。
– n越大,表面越平滑(散射现象少,稍一偏离,明
暗亮度急剧下降)
– n越小,表面越毛糙(散射现象严重)
ansps KII c o s? nsps RVKII )( ??

pI
简单光照明模型 -镜面反射
– 反射方向计算
– L在 N上的投影矢量为 Ncosu,则 S+L= Ncosu
记矢量 S= Ncosu -L
则有 R= Ncosu +S
? ? LLNNLNR ????? 2c o s2 ?
N
R
L V
??
S S
简单光照明模型 -Phong光照明模型
? 简单光照明模型模拟物体表面对光的反
射作用,光源为点光源
? 反射作用分为
– 物体间作用用环境光 (Ambient Light)
– 漫反射 (Diffuse Reflection)
– 镜面反射 (Specular Reflection)
简单光照明模型 -Phong光照明模型
? Phong光照明模型的综合表述:由物体表
面上一点 P反射到视点的光强 I为环境光
的反射光强 Ie、理想漫反射光强 Id、和镜
面反射光 Is的总和。
])()([ nsdpaa
sde
RVKNLKIKI
IIII
?????
???
简单光照明模型 -Phong光照明模
型的实现
? 对物体表面上的每个点 P,均需计算光线
的反射方向。为了减少计算量,假设:
– 光源在无穷远处,L为常向量
– 视点在无穷远处,V为常向量
– ( H?N)近似( R?V),H为 L与 V的平分向量
N HL R
a
Vb
H----L和 V的角平分线
? 对所有的点总共
只需计算一次 H的
值,节省了计算
时间
简单光照明模型 -Phong光照明模型
? Phong模型几何
P
L N H
R
V
简单光照明模型 -光的衰减
? 光的衰减
两个阶段:
1)从光源到物体表面的过程中的衰减
2)从物体表面到人眼过程中的衰减
总的效果:物体表面的亮度降低
? 光照明方程
1)有效衰减函数的加入
2)深度暗示技术的加入
简单光照明模型 -光的衰减
? 光的衰减
– 光在光源到物体表面过程中的衰减
– 光强按 1/d2 进行衰减:
缺点:当 d很大时,变化很小;当 d很小时,变
化很大。
? 衰减函数
? 光照明方程
)1,1m i n ()( 2
210 dcdcc
df ???
])()([)( nsdpaa RVKNLKIdfKII ?????
简单光照明模型 -光的衰减
– 光在物体表面到人眼过程中的衰减
? 深度暗示( Depth Cueing)技术:最初用于线框
图形的显示,使距离远的点比近的点暗一些。经
过改进,这种技术同样适用于真实感图形显示。
? 设前参考面 Z=Zf,后参考面 Z=Zb;其比例因子
分别为 Sf和 Sb( Sf和 Sb e[0,1])。给定物体上一
点的深度值 Z0,该点对
应的比例因子 S0按如下
方式确定
前参考面
后参考面
简单光照明模型 -光的衰减
? 当 Z0 >Zf时,取 S0=Sf
? 当 Z0 <Zf时,取 S0 =Sb
? 当 Z0e [Zb,Zf]时,取
? 原亮度 I按比例 S0与融和亮度 Idc混合,目
的是获得最终用于显示的亮度 I’, Idc由
用户指定,
)( 00 b
bf
bf
b ZZZZ
SSSS ?
?
???
dcISISI )1( 00 ????
简单光照明模型 -光的衰减
? 特例:
? 取 Sf=1,Sb=0,Idc=0,则当物体位于参考面
之前时,S0= Sf= 1,I’ =I,即亮度没有
被衰减。当物体位于后参考面之后时,
S0 = Sb =0,I’ =Idc=0,即亮度衰减为 0。
而当 Z0e [Zb,Zf]时,I’ =S0I,亮度被部分
衰减。由此可以产生较好的效果。
dcISISI )1( 00 ????
简单光照明模型 -彩色场景的产生
? 产生彩色
– 选择合适的颜色模型 ----RGB模型
– 为颜色模型中的每一种基色建立光照明方程
?
?
?
?
?
?????
?????
?????
])()([)(
])()([)(
])()([)(
n
sBdBpBaBaBB
n
sGdGpGaGaGG
n
sRdRpRaRaRR
RVKNLKIdfKII
RVKNLKIdfKII
RVKNLKIdfKII
简单光照明模型 -彩色场景的产生
– 系数分解
? 上述各等式中,右端的矢量用来控制表面的基本
颜色,当选定了物体表面的颜色之后,它们就固
定不变了。用户通过调节 Ka,Kd,Ks来改变表
面的反射率。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
dB
dG
dR
a
aB
aG
aR
C
C
C
K
K
K
K
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
dB
dG
dR
d
dB
dG
dR
C
C
C
K
K
K
K
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
sB
sG
sR
s
sB
sG
sR
C
C
C
K
K
K
K
简单光照明模型 -彩色场景的产生
– 新的光照明方程
– 统一表示
?
?
?
?
?
?????
?????
?????
])()([)(
])()([)(
])()([)(
n
sBsdBdpBaBdBaB
n
sGsdGdpGaGdGaG
n
sRsdRdpRaRdRaR
RVCKNLCKIdfICKI
RVCKNLCKIdfICKI
RVCKNLCKIdfICKI
])()([)( nssddpada RVCKNLCKIdfICKI ????? ??????
BGR,,??
简单光照明模型 -多个光源
? 采用多个光源
– 采用 m个光源的光照明方程
?
?
???
??
m
i
n
issiddpi
ada
RVCKNLCKIdf
ICKI
i
1
])()([)( ???
???
简单光照明模型 -多个光源
– 例子:其中 a图:线框图 b图:环境光
c图:增加漫反射 d图:增加镜面反射
e图:增加光的衰减 f图:两个点光源
Phong光照明模型的 不足
? Phong光照明模型是真实感图形学中提出
的第一个有影响的光照明模型
? 经验模型,Phong模型存在不足:
– 显示出的物体象塑料,无质感变化
– 没有考虑物体间相互反射光
– 镜面反射颜色与材质无关
– 镜面反射大入射角失真现象
11.4 多边形绘制方法
? 分类,均匀着色与光滑着色
? 均匀着色
方法:任取多边形上一点,利用光照明方
程计算出它的颜色,用这个颜色填充整
个多边形
适用场合,1)光源在无穷远处;
2)视点在无穷远处;
3)多边形是物体表面的精确表示;
多边形绘制方法
? 缺点:产生的图形效果不好。
? 如左图:相邻两个多边形的法向
不同,计算出来的颜色也不同,
因此造成整个物体表面的颜色过
渡不光滑。
? 如何解决?
? 光滑着色,亦称插值着色
Gouraud着色方法
Phong着色方法
Gouraud着色方法
? Gouraud于 1971年提出,又被称 Gouraud
明暗处理
? 基本思想:在每个多边形顶点处计算颜
色,然后在各个多边形内部进行线性插
值,得到多边形内部各点颜色。即它是
一种 颜色插值着色方法。
? 注意,Gouraud着色方法并不是孤立的处
理单个多边形,而是将构成一个物体表
面的所有多边形(多边形网格)作为一
个整体来处理。
Gourand 着色方法
? 对多边形网格中的每一个多边形,
Gourand 着色处理分为如下四个步骤:
– 步骤
1、计算多边形的单位法矢量
2、计算多边形顶点的单位法矢量
? 与某个顶点相邻的所有多边形的法向平
均值近似作为该顶点的近似法向量
? 计算出的平均法向一般与该多边形物体
近似曲面的切平面比较接近
Gouraud着色方法 -顶点法向计算
?
?
?
??
n
i
n
i
i
v
Ni
N
N
1
1
Gourand 着色方法
3、利用光照明方程计算顶点光强(颜色)
4、对多边形顶点光强(颜色)进行双线性
插值,获得多边形内部各点的光强(颜色)
Gourand 着色方法 -光强插值
? 双线性光强插值:假设待绘制的三角形投影为
P1P2P3,Pi的坐标为 (xi,yi),i=1,2,3;一条扫描
线与三角形的两条边分别交于 A(xA,yA),B(xB,yB)
两点。 P(x,y)是 AB上的一点。 A点的颜色 IA由 P1、
P2点的颜色 I1,I2线性插值得到
B
AB
A
A
AB
B
P
BB
B
AA
A
I
xx
xx
I
xx
xx
I
I
yy
yy
I
yy
yy
I
I
yy
yy
I
yy
yy
I
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
3
31
1
1
31
3
2
21
1
1
21
2
Gourand 着色方法 -增量算法
? 采用增量算法可以加速计算。
? 1)当扫描线 y递增一个单位变为 y+1时,
IA,IB的增量分别为 DIA, DIB,即
31
31
21
21
,1,,1,
yy
II
I
yy
II
I
IIIIII
BA
ByByBAyAyA
?
?
?D
?
?
?D
D??D?? ??
其中:
Gourand 着色方法 -增量算法
? 2)当 x递增一个单位时,IP的增量为 DIP即
AB
AB
P
PxPxP
xx
II
I
III
?
?
?D
D??
?
其中:
,1,
Gourand 着色方法
? 优点,能有效的显示漫反射曲面,计算量小
? 缺点:
? 1、高光有时会异常
? 2、当对曲面采用不同的多边形进行分割时会产生不同
的效果。
? 3,Gouraud明暗处理会造成表面上出现过亮或过暗的
条纹,称为马赫带( Mach_band)效应
? 改进- Phong提出双线性法向插值,以时间为代价,解
决高光问题
Phong着色方法
? 基本思想:通过对多边形顶点的法矢量进
行插值,获得其内部各点的法矢量,又称
为法向插值着色方法。
– 步骤
1、计算多边形单位法矢量
2、计算多边形顶点单位法矢量
3、对多边形顶点法矢量进行双线性插值,获
得内部各点的法矢量
4、利用光照明方程计算多边形内部各点颜色
Phong着色方法 -法向插值
NA由 N1,N2线性插值得到:
B
AB
A
A
AB
B
P
BB
B
AA
A
N
xx
xx
N
xx
xx
N
N
yy
yy
N
yy
yy
N
N
yy
yy
N
yy
yy
N
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
3
31
1
1
31
3
2
21
1
1
21
2
Phong着色方法 -增量算法
? 采用增量算法可以加速计算。
? 1)当扫描线 y递增一个单位变为 y+1时,
NA,NB的增量分别为 DNA, DNB,即
31
31
21
21
,1,,1,
yy
NN
N
yy
NN
N
NNNNNN
BA
ByByBAyAyA
?
?
?D
?
?
?D
D??D?? ??
Phong着色方法 -增量算法
? 2)当 x递增一个单位时,IP的增量为 DIP即
AB
AB
P
PxPxP
xx
NN
N
NNN
?
?
?D
D??
?
其中:
,1,
Phong着色方法
优点:
Phong着色方法绘制的图形比 Gouraud方法更
真实,体现在两个方面:高光区域的扩散,产
生正确的高光区域
缺点:
1,Phong着色方法计算量远大于 Gouraud着
色方法
2、在处理某些多边形分割的曲面时,Phong
算法还不如 Gouraud算法好。
增量式模型示例
? 牛的三角网格模型
? 用简单光照明模型显示
? 用增量式光照明模型显示
插值多边形绘制方法
? 着色方法存在的问题
– 不光滑的物体轮廓:物体边缘轮廓是折线段
而非光滑曲线
插值着色多边形绘制方法
– 透视变形
– 方向依赖性
插值着色多边形绘制方法
– 公共顶点处颜色不连续
– 顶点方向不具有代表性
11.5 透明
? 现实世界中有许多透明物体,如玻璃等。
透过透明物体,可以观察到其后面的景
物。如何模拟这种透明效果呢?
? 模拟透明的最简单的方法是忽略光线在
穿过透明体时所发生的折射。虽然这种
模拟方法产生的结果不真实,但在许多
场合往往非常有用。例如:我们有时希
望能够看到透过某透明物体观察其后面
的景物,而又不希望景物应为折射而发
生变形。
透明效果的简单模拟
? 不考虑透明体对光的折射以及透明物体
本身的厚度
? 光通过物体表面不改变方向
? 产生简单透明效果的方法
插值透明方法
过滤透明方法
),( yx
a
I
b
I
透明体
不透明体
简单透明 -插值透明
? 假设:多边形 1是透明的,它
位于观察者与不透明的多边形
2之间。像素的颜色 I?由 A,B
两点的颜色 I?1和 I?2插值产生,

? 其中 Kt1是多边形 1的透射系数。
? Kt1范围( 0,1)
? Kt1 =0表示多边形完全不透明,
所以 I? = I?1
? Kt1 =1表示多边形完全透明,
所以 I? = I?2
21 11 )1( ??? IKIKI tt ???
简单透明 -插值透明
? 为了产生逼真的效果,
通常只对两个多边形表
面颜色的环境光分量和
漫反射分量采用
?
? 进行计算,得到的结果
再加上多边形 1的镜面反
射分量作为像素的颜色
值。
21 11 )1( ??? IKIKI tt ???
简单透明 -过滤透明
? 过滤透明方法将透明物体看
作一个过滤器,有选择的允
许某些光透过而屏蔽了其余
的光。对右图有:
? 其中 Kt1仍是多边形 1的透射系
数,但不再局限于 (0~1)。 Kt1
越大,多边形 2的颜色透过来
的越多。 Ct?对不同的颜色各
不相同。 Ct? =0表示某种颜色
的光不能透过多边形 1。
21 1 ???? ICKII tt??
简单透明
? 无论采用插值透明方法还是采用过滤透
明方法,当多边形 1之前还有其它的透明
多边形时,I?都要递归计算。
? 简单透明比较容易结合到多边形绘制算
法中。
考虑折射的透明
? 折射定律
? 其中,?i, ?t分别是入射
光线在空气,物体中的
折射率,?i, ?t分别是入
射角和折射角
i
t
t
i
?
?
?
? ?
s in
s in
考虑折射的透明 -透射矢量的计算
– 设单位入射光矢量为 I
(方向与光线的入射
方向相反),单位法
矢量为 N,单位透射
光矢量为 T,则
INT
INM
M
IN
t
NMT
ti
i
t
i
i
ti
i
t
t
????
??
?
?
?
?
??
?
?
?
?
?
???
????
?
?
??
??
)c o sc o s(
c o s
c o s
s i n
i
s i n
c o s

考虑折射的透明
? 当光线从高密度介质向低密度介质时,
?i>?t,即 ?t>?i。如果入射角不断增大,到
一定的程度,折射角 ?t?90度,此时透射
光线沿着平行于分界面的方向传播,称
此时的 ?i为临界角度,记为 ?c 。当 ?i > ?c
时,发生全反射,透射与反射光合二为
一。
? 如何产生带有折射的透明效果呢?
光透射模型的研究
? 早期简单透射现象的模拟
? 1980年,Whitted光透射模型,首次考虑
了光线的折射现象
? 1983年,在 Whitted的基础上,Hall光透
射模型,考虑了漫透射和规则透射光
11.6 整体光照明模型
简单光照模型(亦称局部光照模型)不考
虑周围环境对当前景物表面的光照明影
响,忽略了光在环境景物之间的传递,
很难表现自然界复杂场景的高质量真实
感图形。为了增加图形的真实感,必须
考虑环境的漫射、镜面反射和规则投射
对景物表面产生的整体照明效果。
整体光照明模型
? 物体表面入射光的构成
( 1)光源直接照射
( 2)其它物体的反射光
( 3)透射光
? 局部光照明模型仅考虑了( 1)
整体光照明模型
? 例如:从视点观察到的物体 A表
面的亮度来源于三方面的贡献:
( 1)光源直接照射到 A的表面,然
后被反射到人眼中的光产生的。
( 2)光源或其它物体的光经 A物体
折射到人眼中的光产生的。
( 3)物体 B的表面将光反射到物体
A的表面,再经物体 A的表面反
射到人眼中产生的。
? 局部光照明模型仅考虑了( 1)
Witted光照模型
? Whitted光照模型基于如下假设:
? 物体表面向视点方向 V辐射的光亮度 I?由三
部分组成:
( 1)光源直接照射引起的反射光亮度 Il?。
( 2)来自 V的镜面反射方向 R的其它物体反
射或折射来的光的亮度 Is?。
( 3)来自 V的透射方向 T的其它物体反射或
折射来的光的亮度 It?
Witted光照模型
? Witted光照模型,I?= Il? + Ks Is? + KtIt?
? 或
– Is?为镜面反射方向的入射光强度; Ks为镜面
反射系数,为 0~ 1之间的一个常数
– It?为折射方向光强,Kt为透射系数,是 0 ~
1之间的常数
– Il?的计算可采用 Phong模型
因此,关键是 Is和 It的计算。如何计算呢?
?????? tttsssl ICKICKII ???
Witted光照模型 -反射、折射方向计算
? 已知视线方向 V,求其反射方向 R与折射
方向 T( N是表面的法向方向 )
? 视线 V的反射方向 R
? 折射方向 T
N
V
R
L
T
i
?
i
?
t
?
i
?
t
?
VVNNR ??? )(2
INT ti
t
i
????
?
?
?
???
?
)c o sc o s(

光线跟踪算法的基本原理
? 自然界中光线的传播过程
光源 物体表面 物体表面
人眼
? 光线跟踪过程 ----光线传播的逆过程
光线跟踪算法的基本原理
? 从视点向每个 象素发出一
条光线,它与场景中的一
些物体表面相交,最近的
交点即为可见点,记为 P,
像素的亮度即由 P点的亮
度确定。由 Whitted光照
模型可知,P点的亮度由
三部分组成:其中 Il?可以
直接由局部光照模型计算
得到。
光线跟踪算法的基本原理
? 为了求 Is?和 It?,从 P点发出反射光线和透射光线,它分别交场
景中的物体表面于 Ps和 Pt,Ps和 Pt点的亮度即分别为 Is?和 It?,
将它们求出代入 Whitted模型即可。但是,Is?和 It?同样由
Whitted模型确定,即 Whitted模型是一个递归式,从而计算 Is?
和 It?需要重复以上的计算过程,计算局部光亮度、发出反射光
线与透射光线。。。可以用一棵光线树来表示
光线跟踪算法的基本原理
? 递归终止条件:
1、光线不与场景中的任何物体相交
2、被跟踪的光线达到了给定的层次
3、由于 Ks和 Kt都小于 0,当光线经过反射
和折射后,其亮度会衰减。因此可以预
先设置一个阈值,在进行光线跟踪时,
若被跟踪光线对像素亮度的贡献小于这
个阈值,便停止跟踪。
光线跟踪算法 -算法描述
设置视点,投影平面以及窗口的参数;
For (窗口内的每一条扫描线)
for (扫描线上的每一个像素)
{ 确定从视点指向像素中心的光线 ray;
像素的颜色 =RayTracing(ray,1);
}
光线跟踪算法描述Color RayTracing(Ray ray,int depth)
{ 求 ray与物体表面最近的交点 P;
if (有交点)
{ 用局部光照明模型计算 P点的 Ic;
color = Ic;
if ( depth<给定的最大跟踪层次)
{ 计算 ray的反射光线;
Is=RayTracing(反射光线,depth+1);
if (物体是透明的)
{ 计算 ray的透射光线;
It=RayTracing(透射光线,depth+1);
}
color = Ic + Is + It ;
}
} else color = black;
return color ;
}
光线跟踪算法
根据光线跟踪基本原理,假设在显示分辨率为
N× M的屏幕上生成图形,必须从视点出发通过
屏幕向景物发射 N× M条光线。设每根光线在场
景中经过反射和折射平均派生出 d根光线,并
设每一景物交点朝光源发射 m 条阴影探测光线,
则总的光线数增加至 (m+1)dNM。当 m为 2,d为 5,
N为 800,M为 600时,其光线数目是 720万条。
这意味着需进行 720万次直线与景物的求交计
算才能完成图形的绘制。庞大的求交量使图形
绘制耗费大大增加。生成一幅中等复杂程度的
真实感图形需要数分钟至数小时。
光线跟踪算法
优点:
能够方便的产生阴影,模拟镜面反射与
折射现象。
缺点:
计算量大,每一条光线都要与场景中的
物体进行求交、计算光照模型等。