第1章 图形系统和模型 1
1.1 计算机图形学的应用 1
1.2 图形系统 3
1.3 图像:物理的和合成的 7
1.4 成像系统 11
1.5 虚拟照相机模型 14
1.6 程序员接口 16
1.7 图形绘制系统的体系结构 22
1.8 可编程流水线 25
1.9 性能特征 25
小结和注释 26
建议阅读资料 27
习题 27
第2章 图形学编程 29
2.1 Sierpinski镂垫 29
2.2 编写二维图形应用程序 30
2.3 OpenGL API 34
2.4 图元和属性 37
2.5 颜色 44
2.6 观察 49
2.7 控制函数 52
2.8 Sierpinski镂垫绘制程序 56
2.9 多边形和递归 57
2.10 三维Sierpinski镂垫 59
2.11 绘制隐函数曲线 63
小结和注释 69
建议阅读资料 70
习题 71
第3章 输入和交互 74
3.1 交互 74
3.2 输入设备 75
3.3 客户和服务器 80
3.4 显示列表 81
3.5 显示列表和建模 87
3.6 事件驱动输入编程 88
3.7 菜单 93
3.8 拾取 94
3.9 一个简单的CAD程序 100
3.10 建立交互式模型 105
3.11 交互式动画程序 108
3.12 交互式程序的设计 111
3.13 逻辑运算 112
小结和注释 117
建议阅读资料 117
习题 118
第4章 几何对象和变换 121
4.1 标量、点和向量 121
4.2 三维图元 129
4.3 坐标系和标架 130
4.4 OpenGL中的标架 140
4.5 建模一个彩色立方体 143
4.6 仿射变换 149
4.7 平移、旋转和缩放 151
4.8 变换的齐次坐标表示 154
4.9 变换的级联 158
4.10 OpenGL变换矩阵 164
4.11 三维应用程序的接口 167
4.12 四元数 171
小结和注释 174
建议阅读资料 174
习题 175
第5章 观察 177
5.1 经典观察和计算机观察 177
5.2 计算机观察 181
5.3 定位照相机 182
5.4 简单的投影 191
5.5 OpenGL中的投影 194
5.6 隐藏面消除 196
5.7 交互式网格显示 198
5.8 平行投影变换矩阵 202
5.9 透视投影变换矩阵 206
5.10 投影和阴影 210
小结和注释 212
建议阅读资料 213
习题 213
第6章 光照和明暗绘制 215
6.1 光线和材质 215
6.2 光源 218
6.3 Phong光照模型 221
6.4 向量的计算 227
6.5 多边形明暗绘制 231
6.6 通过递归细分逼近球面 234
6.7 OpenGL中的光源 237
6.8 OpenGL中的材质属性 239
6.9 球面模型的明暗绘制 240
6.10 全局照明 242
小结和注释 243
建议阅读资料 244
习题 244
第7章 从顶点到片元 246
7.1 图形绘制流水线的基本实现策略 246
7.2 图形绘制系统的4个主要任务 248
7.3 裁剪 251
7.4 线段的裁剪 251
7.5 多边形的裁剪 255
7.6 其他图元的裁剪 257
7.7 三维裁剪 258
7.8 光栅化 260
7.9 Bresenham算法 263
7.10 多边形光栅化算法 264
7.11 隐藏面消除 267
7.12 反走样 276
7.13 显示方面的问题 278
小结和注释 283
建议阅读资料 284
习题 284
第8章 离散技术 287
8.1 缓存 287
8.2 数字图像 288
8.3 缓存的写操作 290
8.4 OpenGL中的位操作与像素操作 293
8.5 举例 298
8.6 映射方法 300
8.7 纹理映射 301
8.8 OpenGL中的纹理映射 306
8.9 纹理生成 314
8.10 环境贴图 315
8.11 合成技术 319
8.12 多通道绘制与累积缓存 324
8.13 采样与走样 328
小结和注释 333
建议阅读资料 334
习题 334
第9章 可编程着色器 336
9.1 可编程流水线 336
9.2 着色语言 337
9.3 OpenGL扩展 338
9.4 OpenGL着色语言 339
9.5 OpenGL着色语言 342
9.6 着色器与OpenGL程序的连接 346
9.7 移动顶点 350
9.8 基于顶点程序的光照计算 354
9.9 片元着色器 357
9.10 基于顶点与基于片元的光照计算 358
9.11 sampler变量类型 359
9.12 立方体贴图 361
9.13 凹凸映射 366
小结和注释 372
建议阅读资料 372
习题 373
第10章 层级建模方法 374
10.1 图符和实例 374
10.2 层级模型 375
10.3 机器人手臂 377
10.4 树与树的遍历 379
10.5 使用树形数据结构 382
10.6 动画 385
10.7 图形对象 386
10.8 场景图 391
10.9 一个简单的场景图API 393
10.10 开放场景图(OSG) 406
10.11 图形和因特网 408
10.12 其他树形结构 410
小结和注释 414
建议阅读资料 415
习题 415
第11章 过程建模方法 417
11.1 基于算法的模型 417
11.2 基于物理的模型和粒子系统 418
11.3 牛顿粒子 419
11.4 求解粒子系统方程 423
11.5 约束条件 425
11.6 一个简单的子系统 428
11.7 基于语言的模型 431
11.8 递归方法和分形 434
11.9 过程噪声 439
小结和注释 442
建议阅读资料 442
习题 442
第12章 曲线和曲面 444
12.1 曲线和曲面的表示形式 444
12.2 设计准则 448
12.3 三次参数多项式曲线 450
12.4 插值 450
12.5 Hermite曲线和曲面 454
12.6 Bezier曲线和曲面 457
12.7 三次B样条 460
12.8 普通B样条 464
12.9 曲线和曲面的绘制 467
12.10 Utah茶壶模型 472
12.11 代数曲面 473
12.12 OpenGL中的曲线和曲面 477
小结和注释 481
建议阅读资料 482
习题 482
第13章 高级绘制 484
13.1 超越流水线绘制结构 484
13.2 光线跟踪 485
13.3 构建一个简单的光线跟踪器 487
13.4 绘制方程 491
13.5 辐射度方法 493
13.6 RenderMan 498
13.7 并行绘制 499
13.8 基于图像的绘制 504
小结和注释 506
建议阅读资料 507
习题 507
附录A 示例程序 509
附录B 空间 567
附录C 矩阵 574
附录D OpenGL函数简介 581
参考文献 593