图书介绍
OpenGL编程指南 原书第9版PDF|Epub|txt|kindle电子书版本网盘下载
![OpenGL编程指南 原书第9版](https://www.shukui.net/cover/56/30476652.jpg)
- (美)约翰·克赛尼希,格雷厄姆·塞勒斯,戴夫·施莱尔著;王锐等译 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111575115
- 出版时间:2017
- 标注页数:664页
- 文件大小:132MB
- 文件页数:682页
- 主题词:图形软件-指南
PDF下载
下载说明
OpenGL编程指南 原书第9版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 OpenGL概述1
1.1 什么是OpenGL1
1.2 初识OpenGL程序2
1.3 OpenGL语法6
1.4 OpenGL渲染管线7
1.4.1 准备向OpenGL传输数据8
1.4.2 将数据传输到OpenGL8
1.4.3 顶点着色9
1.4.4 细分着色9
1.4.5 几何着色9
1.4.6 图元装配9
1.4.7 剪切9
1.4.8 光栅化9
1.4.9 片元着色10
1.4.10 逐片元的操作10
1.5 第一个程序:深入分析11
1.5.1 进入main()函数11
1.5.2 OpenGL的初始化过程12
1.5.3 第一次使用OpenGL进行渲染21
第2章 着色器基础24
2.1 着色器与OpenGL25
2.2 OpenGL的可编程管线25
2.3 OpenGL着色语言概述27
2.3.1 使用GLSL构建着色器27
2.3.2 存储限制符33
2.3.3 语句36
2.3.4 计算的不变性40
2.3.5 着色器的预处理器42
2.3.6 编译器的控制44
2.3.7 全局着色器编译选项44
2.4 数据块接口45
2.4.1 uniform块45
2.4.2 指定着色器中的uniform块46
2.4.3 从应用程序中访问uniform块47
2.4.4 buffer块53
2.4.5 in/out块、位置和分量53
2.5 着色器的编译54
2.6 着色器子程序59
2.6.1 GLSL的子程序设置59
2.6.2 选择着色器子程序60
2.7 独立的着色器对象62
2.8 SPIR-V64
2.8.1 选择SPIR-V的理由64
2.8.2 SPIR-V与OpenGL66
2.8.3 使用GLSL在OpenGL中生成SPIR-V67
2.8.4 Glslang69
2.8.5 SPIR-V中包含了什么69
第3章 OpenGL绘制方式70
3.1 OpenGL图元70
3.1.1 点71
3.1.2 线、条带与循环线72
3.1.3 三角形、条带与扇面72
3.2 OpenGL缓存数据75
3.2.1 创建与分配缓存75
3.2.2 向缓存输入和输出数据77
3.2.3 访问缓存的内容81
3.2.4 丢弃缓存数据86
3.3 顶点规范86
3.3.1 深入讨论VertexAttribPointer87
3.3.2 静态顶点属性的规范90
3.4 OpenGL的绘制命令92
3.4.1 图元的重启动99
3.4.2 多实例渲染102
第4章 颜色、像素和片元112
4.1 基本颜色理论113
4.2 缓存及其用途114
4.2.1 缓存的清除116
4.2.2 缓存的掩码117
4.3 颜色与OpenGL118
4.3.1 颜色的表达与OpenGL118
4.3.2 平滑数据插值119
4.4 片元的测试与操作121
4.4.1 剪切测试122
4.4.2 多重采样的片元操作123
4.4.3 模板测试124
4.4.4 模板的例子125
4.4.5 深度测试127
4.4.6 融混129
4.4.7 逻辑操作133
4.4.8 遮挡查询134
4.4.9 条件渲染138
4.5 多重采样139
4.6 逐图元的反走样141
4.6.1 线段的反走样142
4.6.2 多边形的反走样143
4.7 像素数据的读取和拷贝143
4.8 拷贝像素矩形145
第5章 视口变换、裁减、剪切与反馈147
5.1 观察视图148
5.1.1 视图模型148
5.1.2 相机模型148
5.1.3 正交视图模型151
5.2 用户变换152
5.2.1 矩阵乘法的回顾153
5.2.2 齐次坐标155
5.2.3 线性变换与矩阵157
5.2.4 法线变换167
5.2.5 OpenGL矩阵168
5.3 OpenGL变换170
5.3.1 高级技巧:用户裁减和剪切172
5.3.2 OpenGL变换的控制173
5.4 transform feedback174
5.4.1 transform feedback对象175
5.4.2 transform feedback缓存176
5.4.3 配置transform feedback的变量179
5.4.4 transform feedback的启动和停止185
5.4.5 transform feedback的示例:粒子系统187
第6章 纹理与帧缓存192
6.1 纹理综述193
6.2 基本纹理类型194
6.3 创建并初始化纹理195
6.4 指定纹理数据200
6.4.1 显式设置纹理数据200
6.4.2 从缓存中加载纹理202
6.4.3 从文件加载图像203
6.4.4 获取纹理数据206
6.4.5 纹理数据的排列布局207
6.5 纹理格式211
6.5.1 内部格式211
6.5.2 外部格式214
6.6 压缩纹理216
6.7 采样器对象218
6.8 纹理的使用220
6.8.1 纹理坐标222
6.8.2 排列纹理数据225
6.8.3 使用多重纹理227
6.9 复杂纹理类型229
6.9.1 3D纹理229
6.9.2 纹理数组230
6.9.3 立方体映射纹理231
6.9.4 阴影采样器236
6.9.5 深度-模板纹理237
6.9.6 缓存纹理238
6.10 纹理视图240
6.11 滤波方式243
6.11.1 线性滤波243
6.11.2 使用和生成mipmap245
6.11.3 计算mipmap层次249
6.11.4 mipmap细节层次的控制250
6.12 高级纹理查询函数250
6.12.1 显式的细节层次控制250
6.12.2 显式的梯度设置251
6.12.3 带有偏移参数的纹理获取函数251
6.12.4 投影纹理252
6.12.5 在着色器中执行纹理查询253
6.12.6 纹素收集255
6.12.7 组合功能的特殊函数255
6.13 无绑定纹理256
6.13.1 纹理句柄256
6.13.2 纹理驻留257
6.13.3 采样无绑定纹理258
6.14 稀疏纹理259
6.14.1 稀疏纹理的数据提交259
6.14.2 稀疏纹理的页面260
6.15 点精灵261
6.15.1 纹理点精灵261
6.15.2 控制点的显示263
6.16 帧缓存对象264
6.17 渲染到纹理贴图266
6.17.1 抛弃渲染数据268
6.17.2 渲染缓存269
6.17.3 创建渲染缓存的存储空间270
6.17.4 帧缓存附件272
6.17.5 帧缓存的完整性274
6.17.6 帧缓存的无效化275
6.17.7 多重渲染缓存的同步写入276
6.17.8 选择颜色缓存来进行读写操作277
6.17.9 双源融混279
6.18 本章总结281
6.18.1 纹理回顾281
6.18.2 纹理的最佳实践281
第7章 光照与阴影283
7.1 光照介绍284
7.2 经典光照模型284
7.2.1 不同光源类型的片元着色器285
7.2.2 将计算移到顶点着色器294
7.2.3 多个光源和材质296
7.2.4 光照坐标系统302
7.2.5 经典光照模型的局限302
7.3 光照模型进阶303
7.3.1 半球光照303
7.3.2 基于图像的光照306
7.3.3 球面光照310
7.4 阴影映射313
7.4.1 创建一张阴影贴图314
7.4.2 使用阴影贴图316
第8章 程序式纹理320
8.1 程序式纹理321
8.1.1 规则的花纹322
8.1.2 玩具球328
8.1.3 晶格335
8.1.4 程序式着色方法的总结336
8.2 凹凸贴图映射336
8.2.1 应用程序设置338
8.2.2 顶点着色器340
8.2.3 片元着色器341
8.2.4 法线贴图343
8.3 程序式纹理的反走样343
8.3.1 走样的来源344
8.3.2 避免走样问题345
8.3.3 提高分辨率346
8.3.4 高频率的反走样347
8.3.5 频率截断354
8.3.6 程序式反走样的总结356
8.4 噪声356
8.4.1 噪声的定义358
8.4.2 噪声纹理362
8.4.3 权衡365
8.4.4 一个简单的噪声着色器366
8.4.5 湍流368
8.4.6 大理石369
8.4.7 花岗岩370
8.4.8 木纹370
8.4.9 噪声的总结373
8.5 更多信息373
第9章 细分着色器375
9.1 细分着色器375
9.2 细分面片376
9.3 细分控制着色器377
9.3.1 生成输出面片的顶点378
9.3.2 细分控制着色器的变量378
9.3.3 细分的控制379
9.4 细分计算着色器383
9.4.1 设置图元生成域384
9.4.2 设置生成图元的面朝向384
9.4.3 设置细分坐标的间隔384
9.4.4 更多的细分计算着色器layout选项384
9.4.5 设置顶点的位置385
9.4.6 细分计算着色器的变量385
9.5 细分实例:茶壶386
9.5.1 处理面片输入顶点386
9.5.2 计算茶壶的细分坐标387
9.6 更多的细分技术389
9.6.1 视口相关的细分389
9.6.2 细分的共享边与裂缝391
9.6.3 置换贴图映射392
第10章 几何着色器393
10.1 创建几何着色器394
10.2 几何着色器的输入和输出396
10.2.1 几何着色器的输入396
10.2.2 特殊的几何着色器图元399
10.2.3 几何着色器的输出403
10.3 产生图元405
10.3.1 几何体的裁减405
10.3.2 几何体的扩充406
10.4 transform feedback高级篇410
10.4.1 多重输出流411
10.4.2 图元查询414
10.4.3 使用transform feedback的结果416
10.5 几何着色器的多实例化423
10.6 多视口与分层渲染425
10.6.1 视口索引425
10.6.2 分层渲染429
10.7 本章总结432
10.7.1 几何着色器回顾433
10.7.2 几何着色器的最佳实践433
第11章 内存435
11.1 使用纹理存储通用数据436
11.1.1 将纹理绑定到图像单元440
11.1.2 图像数据的读取和写入441
11.2 着色器存储缓存对象445
11.3 原子操作和同步446
11.3.1 图像的原子操作446
11.3.2 缓存的原子操作454
11.3.3 同步对象455
11.3.4 图像限定符和屏障459
11.3.5 高性能的原子计数器467
11.4 示例:顺序无关的透明470
11.4.1 工作原理471
11.4.2 初始化472
11.4.3 渲染473
11.4.4 排序和融混477
11.4.5 结果480
第12章 计算着色器481
12.1 概述481
12.2 工作组及其执行482
12.3 通信与同步487
12.3.1 通信488
12.3.2 同步489
12.4 示例490
12.4.1 物理模拟491
12.4.2 图像处理496
12.5 本章总结500
12.5.1 计算着色器回顾500
12.5.2 计算着色器的最佳实践500
附录A 第三方支持库502
附录B OpenGL ES与WebGL514
附录C 内置GLSL变量与函数525
附录D 状态变量576
附录E 齐次坐标与变换矩阵620
附录F 纹理、帧缓存与渲染缓存的浮点格式625
附录G OpenGL程序的调试与优化631
附录H 缓存对象的布局645
术语表648