第1部分 程序基础 2
第1章 三维世界 2
1.1“回到真实”——三维图形的发展 2
1.2三维世界的成像 3
1.2.1空间位置和坐标 3
1.2.2透视投影 3
1.3OpenGL介绍 4
1.3.1OpenGL语言 4
1.3.2OpenGL工作方式 5
1.3.3OpenGL绘制过程 5
1.4数据类型、函数和状态变量 6
1.4.1数据类型 6
1.4.2函数及后缀 7
1.4.3状态变量 9
2.1.1像素格式 19
2.1通向“真实”的条件——程序框架 19
第2章 视场的建立 19
2.1.2渲染描述表 21
2.2创建视场 21
2.2.1创建VisualC++程序 21
2.2.2设置像素格式与创建渲染描述表 26
2.2.3通用基础框架程序架构 34
2.2.4扩展到深邃的天空——全屏显示 36
2.2.5多学一点——变化的天空 42
2.2.6基础程序清单及重点 43
第2部分 形体建模 58
第3章 点与线 58
3.1“世界”的开始——点 58
3.1.1二维的点 58
3.1.2三维的点 62
3.2线和曲线 67
3.2.2三维的线 68
3.2.1二维的线 68
3.2.3折线 69
3.2.4闭合曲线 70
3.3线型和点的变化 74
3.3.1线型 74
3.3.2点的变化 75
3.3.3多学一点——七彩星空 79
3.3.4多学一点——彩虹 85
3.3.5程序重点清单 92
第4章 面和体 104
4.1三角形 104
4.1.1基本的三角形 104
4.1.2前面、后面的绘制模式 107
4.1.3三角形片 108
4.1.4三角形扇 109
4.2.1基本的四边形 111
4.2四边形 111
4.2.2四边形片 112
4.3多边形 116
4.3.1多边形与边的可见性 116
4.3.2面的填充 117
4.4“产生”的体 119
4.4.1立方体 119
4.4.2填充立方体面 120
4.4.3多学一点——蝴蝶的翅膀 124
4.4.4程序重点清单 132
第5章 显示列表 152
5.1显示列表的创建 152
5.2显示列表的执行 158
5.3显示列表的管理 159
5.4多学一点——旋转的红伞 162
5.5多学一点——雨中行 169
5.6程序重点清单 177
第6章 图形变换 201
6.1屏幕坐标 201
6.2投影变换 202
6.2.1平行投影 202
6.2.2透视投影 203
6.3视区变换 204
6.4剪切变换 205
6.5几何变换 206
6.5.1平移变换 206
6.5.2旋转变换 206
6.5.3缩放变换 207
6.6矩阵操作与堆栈 213
6.6.1矩阵操作 213
6.6.2矩阵堆栈 214
6.6.3多学一点——天涯共此时 215
6.6.4程序重点清单 226
第3部分 渲染色彩 250
第7章 色彩构成与光照 250
7.1OpenGL颜色的基本构成 250
7.1.1OpenGL颜色模型 250
7.1.2深度测试 252
7.1.3渲染处理 254
7.2颜色的相互作用 260
7.2.1光的定义 260
7.2.2物体的材质 262
7.2.3法线的作用 263
7.2.4全局的光照模型 263
7.2.5深入学习——彩色气球 264
7.2.6程序重点清单 273
8.1OpenGL颜色的融合 292
第8章 融合与透明 292
8.2融合的操作 293
8.3复杂的透明 299
8.4深入学习——绿茶 301
8.5程序重点清单 309
第9章 反走样与雾化 328
9.1反走样 328
9.1.1OpenGL反走样 328
9.1.2反走样函数与定义 329
9.2雾化 330
9.2.1OpenGL雾化 330
9.2.2雾化函数与定义 330
9.2.3深入学习——荷塘月色 340
9.2.4程序重点清单 349
10.1.1图像操作 370
10.1图像位图操作 370
第10章 图像贴图与文字显示 370
10.1.2位图操作 373
10.1.3材质纹理贴图 374
10.2显示汉字的方法 384
10.2.1显示汉字方法一——贴图 385
10.2.2显示汉字方法二——显示列表 385
10.2.3程序重点清单 396
第4部分 动画的应用开发 418
第11章 动画与实时处理 418
11.1动画 418
11.1.1动画生成 418
11.1.2双缓存技术 418
11.2动画的因果 419
11.2.1变化的形状 419
11.2.2变化的位置 434
11.2.3变化的颜色 444