图书介绍

OpenGL编程指南 原书第8版【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

OpenGL编程指南 原书第8版
  • (美)DAVESHREINER,GRAHAMSELLERS,JOHNKESSENICH,BILLLICEA-KANE著;王锐等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111481133
  • 出版时间:2014
  • 标注页数:651页
  • 文件大小:125MB
  • 文件页数:668页
  • 主题词:图形软件-指南

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

OpenGL编程指南 原书第8版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 第一个程序:深入分析10

1.5.1 进入main()函数10

1.5.2 OpenGL的初始化过程12

1.5.3 第一次使用OpenGL进行渲染21

第2章 着色器基础25

2.1 着色器与OpenGL26

2.2 OpenGL的可编程管线26

2.3 OpenGL着色语言概述28

2.3.1 使用GLSL构建着色器28

2.3.2 存储限制符34

2.3.3 语句37

2.3.4 计算的不变性41

2.3.5 着色器的预处理器43

2.3.6 编译器的控制45

2.3.7 全局着色器编译选项45

2.4 数据块接口46

2.4.1 uniform块46

2.4.2 指定着色器中的uniform块47

2.4.3 从应用程序中访问uniform块48

2.4.4 buffer块53

2.4.5 in/out块54

2.5 着色器的编译54

2.5.1 我们的LoadShaders()函数58

2.6 着色器子程序58

2.6.1 GLSL的子程序设置59

2.6.2 选择着色器子程序60

2.7 独立的着色器对象62

第3章 OpenGL绘制方式64

3.1 OpenGL图元64

3.1.1 点65

3.1.2 线、条带与循环线66

3.1.3 三角形、条带与扇面66

3.2 OpenGL缓存数据69

3.2.1 创建与分配缓存69

3.2.2 向缓存输入和输出数据71

3.2.3 访问缓存的内容75

3.2.4 丢弃缓存数据80

3.3 顶点规范80

3.3.1 深入讨论VertexAttrib-Pointer81

3.3.2 静态顶点属性的规范84

3.4 OpenGL的绘制命令86

3.4.1 图元的重启动92

3.5 多实例渲染96

3.5.1 多实例的顶点属性97

3.5.2 在着色器中使用实例计数器102

3.5.3 多实例方法的回顾104

第4章 颜色、像素和帧缓存105

4.1 基本颜色理论106

4.2 缓存及其用途107

4.2.1 缓存的清除109

4.2.2 缓存的掩码110

4.3 颜色与OpenGL110

4.3.1 颜色的表达与OpenGL111

4.3.2 顶点颜色112

4.3.3 光栅化114

4.4 多重采样115

4.4.1 采样着色116

4.5 片元的测试与操作117

4.5.1 剪切测试118

4.5.2 多重采样的片元操作118

4.5.3 模板测试119

4.5.4 模板的例子120

4.5.5 深度测试122

4.5.6 融混124

4.5.7 融混参数125

4.5.8 控制融混的参数125

4.5.9 融混方程127

4.5.10 抖动128

4.5.11 逻辑操作128

4.5.12 遮挡查询129

4.5.13 条件渲染132

4.6 逐图元的反走样133

4.6.1 线段的反走样134

4.6.2 多边形的反走样135

4.7 帧缓存对象135

4.7.1 渲染缓存137

4.7.2 创建渲染缓存的存储空间138

4.7.3 帧缓存附件140

4.7.4 帧缓存的完整性142

4.7.5 帧缓存的无效化144

4.8 多重渲染缓存的同步写入145

4.8.1 选择颜色缓存来进行读写操作146

4.8.2 双源融混148

4.9 像素数据的读取和拷贝150

4.10 拷贝像素矩形152

第5章 视口变换、剪切与反馈153

5.1 观察视图154

5.1.1 视图模型154

5.1.2 相机模型154

5.1.3 正交视图模型157

5.2 用户变换158

5.2.1 矩阵乘法的回顾159

5.2.2 齐次坐标161

5.2.3 线性变换与矩阵163

5.2.4 法线变换173

5.2.5 OpenGL矩阵174

5.3 OpenGL变换177

5.3.1 高级技巧:用户剪切178

5.4 transform feedback179

5.4.1 transform feedback对象180

5.4.2 transform feedback缓存181

5.4.3 配置transform feedback的变量183

5.4.4 transform feedback的启动和停止187

5.4.5 transform feedback的示例:粒子系统189

第6章 纹理195

6.1 纹理映射196

6.2 基本纹理类型197

6.3 创建和初始化纹理198

6.3.1 纹理格式202

6.4 代理纹理207

6.5 设置纹理数据208

6.5.1 显式设置纹理数据208

6.5.2 使用Pixel Unpack缓存210

6.5.3 从帧缓存拷贝数据211

6.5.4 从文件加载图像212

6.5.5 查询纹理数据215

6.5.6 纹理数据布局215

6.6 采样器对象219

6.6.1 采样器参数220

6.7 使用纹理221

6.7.1 纹理坐标223

6.7.2 组织纹理数据226

6.7.3 使用多重纹理227

6.8 复杂纹理类型229

6.8.1 3维纹理229

6.8.2 数组纹理231

6.8.3 立方体映射纹理231

6.8.4 阴影采样器237

6.8.5 深度模板纹理238

