OpenGL编程指南第九版PDF-OpenGL编程指南下载 中文版

手游资讯 单机资讯 最近更新 热门排行
您现在的位置:首页 > 手机软件 > 旅游出行 > OpenGL编程指南 中文版
OpenGL编程指南 中文版
83.17%
7.68%

OpenGL编程指南 中文版

  • 软件介绍
  • 软件截图
  • 相关下载

软件标签:编程软件 编程开发

OpenGL编程指南PDF是OpenGL系列计算机图形应用程序的psf电子版,OpenGL编程指南第九版PDF主要讲述OpenGL管理和细分几何表面的着色器功能,内容详细具体,值得推荐下载,第七小编这里主推各位有需要的赶快下载参考学习吧!

OpenGL编程指南 中文版

OpenGL编程指南简介

莱尔编著的《OpenGL编程指南》是由Khronos 小组编写的官方指南,是OpenGL领域的权威著作,素 有“OpenGL红宝书”的美誉。第8版针对OpenGL4.3 版本全方位阐释OpenGL的各种技术细节、方法和最佳 实践,帮助程序员走上OpenGL专家之路。

本书共12章:第1章概述OpenGL主要特性和功能 ;第2章讨论OpenGL中最主要的特性——可编程着色 器;第3章介绍使用OpenGL进行几何体绘制的各种方 法,以及一些可以让渲染更为高效的优化手段;第4 章阐释OpenGL对于颜色的处理过程,包括像素的处理 、缓存的管理以及像素处理相关的渲染技术;第5章 介绍在一个二维计算机屏幕上表现三维场景的操作细 节;第6章讨论将几何模型与图像结合来创建真实的 、高质量的三维模型的方法;第7章介绍计算机图形 的光照效果模拟方法;第8章介绍使用可编程着色器 生成纹理和其他表面效果的方法细节;第9章解释 OpenGL管理和细分几何表面的着色器功能;第10章介 绍在OpenGL渲染管线中使用着色器进行几何体图元修 改的特别技术;第1l章介绍使用OpenGL帧缓存和缓存 内存实现高级渲染技术和非图形学应用的相关方法; 第12章介绍了最新的着色器阶段,将通用计算的方法 融合到OpenGL的渲染管线当中。

目录

译者序

前言

第1章 OpenGL简介1

1.1 什么是OpenGL1

1.2 一段简单的OpenGL代码3

1.3 OpenGL函数的语法4

1.4 OpenGL是一个状态机6

1.5 OpenGL渲染管线6

1.5.1 显示列表7

1.5.2 求值器7

1.5.3 基于顶点的操作7

1.5.4 图元装配7

1.5.5 像素操作8

1.5.6 纹理装配8

1.5.7 光栅化8

1.5.8 片断操作8

1.6 与OpenGL相关的函数库9

1.6.1 包含文件9

1.6.2 OpenGL实用工具库(GLUT)10

1.7 动画13

1.7.1 暂停刷新14

1.7.2 动画=重绘+交换15

1.8 OpenGL及其废弃机制17

1.8.1 OpenGL渲染环境17

1.8.2 访问OpenGL函数18

第2章 状态管理和绘制几何物体19

2.1 绘图工具箱20

2.1.1 清除窗口20

2.1.2 指定颜色22

2.1.3 强制完成绘图操作23

2.1.4 坐标系统工具箱24

2.2 描述点、直线和多边形25

2.2.1 什么是点、直线和多边形25

2.2.2 指定顶点27

2.2.3 OpenGL几何图元27

2.3 基本状态管理31

2.4 显示点、直线和多边形32

2.4.1 点的细节32

2.4.2 直线的细节33

2.4.3 多边形的细节36

2.5 法线向量41

2.6 顶点数组43

2.6.1 步骤1:启用数组44

2.6.2 步骤2:指定数组的数据44

2.6.3 步骤3:解引用和渲染46

2.6.4 重启图元51

2.6.5 实例化绘制53

2.6.6 混合数组54

2.7 缓冲区对象57

2.7.1 创建缓冲区对象57

2.7.2 激活缓冲区对象58

2.7.3 用数据分配和初始化缓冲区对象58

2.7.4 更新缓冲区对象的数据值60

2.7.5 在缓冲区对象之间复制数据62

2.7.6 清除缓冲区对象63

2.7.7 使用缓冲区对象存储顶点数组

数据63

2.8 顶点数组对象65

2.9 属性组69

2.10 创建多边形表面模型的一些提示71

第3章 视图77

3.1 简介:用照相机打比方78

3.1.1 一个简单的例子:绘制立方体80

3.1.2 通用的变换函数83

3.2 视图和模型变换84

3.2.1 对变换进行思考85

3.2.2 模型变换86

3.2.3 视图变换89

3.3 投影变换93

3.3.1 透视投影94

3.3.2 正投影95

3.3.3 视景体裁剪96

3.4 视口变换96

3.4.1 定义视口96

3.4.2 变换深度坐标97

3.5 和变换相关的故障排除98

3.6 操纵矩阵堆栈100

