第一章 计算机图形学概论
1. 比较计算机图形学与图象处理技术相同点和不同点。
Computer Graphics将抽象的语义信息转化成图像(数据转换为图形),Computer Vision从图像中提取抽象的语义信息。Image Processing(图像处理)探索的是从一个图像或者一组图像之间的互相转化和关系,与语义信息无关。
图形学输入的是对虚拟场景的描述,通常为多边形数组,而输出的则是图像,多维像素数组。 而图像处理技术输入的是图像,输出的也是图像。
2. 列举三个计算机图形的应用实例。
- CAx领域 计算机辅助设计CAD; 计算机辅助制造CAM; 计算机辅助教学CAI; 等
- 系统模拟、虚拟现实 航空、航天、建筑、体育等模拟与训练
- OA与电子出版系统
- 过程控制 飞船、卫星、导弹、工业生产过程等
- 绘制勘探、测量图
地形、地貌、矿藏、气象、GIS
• 艺术、娱乐和商业
平面设计、动画、影视制作
• 医学诊断技术
CT、核磁共振等数据分析诊断病因,手术模拟
• 科学计算可视化
复杂数据的直观表示,方便观察结果
3. 简述计算机图形学发展动向。
造型技术
规则形体: 可用欧氏几何描述的形体 几何造型技术(几何描述) 特征造型技术(特征作为形状描述的单元) 基于物理的造型技术(动画)
不规则形体: 过程式模拟, 如分形、粒子系统、基于文法生成
真实图形生成技术 简单局部光照模型、全局光照模型, 基于图象绘制技术
人-机交互技术 三维人-机交互技术, 虚拟环境, 多通道技术, 非精确交互
基于网络的图形技术 网络和多媒体技术, 分布式图形, 虚拟现实建模语言VRML
第二章 计算机图形系统概述
1. 叙述计算机图形系统的基本功能。
输入、输出、计算、存储、对话
2. 输入设备可有哪几种逻辑功能?请举出各自对应的物理设备。
共有6类逻辑输入设备: * 定位(locator): 指定一个坐标点。对应的物理设备有鼠标器、键盘、数字化仪、触摸屏等。 * 笔划(stroke): 指示一个坐标点系列, 如指定一条曲线的控制点等。主要物理设备有数字化仪 * 送值(valuator): 输入一个数值。最常用的物理设备是键盘的数字键。 * 字符串(string):输入一个字符串。最基本的物理设备是键盘的数字字母键 * 拾取(pick):选择一个显示对象, 为应用程序处理确定目标。常用的物理设备是各种定位设备 * 选择(choice):在一个可选动作或选项中进行选择, 如选择菜单项。典型的物理设备是鼠标器、数字化仪、键盘的功能键等。
3. 画出图形软件的层次结构及主要组成。
4. 颜色查找表的概念及实现原理。
彩色表又称为调色板, 用来定义图像的 不同颜色。 彩色表的工作原理 代号-颜色RGB值对照表
5. 光栅扫描显示器结构与工作原理。
(1)图形信息的产生有两种主要途径: 其一, 由计算机执行相应的图形应用程序, 图像生成系统接受指令将图形的矢量表示转换成像素表示, 再将像素值存入显示存储器; 其二, 图像生成系统直接把图形输入设备(摄像 机、扫描仪等)输入的图形图像直接或经过主存 储器间接地存放到显示存储器中。 (2)显示控制器生成水平和垂直同步扫描信号送到 监视器, 使CRT电子束进行水平扫描和垂直扫描形成光栅; 另一方面又根据电子束在屏幕上的 行、列位置, 不断地读出显示存储器中对应位 置的像素值。 (3)利用彩色表将读出的像素值转换成R、G、B 三原色的亮度值, 来控制CRT的R、G、B电子束, 在屏幕对应点生成需要的像素颜色。
6. 什么要制订图形软件标准?举例说明它的分类。
制定图形软件标准的目的在于使图形软件能 够在不同的计算机和图形设备之间进行移植, 以便提高图形软件的利用率, 降低开发成本, 缩短研制周期, 使图形软件向着通用、高级与 设备无关的方向发展。 目前已经制定或正在制定的一些图形标准都是接 口标准。这些标准的功能旨在使图形系统中两 部分之间的接口标准化, 可以分为两类: * 数据接口标准 * 子程序接口标准
第三章 基本图形生成算法
1. Bresenham 直线生成算法原理。它与 DDA 算法相比,有何改进?
根据直线的斜率确定选择X或者Y方向作为计 长方向, 在此方向上每次递增一个单位步长(或 者一个像素单位), 另一个方向上是否同时产生 一个单位增量由一个计算量很小的判别式来判 断。
Bresenham算法相比DDA算法去除了费时的取整运算,效率更高了。
2. 比较几种常用画圆弧算法的原理和效率。
- Bresenham算法 与Bresenham直线生成算法一样, 其基本方法 是从一个起点出发, 利用判别式选择下一个显 示点。判别式的值通过简单计算获得, 其符号 用作判断。
算法特点 Bresenham圆弧算法是最有效的算法之一, 生 成圆时利用第一象限的上八分之一圆弧对称 扩展。选择点时所用判别式是递推表达式, 仅用加、减和移位即可计算, 算法效率高。
- 正负法(逐点比较法) • 首先,区分不同象限的圆弧;
• 然后,选定圆弧起点后,在输出圆弧的过程中, 根 据当前点的位置与理想圆弧的关系和所在象限, 决定下一步的走向, 每次只在一个方向(X 或 Y) 走步取点;
• 这样一步步地逼近产生应显示的圆弧。
算法特点 计算机用正负法生成圆弧时运算只有加、减和 移位(乘2)运算, 无乘除, 因此运算效率高, 这很 适用于用硬件实现。
较之Bresenham算法, 正负法的运算更为简单, 但对于同一段圆弧而言, 由于正负法每次只是 单向走步, 因而生成的点数比Bresenham算法生 成的点数要多。
- 多边形逼近法
当圆的内接多边形边数足够多时, 该多边形可 以和圆接近到任意程度, 因此在允许的误差范 围内(例如圆周和多边形之间的最大距离小于半 个像素的宽度), 可用显示多边形代替显示圆。
显示多边形的边可以用Bresenham直线生成算 法来实现。
个人猜想:毕竟采用的不是描点法,因而效率会更高
3. 简述两种字符生成方法。
- 矢量字符 写字模:采集每一笔两个端点的值。
- 点阵字符 采用mask来定义字符 所谓(mask)字符掩膜,就 是包含该字符的像素信息的一小块光栅。
4. 何谓四连通和八连通?写出一种边界表示的八连通区域填充算法。
4连通区域:取区域中的任何两个像素,从一象 素出发,通过上、下、左、右4种运动,只经过 该区域的点可以达到另一像素
8连通区域:取区域中任何两个像素,从一象素 出发通过上、下、左、右、两条对角线方向共 8种运动,只经过该区域的点可达到另一像素
4连通区域和8连通区域的关系: 4连通区域是8连通区域的一种特殊情况。4连通区域的边界必定是8连通式的;(8连通区域的边界必定是4连通式的?)。 这里指的是连通(而不是边界)
5. 解释活化边表的思想,以多边形区域填充为例介绍它的应用。
6.已知多边形各个顶点的坐标为(2,2), (2,4), (8,6), (12,2), (8,1), (6,2)及 (2,2), 在用扫描线填充算法实现扫描转换时, 写出其边表(ET)和全部的活化边表(AET)的内容。
7. 设计和实现一个图形函数库,具有绘制直线段、任意圆弧、椭圆弧、 多边形区域的阴影填充和颜色填充等功能。(仅调用画点函数)
大作业第一个 见附录
第四章 图形变换与裁剪
1.什么是灭点?
任何一束不平行于投影平面的平行线的透视投 影将汇聚成一点,称为灭点。灭点可以看作是 无限远处的一点在投影面上的投影。灭点有无 限多个。
在坐标轴方向上的灭点, 称为主灭点。
透视投影根据主灭点的个数分为一点透视、二 点透视和三点透视。主灭点数是和投影平面切割坐标轴的数量相对应的。
2.试用几种不同顺序的简单几何变换,求出将平面上的任一线段P1(x1, y1), P2(x2, y2)变换成与 X 轴重合的变换阵,并说明其等效性。
3.已知 OXYZ 坐标系下平面方程是 x+y+z+d=0,试求变换距阵 T,使该平面在 O’X’Y’Z’坐标系下变成 z’=0。
4.试简述二维图形裁剪的基本原理及可选用的裁剪策略.
在显示图形之前, 组成图形的每一个基本元素都 要经过裁剪, 因此裁剪算法直接影响整个图形系 统的效率。
裁剪的基本目的是判断图形元素是否在所考虑 的区域内。如在区域内, 则进一步求出在区域内 的那一部分。因此裁剪处理包含两部分内容:
1)点在区域内外的判断;
2)计算图形元素与区域边界的交点。
可选用的裁剪策略: * 编码裁剪法(Sutherland-Cohen算法) * 中点分割裁剪法 * 多边形的裁剪 * 逐边裁剪法 * 双边裁剪法
第五章 人机交互技术
1. 基本的交互任务有哪些?它们可用什么设备执行?
- 定位 定位设备
- 选择 选择设备
- 数量输入 取值设备
- 文本输入 键盘
- 三维交互 鼠标
设备有:定位设备,键盘设备,取数设备,选择设备,其他输入设备
2. 举例说明 WINDOWS 系统常用的交互方式,编程实现其中一例。
windows系统常用选择交互方式,鼠标点选选项进行操作。
3. 叙述设计人机交互的一般风格和原则。
现在计算机系统的人机界面一般具有下列风格, 即: “所见即所得”(what you see is what you get) , 直接操作(direct manipulate)及菜单和图形符号 (icon)驱动。 * “所见即所得”在交互式图形系统中一般都 能做到, 即在屏幕上所见到的设计结果和用硬 拷贝所得的输出结果是一致的。 * 直接操作是对对象、特性及关系等操作时用 户可得到一种直观及形象的表示, 以说明这个 操作是正确地被执行了。 * 图形符号驱动的目的是要用户不需要专门学 习及记忆便可借助于菜单选择来运行系统。 要做到这一点最主要的是要设计好图形符号, 使它一看便知道它代表什么操作。
第六章 曲线曲面的表示
1. Bezier 曲线具有哪些特性?试用 n 的归纳法证明其凸包性。
证明就算了,一点都看不懂……
2. B 样条曲线的定义及其特点。
3. 比较 Bezier 曲面和B样条曲面的功能特点。
Bezier曲面和B样条曲面的特点是曲面逼近控制网 格。
B样条曲面不仅在保留了Bézier曲面的优点的同时克服了由于整体表示带来的不具有局部修正性质的特点,而且成功地解决了样条函数的局部控制问题,轻而易举地在参数连续性上解决了贝奇尔方法的连接问题。
4. Coons 曲面片构造方法及其特点。
Coons曲面特点是插值, 它构造满足给定边界条 件的曲面。
第七章 三维实体的造型
1. 体素构造表示法中两物体正则运算的公式,并举例说明它们的计算方 法。
2. 形体的拓扑信息和几何信息各包含哪些内容?举例说明它们起何作用。
几何信息-物体大小、尺寸、位置、形状等
拓扑信息-物体上所有顶点、棱边、表面间连接关系
几何信息和拓扑信息分开表示的优点:
便于具体查询物体中各元素、获取它们的信息;
容易支持对物体的各种局部操作;
对于具有相同拓扑结构而只是大小、尺寸不同 的物体,可以用统一的数据结构加以表示;
便于在数据结构上附加各种非几何信息。
3. 欧拉公式及其应用意义。
给用户提供了直接使用顶点、棱边、表面等基 本元素构造三维立体的手段。用户可以通过输入 点,再建立边, 构成面, 形成体。 任何数目顶点、棱边、表面并不能构成一个体。 它们之间须满足拓扑一致性和几何一致性。
– 几何一致性由用户输入几何信息时保证, 系统应 提供检查输入信息几何一致性功能。
4. 试写出判定空间任意位置的两个长方体是否相交的算法。
5. 试比较实体的边界表示、扫移表示、CSG 表示及八叉树表示的优缺点。 说明它们适应的应用。
边界表示法:用顶点、棱边、表面等物体的边界信息来表示物体。边界就是物体内部点与外部点的分界面。
扫描表示
CSG表示:一个复杂物体可由一些比较简单、规则的物体经过布尔运算而得到。其中叶结点为基本体素(立方体, 圆柱, 圆锥等); 中间结点为正则集合运算结点。 优点: 将复杂物体表示转换为简单物体之间运算,也可递归求出物体性质; 缺点: 方法有局限性,物体复杂时,这种表示不太适应。
空间位置枚举:使用该方法时, 先将空间分割成均匀的立方体网格, 然后根据物体所占据的网格位置来定义物体的形状和大小。 优点–适合所有形状三维物体表示, 容易实现物体的并交差及整体性质计算(对应着数组运算) 缺点–没有明确给定物体边界信息, 占据存储量大
八叉树(改进的空间位置枚举)
• 物体之间集合运算在八叉树中十分简单
物体并-两物体一共占有的空间;
物体交-两物体共同占有的空间。
运算时只需同时遍历参加集合运算两物体相应的 八叉树。
• 简化了隐藏线和隐藏面的消除
核心是排序(按离观察点远近排序);
八叉树中物体元素已按空间位置排成一定顺序, 同一层的八叉树结点通过优先级表示。
• 计算物体的性质(体积、质量)更简单
对物体的各项操作=》体元的操作。
第八章 消隐技术
1. 为何要进行隐藏面的消除?
消除图形的二义性
2. 简述区域子分消隐算法思想和描述。
区域子分算法是针对光栅扫描式图象显示器上 填色产生图形的。它是一种所谓分而治之的算 法。
整个屏幕称为窗口, 每一次把矩形的窗口等分成 4个相等的小矩形,分成的矩形也称为窗口, 见图 8.2。
每一次子分, 均要把要显示的多边形和窗口的 关系做一次判断。这种关系有以下4种:
–多边形包围了窗口(图8.3中情况1);
–多边形和窗口相交(图8.3中情况2);
–窗口包围了多边形(图8.3中情况3);
–窗口和多边形分离(图8.3中情况4)。
窗口和每个多边形的关系确定之后, 有些窗口 内的图形便可显示了, 它们属于下列情况:
(1)所有多边形都和窗口分离。这时只要把窗口 内所有的象素填上背景颜色。
(2)只有一个多边形和窗口相交,或这个多边形 包含在窗口内。这时先对窗口内每一象素填 上背景颜色, 再对窗口内多边形部分用扫描 线算法填色。
(3)只有一个多边形和窗口相交,这个多边形把 窗口整个包围在内;或虽有几个多边形和窗 口相交,但离观察者最近的一个多边形包围 了整个窗口。这时把整个窗口填上离观察者 最近的那个多边形的颜色。
对上述3种情况不成立的窗口再一分为四,见图 8.2。分得的窗口重复上述的处理。
• 重复处理后,窗口的边长越分越短, 分了若干次 后, 窗口的边长就和一个象素的宽度一样了。 这时, 这个窗口对应的象素的颜色可取成最靠 近观察者的多边形的颜色, 或和这个窗口相交 的多边形颜色的平均值。
3. 简述 Z 缓存消隐算法思想和描述。
深度缓存算法(Z-Buffer)是一种最简单的图象空间 面消隐算法, 既适应于多边形面也适用其它曲面。
• 它需要一个深度缓存数组ZB, 其大小与屏幕上象素 点的个数相同, 也与显示器的帧缓存FB的单元个数 相同, 彼此一一对应。
• 如图8.6, 在屏幕坐标系中, 过屏幕上任一象素点(i, j) 作平行于Z轴的射线R, 与物体表面上的多边形相交 于p 1 和p 2 点。
• 比较p 1 和p 2 的Z值, 将最大Z值存入深度缓存数组ZB, 最大Z值所对应点的颜色存入显示器的帧缓存FB。
算法描述
4. 比较几种主要的隐藏面的消除算法的特点。
区域子分算法是针对光栅扫描式图象显示器上 填色产生图形的。它是一种所谓分而治之的算 法
用边界盒的办法就可判定一些多边形和指定窗 口是无交的。因此, 这些多边形可从窗口多边 形序列中排除, 从而提高排序效率
深度缓存算法的优点是简单、可靠, 不需要对显示对象的 面预先进行排序;
• 缺点是要很大的Z缓冲器, 显示对象的表面和象素对应的 每一个点处都要计算它的Z值, 因而工作量较大。
第九章 真实感图形技术
1. 用框图描述三维真实感图形的产生流程。
–用数学方法建立所需三维场景的几何描述, 并将它们输入计算机;
–将三维几何描述转换为二维透视图;
–确定场景中的所有可见图(消隐);
–计算场景中可见面的颜色。(本章重点)
2. Phong 局部光照模型及其实现算法描述。
3. 叙述 Phong 多边形明暗处理算法原理, 与 Gouraud 算法比较它的优缺 点。
Phong明暗处理技术(Phong Shading)
• 思想: 对离散的法向量采样作双线性插值, 构造一个连续的法向量函数, 将这个连续的 法向量插值函数代入光亮度计算公式, 即得 到一个非线性的光亮度插值公式。 如图9.7所示, 任一点P处法向按插值方法由 各顶点处法向推出。
• 优点: 大大减少了马赫带效应;产生真实的高光效果。
缺点: 由于对每一像素光亮度计算还需使用 光照模型, 故计算量大。
Gouraud明暗处理技术(Gouraud Shading)
• 思想:对离散的光亮度采样作双线性插值 以获取连续的光亮度函数。
• 过程: a.计算出多边形顶点处的光亮度值, 作为 插值采样点; b.对多边形顶点的光亮度插值计算出多边 形内任一点的光亮度。
优缺点 效果尚好, 计算量小; 不能正确模拟高光, 会产生Mach带效应(光亮度 变化率不连续的边界处呈现亮带或黑带)。
4. 何为全局光照模型,典型的模型举例。
Phong模型仅考虑光源直接照射在景物表面产生 的反射光能, 因而是一种局部光照模型。 • 局部光照模型忽略了光能在环境景物之间的传 递, 很难生成高质量真实感图形。 原因: 未能考虑环境的漫射、镜面反射和规则透 射对景物表面产生的整体照明效果。
Whitted在Phong模型中增加了环境镜面反射光 亮度Is 和环境规则透射光亮度It , 从而模拟周围环境的光透射在景物表面上产生的理想镜面反 射和规则透射现象。
5. 实现真实感绘制的光线跟踪技术的主要思想和算法描述。
光线跟踪技术是为了求解Whitted模型而提出 一种高度真实感图形绘制技术.
6. 加速光线跟踪算法的主要方法。
- 包围盒技术
- 景物空间分割技术
7. 何谓纹理映射,简述其实现原理。
纹理:物体表面所呈现的表面细节。
生成颜色纹理的方法。其过程是:
在一平面区域(纹理空间)上预先定义纹理图案; 然后建立物体表面的点与纹理空间的点之间的 对应关系(即映射)。
主要有法向扰动法、分形生成技术等。
8. 试写出将一幅图片贴到三维圆柱体表面的算法。
第十章 OPEN GL 简介
1. 试设计一个室内三维环境, 并利用 OPEN GL 展示它的三维效果。要求:(1)包含基本的实体元素:球、多面体、锥体、柱体、曲面等; (2)有全局光照效果和纹理功能; (3)程序具有交互功能。
第二次大作业。