第1章 OpenGL详解 1
1.1 OpenGL的发展历史 1
1.2 OpenGL规范 2
1.2.1数据类型 2
1.2.2命令 3
1.3 OpenGL执行模型 4
1.4帧缓冲区 4
1.5状态 6
1.6 OpenGL实用工具包 6
1.7 OpenGL管线 7
1.7.1绘制几何对象 8
1.7.2绘制图像 12
1.8坐标变换 13
1.9纹理 16
第2章 图元绘制 20
2.1点和线段的绘制 20
2.1.1程序入口 22
2.1.2回调函数OnDisplay 23
2.1.3回调函数OnReshape 25
2.1.4点的大小与线的宽度 27
2.1.5图形对象的颜色 28
2.2折线的绘制 29
2.2.1使用双缓冲区 31
2.2.2改变背景色 31
2.2.3设置视区坐标系 31
2.2.4绘制折线 32
2.3三角形的绘制 32
2.3.1设置白色背景 35
2.3.2绘制简单三角形 35
2.3.3绘制连续三角形 35
2.3.4绘制三角扇形 36
2.4四边形的绘制 37
2.4.1绘制简单四边形 38
2.4.2绘制连续四边形 38
2.5多边形的绘制 38
2.6轮廓与填充 39
2.6.1使用菜单 43
2.6.2多边形光栅模式 45
2.6.3隐藏轮廓线 47
2.7圆的绘制 47
2.7.1利用绘制正多边形函数绘制圆 47
2.7.2绘制圆 51
第3章 三维绘图 52
3.1绘制三维点 52
3.1.1旋转变换 54
3.1.2矩阵堆栈 54
3.1.3三维投影变换 55
3.1.4绘图 55
3.2利用硬件信息改变点的大小 56
3.3利用平面图元构造三维实体 58
3.3.1设置光照 63
3.3.2设置三维对象的材质 64
3.3.3法向量及其归一化 65
3.3.4绘制三维实体 66
3.3.5深度检测 66
3.3.6实体图与线框图 67
3.4 GLUT提供的实体对象 68
3.4.1三维实体 73
3.4.2重新归一化法向量 78
3.4.3设置视点 78
3.4.4高光反射 78
第4章 观察与几何变换 80
4.1变换观察点 80
4.2几何变换 84
4.2.1平移变换 85
4.2.2旋转变换 87
4.2.3缩放变换 90
4.3用户自定义几何变换 93
4.3.1用户自定义变换矩阵 94
4.3.2使用用户定义的矩阵 95
4.4投影变换 96
4.4.1正交投影 96
4.4.2透视投影 99
第5章 颜色、光照和材质 104
5.1 OpenGL中的颜色 104
5.1.1计算机的颜色模式 104
5.1.2颜色的使用 105
5.1.3着色模式 111
5.2 OpenGL中的光照 113
5.2.1光源类型 113
5.2.2场景中的光源 114
5.3 OpenGL中的材质 118
5.3.1材质与光照的关系 118
5.3.2表现材质的方法 120
5.3.3表面法线与正反面 126
第6章 颜色的高级应用 132
6.1混合与透明 132
6.1.1颜色混合 132
6.1.2透明 136
6.2反走样 138
6.3雾化 142
第7章 图像及图像处理 149
7.1位图图像 149
7.1.1定义位图图像 151
7.1.2显示位图图像 152
7.2字体 153
7.2.1定义字体 156
7.2.2显示列表 156
7.2.3构造光栅字体 159
7.2.4显示光栅字体 160
7.3像素图像 161
7.3.1载入图像 163
7.3.2显示图像 163
7.4对像素图像的一些操作 165
7.4.1缩放图像 169
7.4.2反射图像 169
7.4.3颜色通道分离 170
7.4.4灰度图变换 172
7.4.5绘制负像 173
第8章 纹理映射 176
8.1概述 176
8.1.1纹理映射的一般步骤 176
8.1.2纹理映射实例 177
8.2纹理环境 182
8.2.1纹理函数 188
8.2.2“替换”映射 189
8.2.3“调节”映射 189
8.2.4“贴纸”映射 189
8.2.5“混合”映射 190
8.3纹理对象 190
8.3.1绑定纹理 194
8.3.2映射 195
8.4透明纹理 196
8.5一维纹理 201
8.5.1创建一维纹理 205
8.5.2一维映射 205
第9章 纹理映射的特殊应用 208
9.1利用一维纹理制造光影效果 208
9.1.1生成并载入一维纹理 216
9.1.2绘制圆环 216
9.1.3显示及动画 217
9.1.4辅助函数 217
9.2绘制自发光体 218
9.2.1空纹理图像 225
9.2.2绘制螺旋管 225
9.2.3绘制光芒 225
9.2.4动态显示 227
9.3各向异性过滤和常规过滤 227
9.3.1各向异性过滤 233
9.3.2常规过滤 234
9.4利用立方体映射实现球体反射 235
9.4.1“帧”类 249
9.4.2立方体映射 250
9.4.3绘制背景和球体 250
9.4.4移动观察 251
9.5多重纹理 251
9.5.1使用多重纹理 261
9.5.2在Win32下使用多重纹理 261
第10章 曲线与曲面 263
10.1二次曲面 263
10.1.1创建二次曲面对象 266
10.1.2设置二次曲面绘制参数 266
10.1.3绘制二次曲面对象 267
10.1.4以不同形式绘制二次曲面 268
10.2利用变形生成对象 270
10.3样条 273
10.3.1 Bezier曲线与曲面 273
10.3.2 B样条曲线与曲面 280
10.4修剪NURBS曲面 290
10.4.1修剪曲线 293
10.4.2曲面修剪 293
10.5曲面纹理映射 294
10.5.1三维点结构及Bezier混合函数计算 298
10.5.2 Bezier曲面面片结构 299
10.5.3绘制带有纹理的Bezier曲面 299
第11章 选择和反馈 301
11.1选择 301
11.1.1创建名字堆栈 305
11.1.2设置选择缓冲区 306
11.1.3拾取及其处理 306
11.1.4层次选择 308
11.2反馈 312
11.2.1建立反馈缓冲区 318
11.2.2反馈数据 318
11.2.3反馈过程及其处理 319
第12章 Windows下的OpenGL编程 320
12.1利用MFC进行编程 320
12.1.1对View类进行增补 327
12.1.2初始化 328
12.1.3善后处理 330
12.1.4窗口尺寸的改变 331
12.1.5绘图 331
12.1.6其他修改 331
12.2利用Windows API进行编程 332
12.2.1生成应用程序窗口 340
12.2.2定义窗口过程 342
12.2.3绘制场景 343
12.2.4处理键盘消息 344
第13章 案例集锦(一) 346
13.1网格曲面及其纹理映射 346