浙江大学信息学院 计算机图形学第十章 真实感图形绘制
简单光照明模型
多边形绘制方法
透明
整体观照明模型
光线跟踪算法浙江大学信息学院 计算机图形学第十章 真实感图形绘制光照模型 (Illumination Model):计算某一点的光强度的模型浙江大学信息学院 计算机图形学真实感图形的 特点
能反映物体表面颜色和亮度的细微变化
能表现物体表面的质感
能通过光照下的物体阴影,极大地改善场景的深度感和层次感,充分体现物体间的相互遮挡关系
能模拟透明物体的透明效果和镜面物体的镜面效果浙江大学信息学院 计算机图形学影响观察者看到的表面颜色的因素
① 物体的几何形状
②光源 位置、距离、颜色、数量、强度、种类
③环境 遮挡关系、光的反射与折射,阴影
④视点位置
⑤物性 材料、颜色、透明度 折射性
⑥表面光洁度浙江大学信息学院 计算机图形学光源
① 几何性质
– 点光源
– 线光源
– 面光源
② 光谱组成
– 白色光等能量的各种波长可见光的组合
– 彩色光
– 单色光浙江大学信息学院 计算机图形学真实感图形学早期发展
1967年,Wylie等人第一次在显示物体时加进光照效果,认为光强与距离成反比。
1970年,Bouknight提出第一个光反射模型,Lambert漫反射+环境光
1971年,Gouraud提出漫反射模型加插值的思想
1975年,Phong提出图形学中第一个有影响的光照明模型浙江大学信息学院 计算机图形学相关物理知识
光的传播
– 反射定律:入射角等于反射角,而且反射光线、入射光线与法向量在同一平面上光源 法向量入射光 反射光视线浙江大学信息学院 计算机图形学折射定律
– 折射定律:折射线在入射线与法线构成的平面上,折射角与入射角满足入射光折射光
2
1
1
2
si n
si n


浙江大学信息学院 计算机图形学能量关系
– 在光的反射和折射现象中的能量分布:
– 下标为 i,d,s,t,v的能量项分别表示 为入射光强,
漫反射光强,镜面反射光强,透射光强,吸收光强
– 能量是守恒的
i d s t vI I I I I
浙江大学信息学院 计算机图形学简单光照明模型模拟物体表面的光照明物理现象的数学模型-光照明模型简单光照明模型 亦称局部光照明模型,
其假定物体是不透明的,只考虑光源的直接照射,而将光在物体之间的传播效果笼统地模拟为环境光。
可以处理物体之间光照的相互作用的模型称为整体光照明模型浙江大学信息学院 计算机图形学简单光照明模型光照射到物体表面,主要发生:
反射透射(对透明物体)
部分被吸收成热能反射光,透射光决定了物体所呈现的颜色浙江大学信息学院 计算机图形学简单光照明模型 -环境光假定物体是不透明的(即无透射光)
环境光,在空间中近似均匀分布,即在任何位置、
任何方向上强度一样,记为 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
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模型存在不足:
– 显示出的物体象塑料,无质感变化
– 没有考虑物体间相互反射光
– 镜面反射颜色与材质无关
– 镜面反射大入射角失真现象浙江大学信息学院 计算机图形学多边形绘制方法
分类,均匀着色与光滑着色
均匀着色方法:任取多边形上一点,利用光照明方程计算出它的颜色,用这个颜色填充整个多边形适用场合,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
DD
其中:
浙江大学信息学院 计算机图形学
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
DD
浙江大学信息学院 计算机图形学
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算法好。
浙江大学信息学院 计算机图形学增量式模型示例
牛的三角网格模型
用简单光照明模型显示
用增量式光照明模型显示浙江大学信息学院 计算机图形学插值多边形绘制方法
着色方法存在的问题
– 不光滑的物体轮廓:物体边缘轮廓是折线段而非光滑曲线浙江大学信息学院 计算机图形学插值着色多边形绘制方法
– 透视变形
– 方向依赖性浙江大学信息学院 计算机图形学插值着色多边形绘制方法
– 公共顶点处颜色不连续
– 顶点方向不具有代表性浙江大学信息学院 计算机图形学透明
现实世界中有许多透明物体,如玻璃等。
透过透明物体,可以观察到其后面的景物。如何模拟这种透明效果呢?
模拟透明的最简单的方法是忽略光线在穿过透明体时所发生的折射。虽然这种模拟方法产生的结果不真实,但在许多场合往往非常有用。例如:我们有时希望能够看到透过某透明物体观察其后面的景物,而又不希望景物应为折射而发生变形。
浙江大学信息学院 计算机图形学透明效果的简单模拟
不考虑透明体对光的折射以及透明物体本身的厚度
光通过物体表面不改变方向
产生简单透明效果的方法插值透明方法过滤透明方法
),( 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 in
i
s in
c o s
令浙江大学信息学院 计算机图形学考虑折射的透明
当光线从高密度介质向低密度介质时,
i>?t,即?t>?i。如果入射角不断增大,到一定的程度,折射角?t?90度,此时透射光线沿着平行于分界面的方向传播,称此时的?i为临界角度,记为?c 。当?i >?c
时,发生全反射,透射与反射光合二为一。
如何产生带有折射的透明效果呢?
浙江大学信息学院 计算机图形学光透射模型的研究
早期简单透射现象的模拟
1980年,Whitted光透射模型,首次考虑了光线的折射现象
1983年,在 Whitted的基础上,Hall光透射模型,考虑了漫透射和规则透射光浙江大学信息学院 计算机图形学整体光照明模型简单光照模型(亦称局部光照模型)不考虑周围环境对当前景物表面的光照明影响,忽略了光在环境景物之间的传递,
很难表现自然界复杂场景的高质量真实感图形。为了增加图形的真实感,必须考虑环境的漫射、镜面反射和规则投射对景物表面产生的整体照明效果。
浙江大学信息学院 计算机图形学整体光照明模型
物体表面入射光的构成
( 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万次直线与景物的求交计算才能完成图形的绘制。庞大的求交量使图形绘制耗费大大增加。生成一幅中等复杂程度的真实感图形需要数分钟至数小时。
浙江大学信息学院 计算机图形学光线跟踪算法优点:
能够方便的产生阴影,模拟镜面反射与折射现象。
缺点:
计算量大,每一条光线都要与场景中的物体进行求交、计算光照模型等。