6.8.6 缓存纹理238

6.9 纹理视图240

6.10 压缩纹理243

6.11 滤波245

6.11.1 线性滤波245

6.11.2 使用和生成mipmap247

6.11.3 计算mipmap级别251

6.11.4 mipmap细节层次控制252

6.12 高级纹理查询函数252

6.12.1 显式细节层次252

6.12.2 显式梯度设置253

6.12.3 偏移后的纹理获取253

6.12.4 投影纹理254

6.12.5 着色器中的纹理查询254

6.12.6 收集纹素256

6.12.7 合并特殊函数256

6.13 点精灵257

6.13.1 带纹理的点精灵257

6.13.2 控制点的外观259

6.14 渲染到纹理贴图260

6.14.1 丢弃已渲染数据263

6.15 本章总结264

6.15.1 纹理回顾264

6.15.2 纹理的最好实践265

第7章 光照与阴影266

7.1 光照介绍267

7.2 经典光照模型267

7.2.1 不同光源类型的片元着色器268

7.2.2 将计算移到顶点着色器277

7.2.3 多个光源和材质279

7.2.4 光照坐标系统285

7.2.5 经典光照模型的局限285

7.3 光照模型进阶286

7.3.1 半球光照286

7.3.2 基于图像的光照289

7.3.3 球面光照293

7.4 阴影映射296

7.4.1 创建一张阴影贴图297

7.4.2 使用阴影贴图299

第8章 程序式纹理303

8.1 程序式纹理303

8.1.1 规则的花纹305

8.1.2 玩具球311

8.1.3 晶格318

8.1.4 程序式着色方法的总结319

8.2 凹凸贴图映射319

8.2.1 应用程序设置321

8.2.2 顶点着色器323

8.2.3 片元着色器324

8.2.4 法线贴图326

8.3 程序式纹理的反走样326

8.3.1 走样的来源327

8.3.2 避免走样问题328

8.3.3 提高分辨率329

8.3.4 高频率的反走样330

8.3.5 频率截断337

8.3.6 程序式反走样的总结339

8.4 噪声339

8.4.1 噪声的定义341

8.4.2 噪声纹理345

8.4.3 权衡348

8.4.4 一个简单的噪声着色器349

8.4.5 湍流351

8.4.6 大理石353

8.4.7 花岗岩353

8.4.8 木纹354

8.4.9 噪声的总结357

8.5 更多信息357

第9章 细分着色器359

9.1 细分着色器359

9.2 细分面片360

9.3 细分控制着色器361

9.3.1 生成输出面片的顶点362

9.3.2 细分控制着色器的变量362

9.3.3 细分的控制363

9.4 细分计算着色器367

9.4.1 设置图元生成域368

9.4.2 设置生成图元的面朝向368

9.4.3 设置细分坐标的间隔368

9.4.4 更多的细分计算着色器layout选项368

9.4.5 设置顶点的位置369

9.4.6 细分计算着色器的变量369

9.5 细分实例:茶壶370

9.5.1 处理面片输入顶点370

9.5.2 计算茶壶的细分坐标371

9.6 更多的细分技术373

9.6.1 视口相关的细分373

9.6.2 细分的共享边与裂缝375

9.6.3 置换贴图映射376

第10 章几何着色器377

10.1 创建几何着色器378

10.2 几何着色器的输入和输出380

10.2. 1 几何着色器的输入380

10.2.2 特殊的几何着色器图元383

10.2.3 几何着色器的输出387

10.3 产生图元389

10.3.1 几何体的裁减389

10.3.2 几何体的扩充390

10.4 transform feedback高级篇394

10.4.1 多重输出流395

10.4.2 图元查询399

10.4.3 使用transform feedback的结果400

10.5 几何着色器的多实例化408

10.6 多视口与分层渲染409

10.6.1 视口索引409

10.6.2 分层渲染414

10.7 本章小结417

10.7.1 几何着色器回顾417

10.7.2 几何着色器的经验谈418

第11章 内存420

11.1 使用纹理存储通用数据420

11.1.1 将纹理绑定到图像单元425

11.1.2 图像数据的读取和写入427

11.2 着色器存储缓存对象430

11.2.1 写入结构化数据431

11.3 原子操作和同步431

11.3.1 图像的原子操作431

11.3.2 缓存的原子操作439

11.3.3 同步对象440

11.3.4 图像限定符和屏障444

11.3.5 高性能的原子计数器452

11.4 示例455

11.4.1 顺序无关的透明455

第12章 计算着色器466

12.1 概述466

12.2 工作组及其执行467

12.2.1 知道工作组的位置471

12.3 通信与同步472

12.3.1 通信473

12.3.2 同步474

12.4 示例475

12.4.1 物理模拟476

12.4.2 图像处理481

12.5 本章总结485

12.5.1 计算着色器回顾485

12.5.2 计算着色器的最佳实践485

附录A GLUT基础知识487

附录B OpenGL ES与WebGL493

附录C 内置GLSL变量与函数504

附录D 状态变量552

附录E 齐次坐标与变换矩阵591

附录F OpenGL与窗口系统596

附录G 纹理、帧缓存与渲染缓存的浮点格式612

附录H OpenGL程序的调试与优化618

附录I 缓存对象的布局632

术语表635

热门推荐