第1章 计算机图形学概述 1
1.1 计算机图形学的概念与研究内容 1
1.1.1 图形的概念 1
1.1.2 计算机图形学的研究内容 2
1.2 计算机图形学的发展史 2
1.2.1 计算机图形设备和交互技术 2
1.2.2 计算机图形系统 3
1.2.3 计算机图形的标准化 4
1.3 计算机图形学的应用 5
习题 7
第2章 计算机绘图初步知识 8
2.1 如何在计算机上绘图 8
2.1.1 计算机绘图的一般方法 8
2.1.2 一般图形的显示流程 9
2.2 OpenGL图形软件包简介 10
2.2.1 基本几何图元的绘图函数 10
2.2.2 三维坐标变换函数 11
2.2.3 投影变换函数 11
2.2.4 颜色设置函数 12
2.2.5 光照模型函数 12
2.2.6 OpenGL绘图例子 12
习题 15
第3章 计算机图形系统及硬件基础 16
3.1 概述 16
3.1.1 计算机系统中的图形设备 16
3.1.2 图形的输入输出处理流程 16
3.1.3 图形工作站与PC机 17
3.2 图形显示原理 18
3.2.1 CRT显示器 18
3.2.2 液晶显示器 26
3.2.3 等离子显示器 28
3.2.4 3种显示技术的比较 29
3.2.5 显卡 29
3.2.6 显卡对OpenGL的支持 31
3.3 绘图设备 32
3.3.1 喷墨绘图机 32
3.3.2 激光打印机 32
3.3.3 笔式绘图机 33
3.4 图形输入设备 35
3.4.1 光笔 35
3.4.2 数字化仪和手写输入板 36
3.4.3 触摸屏 36
3.4.4 图形扫描仪 37
3.4.5 数字墨水 38
3.4.6 数据手套 39
3.4.7 三维鼠标 39
习题 39
第4章 基本光栅图形算法 41
4.1 直线生成算法 41
4.1.1 生成直线的DDA方法 42
4.1.2 正负法 43
4.1.3 Bresenham算法 44
4.1.4 改进后的Bresenham算法 45
4.2 圆弧生成算法 46
4.2.1 正负法 46
4.2.2 Bresenham生成圆弧的算法 48
4.2.3 圆弧的离散生成 49
4.2.4 椭圆生成算法 50
4.3 多边形的填充 51
4.3.1 多边形的表示方法 51
4.3.2 多边形填充的扫描线算法 52
4.3.3 边缘填充算法 56
4.3.4 边界标志算法 56
4.4 区域填充 58
4.4.1 区域的基本概念 58
4.4.2 简单的种子填充算法 60
4.4.3 扫描线种子填充算法 60
4.5 光栅图形的反走样算法 62
4.5.1 光栅图形的走样现象 62
4.5.2 提高分辨率的反走样算法 63
4.5.3 线段反走样算法 64
4.5.4 多边形反走样算法 64
习题 65
第5章 变换和裁剪 67
5.1 变换的数学基础 67
5.1.1 点和距离 67
5.1.2 矢量 67
5.1.3 矩阵 69
5.2 几何变换 71
5.2.1 基本变换 71
5.2.2 齐次坐标与变换的矩阵表示 74
5.2.3 变换的模式 75
5.3 裁剪 78
5.3.1 Sutherland-Cohen算法 79
5.3.2 Cyrus-Beck算法和梁友栋-Barsky算法 81
5.3.3 多边形裁剪 84
5.3.4 字符裁剪 86
5.4 OpenGL中简单的变换实例 86
习题 88
第6章 三维空间的观察 89
6.1 投影 89
6.1.1 透视投影 90
6.1.2 平行投影 91
6.1.3 任意坐标系到观察坐标系中的变换 92
6.1.4 射影变换 95
6.2 视见体到规范视见体的变换 96
6.2.1 平行投影视见体的规范化 97
6.2.2 透视投影视见体的规范化 98
6.3 用三维规范体裁剪 99
6.4 窗口到视口的变换 101
6.5 连续变换的处理 102
6.6 OpenGL中简单图形变换实例 103
6.6.1 CpenGL中的图形变换 103
6.6.2 OpenGL中的图形变换应用举例 104
习题 109
第7章 人机交互绘图技术 111
7.1 基本图形输入设备和基本交互任务 111
7.1.1 基本的图形输入设备 111
7.1.2 基本交互任务 112
7.2 人机交互输入模式 114
7.2.1 请求模式 114
7.2.2 样本模式 115
7.2.3 事件模式 115
7.2.4 输入方式的混合使用 116
7.3 常见辅助交互技术 116
7.3.1 几何约束 116
7.3.2 拖拽 117
7.3.3 在三视图上做三维输入 118
7.3.4 结构平面 119
7.3.5 新的交互技术 119
7.4 OpenGL中的交互式绘图技术 121
7.4.1 选择 121
7.4.2 反馈 124
7.5 人机交互的发展 128
习题 129
第8章 隐藏线和隐藏面的消除 131
8.1 可见面判断的有效技术 132
8.1.1 边界盒 132
8.1.2 后向面消除 133
8.1.3 非垂直投影转换成垂直投影 134
8.2 多面体隐藏线消除算法 135
8.2.1 算法的基本思想 135
8.2.2 确定边L和多边形E关系的技术 136
8.2.3 确定L的可见部分 137
8.3 基于窗口的子分算法 138
8.4 基于多边形的子分算法 140
8.5 z缓冲器算法和扫描线算法 141
8.6 优先级排序表算法 144
8.7 光线投射算法 146
8.8 曲面的隐藏线消除 146
习题 148
第9章 简单光照明模型 150
9.1 简单光照明模型 150
9.1.1 光源 150
9.1.2 材质 151
9.1.3 简单光照明模型 152
9.2 光滑明暗处理技术 155
9.2.1 Gouraud明暗处理技术 156
9.2.2 Phong明暗处理技术 158
9.3 OpenGL环境下的光照明模型 159
9.3.1 OpenGL中的颜色设置及光照明模型 160
9.3.2 OpenGL应用举例 163
习题 167
第10章 Bézier曲线曲面 169
10.1 曲线曲面的基础知识 169
10.1.1 曲线的表示 169
10.1.2 参数曲线的切矢量、弧长、法矢量和曲率 171
10.1.3 参数曲面的切平面和法矢量 174
10.1.4 参数曲线的多项式表示 174
10.1.5 参数连续性和几何连续性 175
10.2 Bézier曲线 177
10.2.1 Bézier曲线的定义 177
10.2.2 Bézier曲线的性质 178
10.2.3 例子 179
10.2.4 Bézier曲线性质的进一步讨论 180
10.2.5 Bézier曲线的拼接 182
10.2.6 Bézier曲线的离散生成 183
10.3 Bézier曲面 185
10.3.1 Bézier曲面的定义和性质 185
10.3.2 Bézier曲面的拼接 187
10.3.3 用Bézier曲面造型 187
10.3.4 Bézier曲面的离散生成 188
习题 190
第11章 B样条曲线曲面、Coons曲面和有理样条曲线曲面 192
11.1 B样条曲线曲面 192
11.1.1 B样条基函数的定义和性质 192
11.1.2 B样条曲线的定义和性质 193
11.1.3 B样条曲线的计算 195
11.1.4 三次均匀B样条曲线 197
11.1.5 例子 199
11.1.6 B样条曲面的定义和性质 201
11.1.7 用B样条曲面造型 201
11.2 Coons曲面 202
11.2.1 双线性Coons曲面 203
11.2.2 双三次Coons曲面 203
11.2.3 用Coons曲面造型 205
11.3 双三次Bézier曲面、B样条曲面和Coons曲面的互化 206
11.3.1 三次Bézier曲线、B样条曲线和Hermite曲线的互化 206
11.3.2 双三次Bézier曲面、B样条曲面和Coons曲面的互化 208
11.4 有理Bézier曲线曲面 209
11.4.1 有理曲线 209
11.4.2 有理Bézier曲线 210
11.4.3 有理Bézier曲线的齐次表示 210
11.4.4 二次有理Bézier曲线 211
11.4.5 有理Bézier曲线对圆的表示 213
11.4.6 有理Bézier曲面 214
习题 215
第12章 三维几何造型 216
12.1 三维物体在计算机内的表示 216
12.1.1 三维物体的表示模型 216
12.1.2 三维物体的表示方式 218
12.2 体素构造表示(CSG树表示) 218
12.2.1 物体间的正则集合运算 218
12.2.2 物体的CSG树表示 219
12.2.3 CSG物体性质的计算 220
12.2.4 用光线投射算法进行CSG物体的图形显示 222
12.3 边界表示法 223
12.3.1 物体的边界表示 223
12.3.2 半边数据结构 224
12.3.3 欧拉运算 227
12.3.4 Sweep运算和局部运算 229
12.3.5 集合运算 230
12.4 空间分割表示 233
12.4.1 单元分解表示 233
12.4.2 八叉树表示 233
12.5 基于图像的三维造型 236
12.5.1 双目视觉的基本原理 236
12.5.2 双目视觉算法的具体实现 237
习题 240
第13章 真实感图形的绘制 242
13.1 光线跟踪技术 242
13.1.1 简单透明模型 243
13.1.2 Whitted光照明模型 244
13.1.3 光线跟踪技术 245
13.1.4 加速光线跟踪技术 246
13.2 基于物理的光照明模型 249
13.2.1 基本概念及基本光照模型 249
13.2.2 基于物理的光照明模型 251
13.2.3 Cook-Torrance光照明模型 252
13.3 阴影 255
13.3.1 z缓冲器阴影算法 256
13.3.2 阴影体算法 257
13.3.3 光线跟踪阴影技术及半影算法 258
13.4 纹理 259
13.4.1 纹理的生成 260
13.4.2 纹理的映射 262
13.4.3 Catmull纹理映射算法 263
13.4.4 Mip-map纹理映射技术 265
13.4.5 凹凸纹理映射技术 267
13.5 图形反走样技术 268
13.5.1 A缓冲器方法 269
13.5.2 光线跟踪的图形反走样技术 272
13.6 辐射度方法 273
13.6.1 辐射度方程 274
13.6.2 形状因子的性质 277
13.6.3 半立方体 277
13.6.4 辐射度方程的求解 279
13.7 基于图像的模型和绘制 282
13.7.1 全视函数 283
13.7.2 图像中隐含的几何信息 285
13.7.3 含有深度信息的图像 286
习题 288
第14章 科学计算可视化 290
14.1 科学计算可视化的基本步骤和方法分类 290
14.1.1 科学计算可视化的基本步骤 290
14.1.2 科学计算可视化方法分类 291
14.2 科学计算可视化处理的数据 292
14.2.1 数据集的组成 292
14.2.2 数据集的格式 292
14.2.3 数据的属性值 293
14.3 面绘制方法 293
14.3.1 基于等值线的生成方法 293
14.3.2 基于体素的生成方法 295
14.3.3 几何变形模型方法 300
14.4 体绘制方法 300
14.4.1 体绘制方法出现的背景 300
14.4.2 体光照模型 301
14.4.3 以图像空间为序的体绘制方法 303
14.4.4 以物体空间为序的体绘制方法 304
14.4.5 体绘制方法中的一些典型的加速方法 306
14.4.6 Shear-warp体绘制方法 306
14.5 矢量场和张量场的可视化 307
14.5.1 矢量场可视化 307
14.5.2 张量场的可视化 308
习题 308
第15章 颜色 311
15.1 颜色特性 311
15.2 标准基色和色彩图 314
15.2.1 XYZ颜色模型 314
15.2.2 CIE色度图 315
15.3 颜色模型 317
15.3.1 RGB模型 317
15.3.2 CMY模型 318
15.3.3 YIQ模型 318
15.3.4 HSV模型 319
15.4 颜色模型间的相互转换 319
15.5 颜色的交互选择及应用 322
习题 323
附录 开放图形库OpenGL 324
OpenGL简介 324
OpenGL中的常用函数 325
OpenGL显示流程 328