第1章 走进三维真彩世界 1
1.1 从《泰坦尼克号》说起 1
1.2 遨游虚拟世界 2
1.3 科学计算的可视化技术 3
1.4 对3D Studio MAX的思考 4
1.5 3D图形加速卡 4
第2章 OpenGL概述 6
2.1 OpenGL是什么 6
2.2 OpenGL的工作结构 7
2.3 OpenGL能做什么 7
2.4 OpenGL是怎样工作的 9
2.5 OpenGL图形操作步骤 10
2.6 OpenGL函数及结构 11
2.7 OpenGL数据类型 12
2.8 OpenGL句法 13
2.9 OpenGL状态变量 14
2.10 齐次坐标表示 21
第3章 极小化OpenGL 22
3.1 OpenGL像素格式 22
3.2 着色描述表 24
3.3 设置像素格式 24
3.3.1 填充PIXELFORMATDESCRIPTOR结构 24
3.3.2 设置像素格式 25
3.3.3 测试素像格式 26
3.4 创建着色描述表 27
3.5 极小化OpenGL 30
3.5.1 创建用户界面 31
3.5.2 极小化OpenGL 32
3.6 OpenGL颜色 38
3.7 程序清单 40
第4章 绘制二维图形 49
4.1 绘制点 49
4.2 绘制直线 51
4.2.1 绘制直线 51
4.2.2 线型 52
4.2.3 绘制折线 54
4.2.4 绘制闭合折线 55
4.3.1 绘制多边形 56
4.3 绘制多边形 56
4.3.2 多边形填充模式 59
4.4 绘制三角形 61
4.4.1 绘制三角形 61
4.4.2 绘制三角形片 62
4.4.3 绘制三角形扇 64
4.5 绘制四边形 66
4.5.1 绘制四边形 66
4.5.2 绘制四边形片 66
4.6 边的可见性 68
4.7 由面创建三维形体 70
4.8 建立应用程序TwoDShape 72
4.9 TwoDShape应用程序是如何运行的 80
5.1 建立GLTtans工程 82
第5章OpenGL变换 82
5.2 投影变换 85
5.2.1 平行投影 85
5.2.2 透视投影 86
5.3 几何变换 88
5.3.1 一个问题 88
5.3.2 平移变换 88
5.3.3 平移盒子 90
5.3.4 旋转变换 94
5.3.5 旋转盒子 94
5.3.6 缩放变换 95
5.3.7 放大盒子 95
5.4 视口变换 96
5.5 剪切变换 97
5.5.1 剪切变换 97
5.5.2 剪切盒子 98
5.6 OpenGL坐标系 98
5.7 集成三维物体 99
5.7.1 认识平移 100
5.7.2 认识旋转和缩放 101
5.7.3 集成8个盒子 101
5.8 矩阵堆栈 103
5.8.1矩阵椎栈的作用 103
5.8.2 绘制一辆卡车的平面模型 104
5.9 矩阵操作 107
6.1 创建和执行显示列表 110
第6章 显示列表 110
6.2 管理显示列表 113
第7章 模拟真实世界 117
7.1 生成真实图形 117
7.2 OpenGL的颜色模型 117
7.3 建立Light工程 119
7.4 OpenGL光照 125
7.4.1 光的类型 126
7.4.2 定义光的属性 126
7.4.3 光照盒子和球 127
7.5 物体的材质 132
7.5.1 定义材质 133
7.5.4 制作材质 134
7.5.3 材质和光的相互作用 134
7.5.2 辐射光 134
7.6 盒子就是盒子——法线的作用 140
7.7明暗着色处理 144
7.7.1 明暗着色处理 144
7.7.2 平滑盒子 146
7.8 深度测试 149
7.9 光照模型 151
7.9.1 全局环境光 151
7.9.2 镜面高光 151
7.9.3 双面光照 152
7.10 聚光 152
7.10.1定义聚光 152
7.10.2 用聚光照射物体 153
7.11.1 逻辑调色盘 162
7.11 创建逻辑调色盘 162
7.11.2 创建逻辑调色盘 163
7.12 应用程序Light使用导示 169
第8章 OpenGL动画 172
8.1 动画生成技术 172
8.2 OpenGL动画工作原理 172
8.3 让盒子动起来 173
第9章OpenGL图像处理基础 180
9.1位图和图像 180
9.1.1 读取图像 181
9.1.2 绘制图像 181
9.1.5 缩放图像 182
9.1.6 图像操作工程Image 182
9.1.4 拷贝图像 182
9.1.3 当前光栅位置 182
9.2 位图字符和文本 184
9.2.1 生成位图字符 185
9.2.2 生成文本 186
第10章 纹理贴图 188
10.1 纹理贴图技术 188
10.2 OpenGL纹理贴图 189
10.2.1 定义纹理 190
10.2.2 控制纹理 190
10.2.3 说明纹理贴图方式 191
10.2.4 定义纹理坐标 191
10.2.5 应用纹理贴图技术 192
10.3 位图纹理 196
10.3.1 设备无关位图(DIB)的数据结构 196
10.3.2 创建位图类 198
10.3.3 将位图贴到物体上 203
10.4 纹理坐标的自动生成 206
10.5 Mip贴图 209
第11章 增强图像效果 216
11.1 OpenGL融合 216
11.1.1 OpenGL融合操作 216
11.1.2 融合四边形 218
11.1.3 制作透明玻璃 222
11.2.2 OpenGL反走样 226
11.2.1 反走样思想 226
11.2 反走样 226
11.2.3 反走样的线框球和三角形 228
11.3 OpenGL雾化 232
11.3.1 确定雾的属性 233
11.3.2 雾化场景 234
第12章 实用库函数 238
12.1 标准二次曲面的生成 238
12.1.1 创建二次曲面对象 238
12.1.2 绘制二次曲面 240
12.2 图像处理 244
12.3 自动Mip贴图 246
13.2 Bezier曲线 252
13.2.1 Bezier曲线 252
13.1 概述 252
第13章 曲线和曲面 252
13.2.2 绘制一条拟正弦曲线 254
13.3 NURBS曲线 257
13.3.1 NURBS曲线的生成 257
13.3.2 绘制一条NURBS曲线 260
13.4 Bezier曲面 262
13.4.1 Bezier曲面的生成 262
13.4.2 绘制网格曲面 262
13.4.3 绘制一个填充曲面 265
13.5 将位图贴到曲面上 268
13.6 NURBS曲面 271
13.7 曲面的剪切 276
第14章 高级制作技术 280
14.1模板缓存及其应用 280
14.1.1 模板缓存的操作 280
14.1.2 模板缓存的应用 281
14.2 累积缓存及其应用 286
14.2.1 累积缓存的操作 287
14.2.2 全局反走样 287
14.2.3 景深模拟 293
第15章 交互技术 297
15.1 物体的选择 297
15.1.1 建立名称堆栈 297
15.1.2 拾取物体 298
15.1.3 选择模式的应用 298
15.2.1 反馈模式 308
15.2 信息反馈 308
15.2.2 反馈模式的应用 309
第16章 制作技术与应用实例 314
16.1 建立数学模型是解决问题的重要途径 314
16.1.1 解决问题的方案 314
16.1.2 乌龟和兔子的追逐、分形 315
16.1.3 程序清单 317
16.2 数据的组织:飘动的旗帜 328
16.2.1 解决问题的方案 328
16.2.2 飘动的旗帜 329
16.2.3 程序清单 331
16.3.1 解决问题的方案 349
16.3.2 滚动的西瓜 349
16.3 数据的组织:滚动的西瓜 349
16.3.3 程序清单 352
16.4 将画面输出到外部文件 367
16.4.1 将画面着色到位图设备 368
16.4.2 有选择地输出画面 372
16.4.3 程序清单 375
16.5 制作阴影 390
16.5.1 解决问题的途径 390
16.5.2 绘制铅笔及其阴影 391
16.5.3 程序清单 393
16.6 牛头刨床急回机构的运动仿真 437
16.6.1 程序设计思想 437
16.6.2 运动仿真的实现 439
16.6.3 程序清单 441
附录 配书CD-ROM内容介绍 470