图书介绍
OpenGL编程指南 原书第6版pdf电子书版本下载
- (美)DaveShreiner著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111242017
- 出版时间:2008
- 标注页数:499页
- 文件大小:55MB
- 文件页数:513页
- 主题词:图形软件,OpenGL-程序设计-指南
PDF下载
下载说明
OpenGL编程指南 原书第6版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 OpenGL简介 1
1.1什么是OpenGL 1
1.2一段简单的OpenGL代码 3
1.3 OpenGL函数的语法 4
1.4 OpenGL是个状态机 5
1.5 OpenGL渲染管线 6
1.5.1显示列表 7
1.5.2求值器 7
1.5.3基于顶点的操作 7
1.5.4图元装配 7
1.5.5像素操作 7
1.5.6纹理装配 8
1.5.7光栅化 8
1.5.8片断操作 8
1.6与OpenGL相关的函数库 8
1.6.1包含文件 9
1.6.2 GLUT,OpenGL实用工具库 10
1.7动画 12
1.7.1暂停刷新 13
1.7.2动画=重绘+交换 14
第2章 状态管理和绘制几何物体 16
2.1绘图工具箱 17
2.1.1清除窗口 17
2.1.2指定颜色 19
2.1.3强制完成绘图操作 20
2.1.4坐标系统工具箱 21
2.2描述点、直线和多边形 21
2.2.1什么是点、直线和多边形 22
2.2.2指定顶点 24
2.2.3 OpenGL几何图元 24
2.3基本状态管理 28
2.4显示点、直线和多边形 29
2.4.1点的细节 29
2.4.2直线的细节 30
2.4.3多边形的细节 33
2.5法线向量 38
2.6顶点数组 39
2.6.1步骤1:启用数组 40
2.6.2步骤2:指定数组的数据 41
2.6.3步骤3:解引用和渲染 43
2.6.4混合数组 47
2.7缓冲区对象 50
2.7.1创建缓冲区对象 50
2.7.2激活缓冲区对象 50
2.7.3用数据分配和初始化缓冲区对象 51
2.7.4更新缓冲区对象的数据值 52
2.7.5清除缓冲区对象 53
2.7.6使用缓冲区对象存储顶点数组数据 53
2.8属性组 55
2.9创建多边形表面模型的一些提示 57
第3章 视图 63
3.1简介:照相机比喻 64
3.1.1一个简单的例子:绘制立方体 66
3.1.2通用的变换函数 69
3.2视图和模型变换 70
3.2.1对变换进行思考 71
3.2.2模型变换 73
3.2.3视图变换 76
3.3投影变换 80
3.3.1透视投影 80
3.3.2正投影 82
3.3.3视景体裁剪 83
3.4视口变换 83
3.4.1定义视口 83
3.4.2变换深度坐标 84
3.5和变换相关的故障排除 84
3.6操纵矩阵堆栈 86
3.6.1模型视图矩阵堆栈 88
3.6.2投影矩阵堆栈 88
3.7其他裁剪平面 89
3.8一些组合变换的例子 91
3.8.1创建太阳系模型 91
3.8.2创建机器人手臂 93
3.9逆变换和模拟变换 96
第4章 颜色 99
4.1颜色感知 99
4.2计算机颜色 100
4.3 RGBA和颜色索引模式 102
4.3.1 RGBA显示模式 102
4.3.2颜色索引模式 104
4.3.3在RGBA和颜色索引模式中进行选择 104
4.3.4切换显示模式 105
4.4指定颜色和着色模型 105
4.4.1在RGBA模式下指定颜色 106
4.4.2在颜色索引模式下指定颜色 106
4.4.3指定着色模型 107
第5章 光照 110
5.1隐藏表面消除工具箱 111
5.2现实世界和OpenGL光照 112
5.2.1环境光、散射光、镜面光和发射光 113
5.2.2材料颜色 113
5.2.3光和材料的RGB值 113
5.3一个简单的例子:渲染光照球体 114
5.4创建光源 116
5.4.1颜色 118
5.4.2位置和衰减 111
5.4.3聚光灯 119
5.4.4多光源 120
5.4.5控制光源的位置和方向 121
5.5选择光照模型 125
5.5.1全局环境光 126
5.5.2局部的观察点或无限远的观察点 126
5.5.3双面光照 126
5.5.4镜面辅助颜色 126
5.5.5启用光照 127
5.6定义材料属性 127
5.6.1散射和环境反射 128
5.6.2镜面反射 129
5.6.3发射光颜色 129
5.6.4更改材料属性 129
5.6.5颜色材料模式 131
5.7和光照有关的数学知识 133
5.7.1材料的发射光 134
5.7.2经过缩放的全局环境光 134
5.7.3光源的贡献 134
5.7.4完整的光照计算公式 135
5.7.5镜面辅助颜色 136
5.8颜色索引模式下的光照 136
第6章 混合、抗锯齿、雾和多边形偏移 138
6.1混合 139
6.1.1源因子和目标因子 139
6.1.2启用混合 141
6.1.3使用混合方程式组合像素 141
6.1.4混合的样例用法 143
6.1.5一个混合的例子 144
6.1.6使用深度缓冲区进行三维混合 146
6.2抗锯齿 149
6.2.1对点和直线进行抗锯齿处理 150
6.2.2使用多重采样对几何图元进行抗锯齿处理 155
6.2.3对多边形进行抗锯齿处理 158
6.3雾 158
6.3.1使用雾 159
6.3.2雾方程式 161
6.4点参数 166
6.5多边形偏移 168
第7章 显示列表 170
7.1为什么使用显示列表 170
7.2一个使用显示列表的例子 171
7.3显示列表的设计哲学 173
7.4创建和执行显示列表 174
7.4.1命名和创建显示列表 175
7.4.2存储在显示列表里的是什么 176
7.4.3执行显示列表 177
7.4.4层次式显示列表 178
7.4.5管理显示列表索引 179
7.5执行多个显示列表 179
7.6用显示列表管理状态变量 183
第8章 绘制像素、位图、字体和图像 186
8.1位图和字体 187
8.1.1当前光栅位置 188
8.1.2绘制位图 189
8.1.3选择位图的颜色 190
8.1.4字体和显示列表 190
8.1.5定义和使用一种完整的字体 191
8.2图像 193
8.3图像管线 198
8.3.1像素包装和解包 199
8.3.2控制像素存储模式 200
8.3.3像素传输操作 203
8.3.4像素映射 204
8.3.5放大、缩小或翻转图像 205
8.4读取和绘制像素矩形 208
8.4.1像素矩形的绘制过程 208
8.4.2像素矩形的读取过程 209
8.5使用缓冲区对象存取像素矩形数据 210
8.5.1使用缓冲区对象传输像素数据 210
8.5.2使用缓冲区对象提取像素数据 212
8.6提高像素绘图速度的技巧 213
8.7图像处理子集 213
8.7.1颜色表 214
8.7.2卷积 218
8.7.3颜色矩阵 222
8.7.4柱状图 224
8.7.5最小最大值 226
第9章 纹理贴图 228
9.1概述和示例 231
9.1.1纹理贴图的步骤 231
9.1.2一个示例程序 232
9.2指定纹理 234
9.2.1纹理代理 237
9.2.2替换纹理图像的全部或一部分 238
9.2.3一维纹理 240
9.2.4三维纹理 242
9.2.5压缩纹理图像 245
9.2.6使用纹理边框 247
9.2.7 mipmap:多重细节层 247
9.3过滤 254
9.4纹理对象 256
9.4.1命名纹理对象 256
9.4.2创建和使用纹理对象 257
9.4.3清除纹理对象 259
9.4.4常驻纹理工作集 259
9.5纹理函数 260
9.6分配纹理坐标 263
9.6.1计算正确的纹理坐标 264
9.6.2重复和截取纹理 265
9.7纹理坐标自动生成 268
9.7.1创建轮廓线 268
9.7.2球体纹理 272
9.7.3立方图纹理 273
9.8多重纹理 274
9.9纹理组合器函数 278
9.10在纹理之后应用辅助颜色 282
9.10.1在禁用光照时使用辅助颜色 282
9.10.2启用光照后的辅助镜面颜色 282
9.11点块纹理 282
9.12纹理矩阵堆栈 283
9.13深度纹理 284
9.13.1创建阴影图 284
9.13.2生成纹理坐标并进行渲染 285
第10章 帧缓冲区 288
10.1缓冲区及其用途 289
10.1.1颜色缓冲区 290
10.1.2清除缓冲区 291
10.1.3选择用于读取和写入的颜色缓冲区 291
10.1.4缓冲区的屏蔽 293
10.2片断测试和操作 293
10.2.1裁剪测试 294
10.2.2 alpha测试 294
10.2.3模板测试 295
10.2.4深度测试 299
10.2.5遮挡查询 300
10.2.6混合、抖动和逻辑操作 301
10.3累积缓冲区 303
10.3.1场景抗锯齿 304
10.3.2运动模糊 308
10.3.3景深 309
10.3.4柔和阴影 311
10.3.5微移 311
第11章 分格化和二次方程表面 313
11.1多边形分格化 313
11.1.1创建分格化对象 314
11.1.2分格化回调函数 314
11.1.3分格化属性 318
11.1.4多边形定义 321
11.1.5删除分格化对象 323
11.1.6提高分格化性能的建议 323
11.1.7描述GLU错误 323
11.1.8向后兼容性 323
11.2二次方程表面:渲染球体、圆柱体和圆盘 324
11.2.1管理二次方程对象 325
11.2.2控制二次方程对象的属性 325
11.2.3二次方程图元 326
第12章 求值器和NURBS 331
12.1前提条件 331
12.2求值器 332
12.2.1一维求值器 332
12.2.2二维求值器 336
12.2.3使用求值器进行纹理处理 339
12.3 GLU的NURBS接口 341
12.3.1一个简单的NURBS例子 341
12.3.2管理NURBS对象 344
12.3.3创建NURBS曲线或表面 347
12.3.4修剪NURBS表面 350
第13章 选择和反馈 353
13.1选择 353
13.1.1基本步骤 354
13.1.2创建名字堆栈 354
13.1.3点击记录 355
13.1.4一个选择例子 356
13.1.5挑选 358
13.1.6编写使用选择的程序的一些建议 366
13.2反馈 367
13.2.1反馈数组 368
13.2.2在反馈模式下使用标记 369
13.2.3一个反馈例子 369
第14章 OpenGL高级技巧 373
14.1错误处理 374
14.2 OpenGL版本 375
14.2.1工具函数库版本 76
14.2.2窗口系统扩展版本 376
14.3标准的扩展 376
14.4实现半透明效果 378
14.5轻松实现淡出效果 378
14.6使用后缓冲区进行物体选择 379
14.7低开销的图像转换 380
14.8显示层次 381
14.9抗锯齿字符 381
14.10绘制圆点 383
14.11图像插值 383
14.12制作贴花 383
14.13使用模板缓冲区绘制填充的凹多边形 384
14.14寻找冲突区域 385
14.15 阴影 386
14.16隐藏直线消除 387
14.16.1使用多边形偏移实现隐藏直线消除 387
14.16.2使用模版缓冲区实现隐藏直线消除 388
14.17纹理贴图的应用 388
14.18绘制深度缓冲的图像 389
14.19 Dirichlet域 389
14.20使用模板缓冲区实现生存游戏 390
14.21 glDrawPixels()和glCopyPixels()的其他应用 391
第15章 OpenGL着色语言 393
15.1 OpenGL图形管线和可编程着色器 393
15.1.1顶点处理 394
15.1.2片断处理 395
15.2使用GLSL着色器 396
15.2.1着色器示例 396
15.2.2 OpenGL/GLSL接口 396
15.3 OpenGL着色语言 401
15.4使用GLSL创建着色器 401
15.4.1程序起点 401
15.4.2声明变量 402
15.4.3聚合类型 403
15.4.4计算不变性 408
15.4.5语句 409
15.4.6函数 411
15.4.7在GLSL程序中使用OpenGL状态值 412
15.5在着色器中访问纹理贴图 412
15.6着色器预处理器 413
15.6.1预处理器指令 414
15.6.2宏定义 414
15.6.3预处理器条件 414
15.6.4编译器控制 415
15.6.5扩展处理 415
15.6.6预点着色器的细节 416
15.6.7片断着色器 420
附录A 操作顺序 422
附录B 状态变量 426
附录C OpenGL和窗口系统 447
附录D GLUT(OpenGL实用工具库)基础知识 461
附录E 计算法线向量 465
附录F 齐次坐标和变换矩阵 469
附录G 编程提示 473
附录H OpenGL的不变性规则 476
附录I OpenGL着色语言内置的变量和函数 477
术语表 491