3.6.1 模型视图矩阵堆栈101

3.6.2 投影矩阵堆栈102

3.7 其他裁剪平面102

3.8 一些组合变换的例子104

3.8.1 创建太阳系模型104

3.8.2 创建机器人手臂107

3.9 逆变换和模拟变换109

第4章 颜色113

4.1 颜色感知113

4.2 计算机颜色114

4.3 RGBA和颜色索引模式115

4.3.1 RGBA显示模式116

4.3.2 颜色索引模式117

4.3.3 在RGBA和颜色索引模式中

进行选择118

4.3.4 切换显示模式118

4.4 指定颜色和着色模型119

4.4.1 在RGBA模式下指定颜色119

4.4.2 在颜色索引模式下指定颜色120

4.4.3 指定着色模型121

第5章 光照123

5.1 隐藏表面消除工具箱124

5.2 现实世界和OpenGL光照125

5.2.1 环境光、散射光、镜面光和

发射光125

5.2.2 材料颜色126

5.2.3 光和材料的RGB值126

5.3 一个简单的例子:渲染光照球体127

5.4 创建光源129

5.4.1 颜色130

5.4.2 位置和衰减131

5.4.3 聚光灯132

5.4.4 多光源133

5.4.5 控制光源的位置和方向133

5.5 选择光照模型138

5.5.1 全局环境光138

5.5.2 局部的观察点或无限远的观察点138

5.5.3 双面光照139

5.5.4 镜面辅助颜色139

5.5.5 启用光照140

5.6 定义材料属性140

5.6.1 散射和环境反射141

5.6.2 镜面反射141

5.6.3 发射光颜色142

5.6.4 更改材料属性142

5.6.5 颜色材料模式143

5.7 和光照有关的数学知识146

5.7.1 材料的发射光147

5.7.2 经过缩放的全局环境光147

5.7.3 光源的贡献147

5.7.4 完整的光照计算公式148

5.7.5 镜面辅助颜色148

5.8 颜色索引模式下的光照149

第6章 混合、抗锯齿、雾和多边形偏移151

6.1 混合152

6.1.1 源因子和目标因子152

6.1.2 启用混合154

6.1.3 使用混合方程式组合像素154

6.1.4 混合的样例用法156

6.1.5 一个混合的例子157

6.1.6 使用深度缓冲区进行三维混合159

6.2 抗锯齿162

6.2.1 对点和直线进行抗锯齿处理164

6.2.2 使用多重采样对几何图元进行

抗锯齿处理169

6.2.3 对多边形进行抗锯齿处理172

6.3 雾172

6.3.1 使用雾173

6.3.2 雾方程式175

6.4 点参数181

6.5 多边形偏移182

第7章 显示列表185

7.1 为什么使用显示列表185

7.2 一个使用显示列表的例子186

7.3 显示列表的设计哲学188

7.4 创建和执行显示列表189

7.4.1 命名和创建显示列表191

7.4.2 存储在显示列表里的是什么191

7.4.3 执行显示列表193

7.4.4 层次式显示列表193

7.4.5 管理显示列表索引194

7.5 执行多个显示列表194

7.6 用显示列表管理状态变量199

第8章 绘制像素、位图、字体和图像202

8.1 位图和字体203

8.1.1 当前光栅位置204

8.1.2 绘制位图205

8.1.3 选择位图的颜色206

8.1.4 字体和显示列表206

8.1.5 定义和使用一种完整的字体207

8.2 图像209

8.3 图像管线215

8.3.1 像素包装和解包216

8.3.2 控制像素存储模式217

8.3.3 像素传输操作219

8.3.4 像素映射221

8.3.5 放大、缩小或翻转图像222

8.4 读取和绘制像素矩形224

8.5 使用缓冲区对象存取像素矩形数据227

8.5.1 使用缓冲区对象传输像素数据227

8.5.2 使用缓冲区对象提取像素数据228

8.6 提高像素绘图速度的技巧229

8.7 图像处理子集230

8.7.1 颜色表231

8.7.2 卷积234

8.7.3 颜色矩阵240

8.7.4 柱状图241

8.7.5 最小最大值243

第9章 纹理贴图245

9.1 概述和示例248

9.1.1 纹理贴图的步骤248

9.1.2 一个示例程序249

9.2 指定纹理251

9.2.1 纹理代理255

9.2.2 替换纹理图像的全部或一部分257

9.2.3 一维纹理259

9.2.4 三维纹理261

9.2.5 纹理数组264

9.2.6 压缩纹理图像265

9.2.7 使用纹理边框267

9.2.8 mipmap:多重细节层267

9.3 过滤275

9.4 纹理对象277

9.4.1 命名纹理对象277

9.4.2 创建和使用纹理对象278

9.4.3 清除纹理对象280

9.4.4 常驻纹理工作集280

9.5 纹理函数282

9.6 分配纹理坐标284

9.6.1 计算正确的纹理坐标285

9.6.2 重复和截取纹理286

9.7 纹理坐标自动生成289

9.7.1 创建轮廓线289

