第1章 计算机图形学综述 1
1.1 图和表 1
1.2 计算机辅助设计 3
1.3 虚拟现实环境 8
1.4 数据可视化 10
1.5 教学与培训 15
1.6 计算机艺术 17
1.7 娱乐 21
1.8 图像处理 23
1.9 图形用户界面 24
1.10 小结 25
参考文献 25
第2章 图形系统概述 26
2.1 视频显示设备 26
2.2 光栅扫描系统 39
2.3 图形工作站和观察系统 42
2.4 输入设备 44
2.5 硬拷贝设备 51
2.6 图形网络 53
2.7 因特网上的图形 53
2.8 图形软件 53
2.9 OpenGL简介 56
2.10 小结 62
参考文献 63
练习题 63
第3章 输出图元 65
3.1 坐标系统 65
3.2 OpenGL中指定二维世界坐标系统 66
3.3 OpenGL画点函数 67
3.4 OpenGL画线函数 69
3.5 画线算法 70
3.6 并行画线算法 77
3.7 帧缓存值的装载 79
3.8 OpenGL曲线函数 80
3.9 圆生成算法 80
3.10 椭圆生成算法 86
3.11 其他曲线 94
3.12 并行曲线算法 97
3.13 像素编址和对象的几何要素 97
3.14 填充区图元 100
3.15 多边形填充区 100
3.16 OpenGL多边形填充区函数 109
3.17 OpenGL顶点数组 114
3.18 像素阵列图元 117
3.19 OpenGL像素阵列函数 117
3.20 字符图元 120
3.21 OpenGL字符函数 122
3.22 图形分割 123
3.23 OpenGL显示列表 123
3.24 OpenGL显示窗口重定形函数 125
3.25 小结 128
示例程序 130
参考文献 138
练习题 138
第4章 图元的属性 141
4.1 OpenGL状态变量 141
4.2 颜色和灰度 141
4.3 OpenGL颜色函数 143
4.4 点的属性 147
4.5 线的属性 148
4.6 曲线属性 151
4.7 OpenGL点属性函数 153
4.8 OpenGL线属性函数 154
4.9 填充区属性 156
4.10 通用扫描线填充算法 159
4.11 凸多边形的扫描线填充 163
4.12 曲线边界区域的扫描线填充 163
4.13 不规则边界区域的填充方法 163
4.14 OpenGL填充区属性函数 167
4.15 字符属性 171
4.16 OpenGL字符属性函数 175
4.17 反走样 175
4.18 OpenGL反走样函数 182
4.19 OpenGL查询函数 182
4.20 OpenGL属性组 183
4.21 小结 183
参考文献 185
练习题 185
第5章 几何变换 188
5.1 基本的二维几何变换 188
5.2 矩阵表示和齐次坐标 194
5.3 逆变换 196
5.4 二维复合变换 196
5.5 其他二维变换 207
5.6 几何变换的光栅方法 212
5.7 OpenGL光栅变换 213
5.8 二维坐标系间的变换 214
5.9 三维空间的几何变换 216
5.10 三维平移 216
5.11 三维旋转 218
5.12 三维缩放 229
5.13 三维复合变换 231
5.14 其他三维变换 234
5.15 三维坐标系间的变换 235
5.16 仿射变换 236
5.17 OpenGL几何变换函数 236
5.18 小结 242
参考文献 243
练习题 243
第6章 二维观察 246
6.1 二维观察流水线 246
6.2 裁剪窗口 247
6.3 规范化和视口变换 249
6.4 OpenGL二维观察函数 253
6.5 裁剪算法 259
6.6 二维点裁剪 260
6.7 二维线裁剪 260
6.8 多边形填充区裁剪 271
6.9 曲线的裁剪 279
6.10 文字的裁剪 280
6.11 小结 281
参考文献 283
练习题 283
第7章 三维观察 285
7.1 三维观察概念综述 285
7.2 三维观察流水线 288
7.3 三维观察坐标系参数 290
7.4 世界坐标系到观察坐标系的变换 294
7.5 投影变换 294
7.6 正投影 295
7.7 斜投影 299
7.8 透视投影 304
7.9 视口变换和三维屏幕坐标系 315
7.10 OpenGL三维观察函数 316
7.11 三维裁剪算法 321
7.12 OpenGL任选裁剪平面 327
7.13 小结 328
参考文献 328
练习题 329
第8章 三维对象的表示 330
8.1 多面体 330
8.2 OpenGL多面体函数 330
8.3 曲面 333
8.4 二次曲面 334
8.5 超二次曲面 336
8.6 OpenGL二次曲面和三次曲面函数 337
8.7 柔性对象 342
8.8 样条表示 343
8.9 三次样条插值方法 348
8.10 Bézier样条曲线 355
8.11 Bézier曲面 362
8.12 B样条曲线 364
8.13 B样条曲面 372
8.14 beta样条 372
8.15 有理样条 373
8.16 样条表示之间的转换 375
8.17 样条曲线和曲面的显示 377
8.18 OpenGL的逼近样条函数 380
8.19 扫描表示法 389
8.20 结构实体几何法 390
8.21 八叉树 392
8.22 BSP树 394
8.23 分形几何方法 394
8.24 形状语法和其他过程方法 417
8.25 粒子系统 418
8.26 基于物理的方法 419
8.27 数据集可视化 421
8.28 小结 426
参考文献 428
练习题 429
第9章 可见面判别算法 431
9.1 可见面判别算法的分类 431
9.2 后向面判别 431
9.3 深度缓存算法 432
9.4 A缓存算法 435
9.5 扫描线算法 436
9.6 深度排序算法 437
9.7 BSP树算法 440
9.8 区域细分算法 440
9.9 八叉树算法 442
9.10 光线投射算法 443
9.11 可见性检测算法的比较 444
9.12 曲面 444
9.13 线框可见性算法 446
9.14 OpenGL可见性检查函数 447
9.15 小结 449
参考文献 450
练习题 450
第10章 光照模型与面绘制算法 452
10.1 光源 452
10.2 表面光照效果 456
10.3 基本光照模型 457
10.4 透明表面 466
10.5 雾气效果 469
10.6 阴影 469
10.7 照相机参数 470
10.8 光强度显示 470
10.9 半色调模式和抖动技术 473
10.10 多边形绘制算法 478
10.11 光线跟踪方法 482
10.12 辐射度光照模型 496
10.13 环境映射 501
10.14 光子映射 502
10.15 添加表面细节 502
10.16 用多边形模拟表面细节 504
10.17 纹理映射 504
10.18 凹凸映射 508
10.19 帧映射 509
10.20 OpenGL光照和表面绘制函数 510
10.21 OpenGL纹理函数 517
10.22 小结 527
参考文献 529
练习题 530
第11章 图形用户界面和交互输入方法 532
11.1 图形数据的输入 532
11.2 输入设备的逻辑分类 532
11.3 图形数据的输入功能 536
11.4 交互式构图技术 537
11.5 虚拟现实环境 540
11.6 OpenGL支持交互式输入设备的函数 540
11.7 OpenGL的菜单功能 555
11.8 图形用户界面的设计 561
11.9 小结 563
参考文献 564
练习题 565
第12章 颜色模型和颜色应用 567
12.1 光的特性 567
12.2 颜色模型 569
12.3 标准基色和色度图 570
12.4 RGB颜色模型 573
12.5 YIQ颜色模型 574
12.6 CMY和CMYK颜色模型 575
12.7 HSV颜色模型 576
12.8 HLS颜色模型 580
12.9 颜色选择及其应用 581
12.10 小结 581
参考文献 582
练习题 582
第13章 计算机动画 583
13.1 计算机动画的光栅方法 583
13.2 动画序列的设计 584
13.3 传统动画技术 585
13.4 通用计算机动画功能 586
13.5 计算机动画语言 586
13.6 关键帧系统 587
13.7 运动的描述 592
13.8 关节链形体动画 593
13.9 周期性运动 595
13.10 OpenGL动画子程序 595
13.11 小结 598
参考文献 599
练习题 599
第14章 层次建模 601
14.1 基本建模概念 601
14.2 建模软件包 603
14.3 通用层次建模方法 604
14.4 使用OpenGL显示列表的层次建模 607
14.5 小结 607
参考文献 607
练习题 607
第15章 图形文件格式 609
15.1 图像文件结构 609
15.2 降色方法 610
15.3 文件压缩技术 611
15.4 主流文件格式的结构 616
15.5 小结 620
参考文献 621
练习题 621
附录A 计算机图形学的数学基础 623
参考文献 656
索引 668