第9章真实感图形技术
第9章 真实感图形技术
1.消隐技术 2.光照模型和明暗处理 3.颜色模型和处理技术 用计算机生成三维真实图形是计算机图形学研究的重要内 容之一。真实图形在计算机仿真模拟、几何造型、广告影视 指挥控制和科学计算的可视化等方面都有广泛的应用。真实感 图形技术是指在使用显示设备绘制物体图形时,必须把三维信 息经过某种投影变换,在二维的显示表面上绘制出来,使其具 有立体真实地感觉。三维图形的表现形式有三种,第一种是线 框图,它是通过物体的棱边和轮廓线表示物体。用线框图表示 的三维图形具有二义性。第二种形式是消隐图,图中只保留形 体上能看见的部分,看不见或被遮挡的部分不画出来或用虚线 表示。第三种形式是用光照效果、图案纹理和颜色,使图形具 有立体真实地感觉。真实感图形技术包括消隐技术、光照模型 明暗处理和表面纹理、颜色模型等
❖ 1. 消隐技术 ❖ 2. 光照模型和明暗处理 ❖ 3. 颜色模型和处理技术 用计算机生成三维真实图形是计算机图形学研究的重要内 容之一。真实图形在计算机仿真模拟、几何造型、广告影视、 指挥控制和科学计算的可视化等方面都有广泛的应用。真实感 图形技术是指在使用显示设备绘制物体图形时,必须把三维信 息经过某种投影变换,在二维的显示表面上绘制出来,使其具 有立体真实地感觉。三维图形的表现形式有三种,第一种是线 框图,它是通过物体的棱边和轮廓线表示物体。用线框图表示 的三维图形具有二义性。第二种形式是消隐图,图中只保留形 体上能看见的部分,看不见或被遮挡的部分不画出来或用虚线 表示。第三种形式是用光照效果、图案纹理和颜色,使图形具 有立体真实地感觉。真实感图形技术包括消隐技术、光照模型、 明暗处理和表面纹理、颜色模型等
91消隐技术 9.1.1基本概念 对于一个不透明的三维物体,选择不同的 视点观看物体时,由于物体表面之间的遮挡关 系,所以无法看到物体上所有的线和面。正确 判断哪些线和面是可见的,哪些是不可见的, 对于准确和真实地绘出三维物体时至关重要的 图9-1-1(a)是一个立方体的线框图,如果不去掉 不可见的线段,就会产生图形理解上的二义性, 如图9-1-1(b)和图9-1-1(c)所示
9.1 消隐技术 9.1.1 基本概念 对于一个不透明的三维物体,选择不同的 视点观看物体时,由于物体表面之间的遮挡关 系,所以无法看到物体上所有的线和面。正确 判断哪些线和面是可见的,哪些是不可见的, 对于准确和真实地绘出三维物体时至关重要的。 图9-1-1(a)是一个立方体的线框图,如果不去掉 不可见的线段,就会产生图形理解上的二义性, 如图9-1-1(b)和图9-1-1(c)所示
图9-1-1三维线框图理解的二义性
图9-1-1 三维线框图理解的二义性
在显示三维物体时,不仅要决定物体上每条边在 视图区中的位置,而且要决定哪些边是可见的,必须 显示,哪些边是不可见,必须去掉活用虚线来表示 找出并消除物体中不可见的部分,称为消隐。经过消 隐得到的图形称为消隐图 消隐的对象是三维物体。三维物体在计算机中的 表示方法很多,最简单的表示方法是用其表面上的平 面多边形表示。如果物体的表面是曲面,则可以用多 个平面多边形作近似表示。多边形可以用其边界上的 边来表示,而边又可进一步用其两个端点来表示。根 据消隐对象的不同,消隐算法可分为两类:一是线消 急,消除的是物体上不可见的线段;二是面消隐,消 除的是物体上不可见的面。一般来说,当用笔式绘图 仪或其它画线设备绘制图形时,采用线消 用 光栅图形显示器来显示图形时,采用面消
在显示三维物体时,不仅要决定物体上每条边在 视图区中的位置,而且要决定哪些边是可见的,必须 显示,哪些边是不可见,必须去掉活用虚线来表示。 找出并消除物体中不可见的部分,称为消隐。经过消 隐得到的图形称为消隐图。 消隐的对象是三维物体。三维物体在计算机中的 表示方法很多,最简单的表示方法是用其表面上的平 面多边形表示。如果物体的表面是曲面,则可以用多 个平面多边形作近似表示。多边形可以用其边界上的 边来表示,而边又可进一步用其两个端点来表示。根 据消隐对象的不同,消隐算法可分为两类:一是线消 隐,消除的是物体上不可见的线段;二是面消隐,消 除的是物体上不可见的面。一般来说,当用笔式绘图 仪或其它画线设备绘制图形时,采用线消隐,而当用 光栅图形显示器来显示图形时,采用面消隐
几乎所有的消隐算法都涉及到排序问题 消隐算法的基本思想是将物体上所有的点、线 面,按照距视点的远近进行排序。一般来说, 离视点较远的物体,就有可能被离视点较近的 物体完全或部分遮盖。消隐算法的效率在很大 程度上取决于排序的效率,通常可以采用相关 性来提高排序的效率。所谓相关性是指考察物 体或视图区的图像局部保持不变的一种性质, 即相邻的点、线和区域有相似的性质 下面主要介绍在光栅显示器上绘制物体真 实图形时,必须解决的面消隐的问题。这方面 的使用算法很多,包括:画家算法、Z缓冲区 算法、扫描线算法、区域采样算法等
几乎所有的消隐算法都涉及到排序问题。 消隐算法的基本思想是将物体上所有的点、线、 面,按照距视点的远近进行排序。一般来说, 离视点较远的物体,就有可能被离视点较近的 物体完全或部分遮盖。消隐算法的效率在很大 程度上取决于排序的效率,通常可以采用相关 性来提高排序的效率。所谓相关性是指考察物 体或视图区的图像局部保持不变的一种性质, 即相邻的点、线和区域有相似的性质。 下面主要介绍在光栅显示器上绘制物体真 实图形时,必须解决的面消隐的问题。这方面 的使用算法很多,包括:画家算法、Z缓冲区 算法、扫描线算法、区域采样算法等
92画家算法 画家算法的基本思想,先把屏幕置成背景色,再 把物体的各个面按其离视点的远近进行排序。离视点 远的在表头,离视点近的在表尾,构造深度优先表。 然后,从表头至表尾逐个取出多边形,投影到屏幕上, 显示多边形所包含的实心区域。由于后显示的图形取 代先显示的画面,而后显示的图形所代表的面离视点 更近,所以,由远及近地绘制各面,就相当于消除隐 藏面。这与油画家作画的过程类似,先画远景,再画 中景,最后画近景,因此将这种算法称为画家算法 下面对画家算法实现中所用到的数据文件格式、 数据结构、算法流程图和主要的子程序功能作简单的 介绍
9.1.2 画家算法 画家算法的基本思想,先把屏幕置成背景色,再 把物体的各个面按其离视点的远近进行排序。离视点 远的在表头,离视点近的在表尾,构造深度优先表。 然后,从表头至表尾逐个取出多边形,投影到屏幕上, 显示多边形所包含的实心区域。由于后显示的图形取 代先显示的画面,而后显示的图形所代表的面离视点 更近,所以,由远及近地绘制各面,就相当于消除隐 藏面。这与油画家作画的过程类似,先画远景,再画 中景,最后画近景,因此将这种算法称为画家算法。 下面对画家算法实现中所用到的数据文件格式、 数据结构、算法流程图和主要的子程序功能作简单的 介绍
物体采用边界表示模式存储。数据文件由 若干三元组和若干四元组组成。三元组表示物 体顶点的坐标。四元组表示物体的某个面由哪 些顶点构成。如图9-1-2所示,表示一个立方体 的数据文件
物体采用边界表示模式存储。数据文件由 若干三元组和若干四元组组成。三元组表示物 体顶点的坐标。四元组表示物体的某个面由哪 些顶点构成。如图9-1-2所示,表示一个立方体 的数据文件
顶点的表面的表示 小 123 ⑦ 100 2673 110 6587 111 5148 Y 4378 000 562 010 011 001 图9-1-2画家算法中的数据表示
顶点的表 示 8 1 0 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 面的表示 6 1 2 3 4 2 6 7 3 6 5 8 7 5 1 4 8 4 3 7 8 5 6 2 1 图9-1-2 画家算法中的数据表示
算法实现所需要的数据结构包括点记录( vertex) 面记录( patch)和排序数组。点记录由五个域构成, 其中三个域用于存储点的空间坐标,另外两个域用于 存储点的投影(屏幕)坐标。面记录由四个域组成, 每个域存放对应的顶点号。排序数组的每个元素有两 个域,其中一个域存放面与视点的距离,另一个域存 放该面的面号。程序的流程图见图9-1-3。 画家算法的优点是简单、易于实现,并且可以作 为实现更为复杂算法的基础。它的缺点是只能处理互 不相交的面,而且深度优先级表中的顺序可能出错, 如两个面相交或三个面相互重叠的情况,用任何方法 都不能排出正确的顺序。这时,只能把有关的面进行 分割后再排序。增加了算法的复杂度,因此,该算法 使用具有一定的局限性
算法实现所需要的数据结构包括点记录(vertex)、 面记录(patch)和排序数组。点记录由五个域构成, 其中三个域用于存储点的空间坐标,另外两个域用于 存储点的投影(屏幕)坐标。面记录由四个域组成, 每个域存放对应的顶点号。排序数组的每个元素有两 个域,其中一个域存放面与视点的距离,另一个域存 放该面的面号。程序的流程图见图9-1-3。 画家算法的优点是简单、易于实现,并且可以作 为实现更为复杂算法的基础。它的缺点是只能处理互 不相交的面,而且深度优先级表中的顺序可能出错, 如两个面相交或三个面相互重叠的情况,用任何方法 都不能排出正确的顺序。这时,只能把有关的面进行 分割后再排序。增加了算法的复杂度,因此,该算法 使用具有一定的局限性