9.7.2 球体纹理293

9.7.3 立方图纹理294

9.8 多重纹理296

9.9 纹理组合器函数299

9.10 在纹理之后应用辅助颜色303

9.10.1 在禁用光照时使用辅助颜色303

9.10.2 启用光照后的辅助镜面颜色303

9.11 点块纹理303

9.12 纹理矩阵堆栈304

9.13 深度纹理305

9.13.1 创建阴影图306

9.13.2 生成纹理坐标并进行渲染307

第10章 帧缓冲区309

10.1 缓冲区及其用途310

10.1.1 颜色缓冲区311

10.1.2 清除缓冲区312

10.1.3 选择用于读取和写入的颜色

缓冲区313

10.1.4 缓冲区的屏蔽315

10.2 片断测试和操作316

10.2.1 裁剪测试316

10.2.2 alpha测试317

10.2.3 模板测试318

10.2.4 深度测试322

10.2.5 遮挡查询322

10.2.6 条件渲染324

10.2.7 混合、抖动和逻辑操作325

10.3 累积缓冲区327

10.3.1 运动模糊328

10.3.2 景深328

10.3.3 柔和阴影331

10.3.4 微移331

10.4 帧缓冲区对象332

10.4.1 渲染缓冲区333

10.4.2 复制像素矩形340

第11章 分格化和二次方程表面342

11.1 多边形分格化342

11.1.1 创建分格化对象343

11.1.2 分格化回调函数343

11.1.3 分格化属性347

11.1.4 多边形定义350

11.1.5 删除分格化对象352

11.1.6 提高分格化性能的建议352

11.1.7 描述GLU错误352

11.1.8 向后兼容性352

11.2 二次方程表面:渲染球体、圆柱体

和圆盘353

11.2.1 管理二次方程对象354

11.2.2 控制二次方程对象的属性354

11.2.3 二次方程图元355

第12章 求值器和NURBS360

12.1 前提条件360

12.2 求值器361

12.2.1 一维求值器361

12.2.2 二维求值器365

12.2.3 使用求值器进行纹理处理369

12.3 GLU的NURBS接口371

12.3.1 一个简单的NURBS例子371

12.3.2 管理NURBS对象374

12.3.3 创建NURBS曲线或表面377

12.3.4 修剪NURBS表面380

第13章 选择和反馈383

13.1 选择383

13.1.1 基本步骤384

13.1.2 创建名字栈384

13.1.3 点击记录385

13.1.4 一个选择例子386

13.1.5 挑选389

13.1.6 编写使用选择的程序的一些建议397

13.2 反馈398

13.2.1 反馈数组399

13.2.2 在反馈模式下使用标记400

13.2.3 一个反馈例子400

第14章 OpenGL高级技巧404

14.1 错误处理405

14.2 OpenGL版本406

14.2.1 工具函数库版本407

14.2.2 窗口系统扩展版本407

14.3 标准的扩展407

14.4 实现半透明效果409

14.5 轻松实现淡出效果409

14.6 使用后缓冲区进行物体选择411

14.7 低开销的图像转换411

14.8 显示层次412

14.9 抗锯齿字符413

14.10 绘制圆点414

14.11 图像插值414

14.12 制作贴花415

14.13 使用模板缓冲区绘制填充的

凹多边形416

14.14 寻找冲突区域416

14.15 阴影417

14.16 隐藏直线消除418

14.16.1 使用多边形偏移实现隐藏

直线消除418

14.16.2 使用模板缓冲区实现隐藏

直线消除419

14.17 纹理贴图的应用419

14.18 绘制深度缓冲的图像420

14.19 Dirichlet域420

14.20 使用模板缓冲区实现生存游戏421

14.21 glDrawPixels()和glCopyPixels()的其他应用422

第15章 OpenGL着色语言424

15.1 OpenGL图形管线和可编程着色器424

15.1.1 顶点处理425

15.1.2 片断处理426

15.2 使用GLSL着色器427

15.2.1 着色器示例427

15.2.2 OpenGL/GLSL接口428

15.3 OpenGL着色语言432

15.4 使用GLSL创建着色器433

15.4.1 程序起点433

15.4.2 声明变量433

15.4.3 聚合类型434

15.5 uniform块439

15.5.1 在着色器中指定uniform变量440

15.5.2 访问在uniform块中声明的uniform变量440

15.5.3 计算不变性446

15.5.4 语句446

15.5.5 函数448

15.5.6 在GLSL程序中使用OpenGL

状态值449

15.6 在着色器中访问纹理图像449

15.7 着色器预处理器452

15.7.1 预处理器指令452

15.7.2 宏定义452

15.7.3 预处理器条件453

15.7.4 编译器控制453

15.8 扩展处理454

15.9 顶点着色器的细节454

15.10 变换反馈458

15.11 片断着色器462

附录A GLUT(OpenGL实用工具库)

基础知识464

附录B 状态变量468

附录C 齐次坐标和变换矩阵495

附录D OpenGL和窗口系统499

术语表511

OpenGL编程指南

相关版本

'); })();