第1章 计算机图形学导论 1
1.1 计算机图形学概述 1
1.1.1 图形的表示方法 1
1.1.2 表示图形的数据准备 2
1.1.3 图形的显示 2
1.2 光栅刷新图形显示器 4
1.3 阴极射线管的基础知识 9
1.4 视频知识基础 11
1.4.1 美国标准视频制式 11
1.4.2 高清晰度电视 12
1.5 平板显示器 13
1.5.1 平板式CRT 13
1.5.2 等离子显示器 13
1.5.3 荧光显示器 15
1.5.4 液晶显示器 16
1.6.1 静电绘图仪 18
1.6 硬拷贝输出设备 18
1.6.2 喷墨绘图仪 19
1.6.3 热敏绘图仪 22
1.6.4 染料升华打印机 22
1.6.5 笔墨绘图仪 23
1.6.6 激光打印机 25
1.6.7 彩色胶片照相机 27
1.8 物理交互设备 28
1.7 逻辑交互设备 28
1.9 数据生成设备 34
1.10 图形用户界面 37
第2章 光栅扫描图形学 46
2.1 直线生成算法 46
2.2 数字微分分析法 47
2.3 Bresenham算法 50
2.3.1 整数Bresenham算法 53
2.3.2 通用Bresenham算法 54
2.3.3 快速直线光栅化算法 56
2.4 圆的生成—Bresenham算法 57
2.5 椭圆的生成 64
2.6 一般函数的光栅化 69
2.7 扫描转换—显示的生成 71
2.7.1 实时扫描转换 71
2.7.2 使用指针的简单活化边表 72
2.7.3 排序活化边表 72
2.7.4 使用链表的活化边表 74
2.7.5 修改链表 74
2.8 图像压缩 77
2.8.1 行程编码 77
2.8.2 区域图像压缩 79
2.9 显示直线、字符和多边形 82
2.9.1 线段显示 82
2.9.2 字符显示 84
2.9.3 实区域扫描转换 84
2.10 多边形填充 85
2.11 简单的奇偶扫描转换算法 88
2.12 有序边表多边形扫描转换 90
2.12.1 简单的有序边表算法 90
2.12.2 更有效的有序边表算法 92
2.13 边填充算法 95
2.14 边标志算法 97
2.15 种子填充算法 99
2.15.1 简单的种子填充算法 100
2.15.2 扫描线种子填充算法 101
2.16 图形反走样基础 106
2.16.1 超采样 107
2.16.2 直线 107
2.16.3 多边形内部 113
2.16.4 简单区域反走样 114
2.16.5 卷积积分与反走样算法 117
2.16.6 滤波函数 119
2.17 半色调技术 120
2.17.1 模版化 121
2.17.2 阈值和误差分布 124
2.17.3 有序抖动 128
第3章 裁剪 131
3.1 二维裁剪 131
3.1.1 简单可见性判别算法 131
3.1.2 端点编码 133
3.2 Cohen-Sutherland线段细分裁剪算法 136
3.3 中点分割算法 140
3.4 凸区域的二维参数化线段裁剪 144
3.5 Cyrus-Beck算法 148
3.5.1 部分可见线段 150
3.5.2 完全可见线段 151
3.5.3 完全不可见线段 151
3.5.4 Cyrus-Beck算法的形式化描述 153
3.5.5 非规则窗口 156
3.6 Liang-Barsky二维裁剪 157
3.7 Nicholl-Lee-Nicholl二维裁剪 164
3.8 内裁剪和外裁剪 167
3.9 凸多边形的判定和内法线确定 168
3.10 凹多边形分割 172
3.11 三维裁剪 172
3.12 三维中点分割算法 175
3.13 三维Cyrus-Beck算法 177
3.14 Liang-Barsky三维裁剪 181
3.15 齐次坐标裁剪 185
3.15.1 Cyrus-Beck算法 185
3.15.2 Liang-Barsky算法 186
3.16 内法矢量和三维凸集合的确定 189
3.17 凹体分割 190
3.18 多边形裁剪 192
3.19 逐次多边形裁剪—Sutherland-Hodgman算法 193
3.19.1 确定一个点的可见性 194
3.19.2 线段求交 196
3.19.3 算法 197
3.20 Liang-Barsky多边形裁剪 202
3.20.2 折点 203
3.20.1 进点和出点 203
3.20.3 算法设计 205
3.20.4 水平边和垂直边 207
3.20.5 算法 208
3.21 凹裁剪区域—Weiler-Atherton算法 211
3.22 字符裁剪 218
第4章 可见面 220
4.1 引言 220
4.2 浮动水平线算法 221
4.2.1 上浮水平线 221
4.2.2 下浮水平线 222
4.2.3 函数插值 223
4.2.4 走样 226
4.2.5 算法 227
4.2.6 交叉影线 233
4.3 Roberts算法 235
4.3.1 体矩阵 235
4.3.2 平面方程 237
4.3.3 取景变换和体矩阵 240
4.3.4 自隐藏面 241
4.3.5 被其他物体遮挡的线 244
4.3.6 贯穿体 252
4.3.7 完全可见线段 252
4.3.8 算法 255
4.4 Warnock算法 263
4.4.2 分割准则 265
4.4.1 四叉树结构 265
4.4.3 多边形与窗口的关系 267
4.4.4 多边形与窗口关系的分层次辨别 272
4.4.5 寻找包围多边形 273
4.4.6 基本算法 275
4.5 Appel算法 280
4.6 附着光晕的线消隐算法 282
4.7 Weiler-Atherton算法 284
4.8 曲面分割算法 287
4.9 Z缓冲器算法 288
4.9.1 采用增量法计算深度值 290
4.9.2 层次Z缓冲器算法 295
4.10 A缓冲器算法 296
4.11 优先级排序表算法 298
4.12 Newell-Newell-Sancha算法 299
4.13 二叉空间剖分算法 302
4.13.1 Schumacker算法 303
4.13.3 构造BSP树 304
4.13.2 二叉空间剖分树 304
4.13.4 BSP树遍历 306
4.13.5 背面剔除 308
4.13.6 小结 308
4.14 扫描线算法 308
4.15 扫描线Z缓冲器算法 309
4.16 区间扫描线算法 312
4.16.1 不可见相关性 319
4.17 曲面扫描线算法 320
4.16.2 景物空间扫描线算法 320
4.18 八叉树 323
4.18.1 八叉树显示 325
4.18.2 线性八叉树 327
4.18.3 八叉树的操作 327
4.18.4 布尔运算 328
4.18.5 搜索相邻单元 328
4.19 移动立方体算法 328
4.20 可见面光线跟踪算法 332
4.20.1 包围体 334
4.20.2 丛 337
4.20.3 建立丛的树结构 338
4.20.4 优先级排序 338
4.20.5 空间剖分 339
4.20.6 均匀空间剖分 340
4.20.7 非均匀空间剖分 342
4.20.8 光线-物体求交 344
4.20.9 不透明可见面算法 347
4.21 小结 350
第5章 绘制 351
5.1 引言 351
5.2 光照模型 352
5.3 一个简单的光照模型 353
5.3.1 镜面反射 354
5.3.2 中值矢量 357
5.4 确定表面法向 359
5.5 确定反射光线矢量 360
5.6 Gouraud明暗处理 363
5.7 Phong明暗处理 366
5.8 具有特殊效果的简单光照模型 370
5.9 基于物理的光照模型 372
5.9.1 能量和辐射强度 372
5.9.2 基于物理的光照模型 373
5.9.3 Torrance-Sparrow关于粗糙表面的模型 374
5.9.4 与波长相关的菲涅耳项 377
5.9.5 颜色转变 378
5.9.6 光源的物理特性 379
5.10 透明 380
5.10.1 透明材料的折射效果 381
5.10.2 简单的透明模型 382
5.10.3 Z缓冲器算法中的透明处理 383
5.10.4 伪透明 384
5.11 阴影 385
5.11.1 扫描转换阴影算法 388
5.11.2 多步可见面阴影算法 389
5.11.3 阴影体算法 391
5.11.4 半影 394
5.11.5 光线跟踪阴影算法 396
5.12 纹理 397
5.12.1 映射函数 402
5.12.2 两步纹理映射 405
5.12.3 环境映射 407
5.12.4 凹凸纹理 409
5.12.5 过程纹理 411
5.12.6 纹理反走样 413
5.12.7 Mipmapping 417
5.12.8 区域求和表 417
5.13 随机模型 418
5.14 采用光线跟踪的整体光照模型 420
5.15 采用光线跟踪的更完整的整体光照模型 431
5.16 光线跟踪技术的最新进展 433
5.16.1 圆锥跟踪 433
5.16.3 一般光束跟踪 434
5.16.2 光束跟踪 434
5.16.4 随机采样 435
5.16.5 从光源出发的光线跟踪 437
5.17 辐射度 437
5.17.1 封闭性 439
5.17.2 形状因子 440
5.17.3 半立方体 442
5.17.5 子结构 447
5.17.4 绘制 447
5.17.6 逐步求精 448
5.17.7 排序 449
5.17.8 泛光贡献 449
5.17.9 自适应剖分 450
5.17.10 半立方体方法的不精确性 451
5.17.11 半立方体方法外的其他方法 454
5.17.12 层次辐射度和聚集 456
5.17.13 镜面环境的辐射度 457
5.17.14 绘制方程 458
5.18 光线跟踪和辐射度的结合 458
5.19 颜色 462
5.19.1 色度 462
5.19.2 颜色的三刺激理论 463
5.19.3 原色系统 464
5.19.4 颜色匹配实验 464
5.19.5 色度图 466
5.19.6 1931年CIE色度图 468
5.19.7 均匀颜色空间 471
5.19.8 颜色域的局限 472
5.19.9 颜色系统之间的相互转化 473
5.19.10 NTSC颜色系统 476
5.19.11 颜色立方体 477
5.19.12 CMYK颜色系统 477
5.19.13 Ostwald颜色系统 478
5.19.14 HSV颜色系统 478
5.19.15 HLS颜色系统 481
5.19.16 Munsell颜色系统 483
5.19.17 Panetoneㄏ低? 484
5.19.18 Gamma校正 484
5.20 彩色图像的量化 485
5.20.1 位截断法 486
5.20.2 流行色法 487
5.20.3 中分截断法 489
5.20.4 八叉树量化 491
5.20.5 顺序标量量化 494
5.20.6 其他量化算法 496
5.21 颜色重现 497
5.21.1 平版打印 497
5.21.2 分色 498
5.21.3 色调重现 498
5.21.4 灰度平衡 498
5.21.5 黑色分离 498
5.21.6 量化效果 498
5.21.8 色域映射 499
5.21.7 校准 499
5.22 特殊绘制效果 501
5.22.1 双色套印 501
5.22.2 绘制自然物体 503
5.22.3 粒子系统 503
附录A 习题 504
参考文献 510
索引 536