第 8章 真实图形
第 8章 真实图形
8.1 光照模型
8.1.1 基本光学原理
基本光照模型模拟物体表面对直接光照的反射
作用,包括漫反射和镜面反射,物体之间的光反
射作用没有充分考虑,仅仅用一个与周围物体、
视点、光源位置都无关的环境光常量来近似表示。
可以用如下等式表示:
入射光 =环境光 +漫反射光 +镜面反射光
第 8章 真实图形
8.1.2 环境光
环境光( ambient light)是在物体和周围环
境之间多次反射后,最终达到平衡时的一种光,
又称为背景光。
三维空间中任意一点对环境光的反射光强度可
以用公式定量地表示为:
其中,Ka是物体对环境光的反射系数,与物
体表面性质有关; Ia是入射的环境光的光强,与
环境的明暗度有关。
aae IKI ?
第 8章 真实图形
8.1.3 漫反射光
漫反射光是由物体表面的粗糙不平引起的,它
均匀地向各个方向传播,与视点无关。
漫反射光在空间均匀分布,反射光强 I与入射
光的入射角 θ的余弦成正比,即:
其中,Kd是漫反射系数( 0~ 1之间的常数),
与物体表面性质有关; Ip是入射光(光源)的光
强; θ是入射光的入射角,即入射光与物体表面法
向量之间的夹角。
?c o spdd IKI ?
第 8章 真实图形
设物体表面在照射点 P处的单位法向量为 N,P
到点光源的单位向量为 L,则上式可表达为如下的
向量形式:
如果有多个光源, 则可以把各个光源的漫反射
光照效果进行叠加:
?
?
??
m
i
ipidd LNIKI
1
)(
)( LNIKI pdd ??
第 8章 真实图形
8.1.4 镜面反射光和冯 ( Phong) 反射模型
Phong提出了一个计算镜面反射光亮度的经
验模型,其计算公式为:
其中,Ks是物体表面镜面反射系数,它与入射
角和波长有关; α是视线与反射方向的夹角; n为
镜面高光系数,用来模拟镜面反射光在空间中的
汇聚程度,它是一个反映物体表面光泽度的常数;
近似地描述了镜面反射光的空间分布。
?nsps KII c o s?
?nco s
第 8章 真实图形
V和 R分别是观察方向和镜面反射方向的单位
矢量,则可以用点积 V·R来代替,
在多个点光源照射下,Phong镜面反射模型
可以写成:
nsps RVKII )( ??
n
i
m
i
piss RVIKI )(
1
?? ?
?
第 8章 真实图形
引入矢量 L和 V的半角矢量 H,得到简化的
Phong模型:
在多个点光源照射下,简化的 Phong模型为:
nsps HNKII )( ??
n
i
m
i
piss HNIKI )(
1
?? ?
?
第 8章 真实图形
8.2 明暗处理
8.2.1 双线性光强插值 (Gouraud明暗处理 )
基本思想:为了使多边形表面之间光滑过渡,
首先计算物体表面多边形各顶点的光强,把它们
作为曲面光强的采样点;然后对多边形顶点的光
强插值计算出多边形内部区域中各点的光强。
若采用扫描线绘制算法,则可以沿当前扫描线
进行双线性插值,即先用多边形顶点的光强线性
插值出当前扫描线与多边形交点处的光强,然后
再用交点的光强线性插值出扫描线位于多边形内
区域段上每一点像素处的光强。
第 8章 真实图形
8.2.2 双线性法向插值 ( Phong明暗处理 )
基本思想:通过对多边形顶点的法向量进行插
值,获得其内部各点的法向量,同时根据光照明
模型计算各点的光强。
第 8章 真实图形
8.3 纹理
纹理:物体表面的各种表面细节和图案花纹。
8.3.1 概述
在真实感图形学中,我们可以用如下的两种方
法来定义纹理:
图像纹理:将二维纹理图案映射到三维物体表
面,绘制物体表面上一点时,采用相应的纹理图
案中相应点的颜色值。
函数纹理:用数学函数定义简单的二维纹理图
案,如方格地毯;或用数学函数定义随机高度场,
生成表面粗糙纹理即几何纹理。
第 8章 真实图形
8.3.2 二维纹理域的映射
在纹理映射技术中,最常见的纹理是二维纹理。
映射将这种纹理变换到三维物体的表面,形成最
终的图像。
为了实现这个映射,就要建立物体空间坐标
( x,y,z)和纹理空间坐标( u,v)之间的对应关
系,这相当于对物体表面进行参数化,反求出物
体表面的参数后,就可以根据( u,v)得到该处的
纹理值,并用此值取代光照明模型中的相应项。
经常使用的映射方法有圆柱面映射和球面映射。
第 8章 真实图形
8.3.3 三维纹理域的映射
三维纹理映射的纹理空间定义在三维空间上,
与物体空间是同维的,在纹理映射的时候,只需
把场景中的物体变换到纹理空间的局部坐标系中
去即可。
第 8章 真实图形
8.3.4 几何纹理
为了给物体表面图像加上一个粗糙的外观,我
们可以对物体的表面几何性质作微小的扰动,来
产生凹凸不平的细节效果,就是几何纹理的方法。
第 8章 真实图形
8.4 光线跟踪
8.4.1 基本光线跟踪算法
在此场景中,
有一个点光源 L,
两个透明的球体
O1与 O2,一个
不透明的物体 O3。
第 8章 真实图形
首先,从视点出发经过视屏一个像素点的视线 E传播
到达球体 O1,与其交点为 P1。从 P1向光源 L作一条阴影测
试线 S1,若发现其间没有遮挡的物体,那么就用局部光照
明模型计算光源对 P1在其视线 E的方向上的光强,作为该
点的局部光强。同时还要跟踪该点处反射光线 R1和折射光
线 T1,它们也对 P1点的光强有贡献。在反射光线 R1方向
上,没有再与其他物体相交,那么就设该方向的光强为零,
并结束这光线方向的跟踪。
然后对折射光线 T1方向进行跟踪,来计算该光线的光
强贡献。折射光线 T1在物体 O1内部传播,与 O1相交于点
P2,由于该点在物体内部,故假设它的局部光强为零,同
时,产生了反射光线 R2和折射光线 T2,在反射光线 R2方
向,可以继续递归跟踪下去计算它的光强。
第 8章 真实图形
继续对折射光线 T2进行跟踪。 T2与物体 O3交于点 P3,
作 P3与光源 L的阴影测试线 S3,没有物体遮挡,那么计算
该处的局部光强。由于该物体是非透明的,那么可以继续
跟踪反射光线 R3方向的光强,结合局部光强,来得到 P3
处的光强。反射光线 R3的跟踪与前面的过程类似,算法可
以递归的进行下去。
重复上面的过程,直到光线满足跟踪终止条件。这样
就可以得到视屏上的一个像素点的光强,也就是它相应的
颜色值。
第 8章 真实图形
虽然在理想情况下,光线可以在物体之间进行无限的
反射和折射,但是在实际的算法进行过程中,不可能进行
无穷的光线跟踪,因而需要给出一些跟踪的终止条件。
在算法应用的意义上,可以有以下的几种终止条件:
( 1)该光线未碰到任何物体。
( 2)该光线碰到了背景。
( 3)光线在经过许多次反射和折射以后,就会产生
衰减,光线对于视点的光强贡献很小 (小于某个设定值 )。
( 4)光线反射或折射次数即跟踪深度大于一定值。
第 8章 真实图形
8.4.2 光线与物体的求交
1,光线与球求交
2,光线与多边形求交
3,光线与二次曲面求交
第 8章 真实图形
8.4.3 光线跟踪算法的加速
1,自适应深度控制
2,包围盒及层次结构
3,三维 DDA算法