图书介绍

OpenGL超级宝典2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

OpenGL超级宝典
  • (美)赖特,(美)利普恰克,(美)黑内尔著 著
  • 出版社: 北京市:人民邮电出版社
  • ISBN:9787115235848
  • 出版时间:2010
  • 标注页数:718页
  • 文件大小:147MB
  • 文件页数:738页
  • 主题词:图形软件,OpenGL

PDF下载


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

下载说明

OpenGL超级宝典PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 “旧约”——经典属性第1章 3D图形和OpenGL的介绍2

1.1 计算机图形的简单历史回顾2

1.1.1 进入电子时代2

1.1.2 走向3D3

1.2 3D效果初探5

1.2.1 透视(视角)5

1.2.2 颜色和着色6

1.2.3 光照和阴影6

1.2.4 纹理贴图7

1.2.5 雾7

1.2.6 混和和透明8

1.2.7 抗锯齿8

1.3 3D图形的常见用途9

1.3.1 实时3D9

1.3.2 非实时3D10

1.3.3 着色器11

1.4 3D编程的基本原则12

1.4.1 立即模式和保持模式12

1.4.2 坐标系统12

1.4.3 投影:从3D到2D15

1.5 总结17

第2章 使用OpenGL18

2.1 什么是OpenGL18

2.1.1 标准的演化19

2.1.2 API战争20

2.1.3 OpenGL的未来20

2.2 OpenGL的工作原理21

2.2.1 通用实现21

2.2.2 硬件实现22

2.2.3 管线23

2.3 OpenGL是API而不是编程语言23

2.3.1 标准函数库和头文件24

2.3.2 头文件自定义24

2.4 API特定细节25

2.4.1 数据类型26

2.4.2 函数名约定27

2.5 平台独立性27

2.5.1 使用GLUT28

2.5.2 第一个程序28

2.5.3 用OpenGL绘制形状32

2.6 使用OpenGL和GLUT生成动画38

2.7 OpenGL状态机41

2.8 OpenGL错误42

2.9 确认版本43

2.10 使用glHint获取线索43

2.11 使用扩展44

2.11.1 检查扩展44

2.11.2 这是谁的扩展45

2.12 总结45

第3章 空间绘图:几何图元和缓冲区46

3.1 在3D中绘制点46

3.2 设置3D画布47

3.3 3D空间中的点:顶点48

3.4 绘制图形49

3.4.1 画点49

3.4.2 第一个例子50

3.5 设置点的大小52

3.6 在3D空间中画直线54

3.6.1 线带和线环55

3.6.2 用直线构成近似曲线56

3.6.3 设置直线的宽度57

3.6.4 直线点画58

3.7 在3D空间中绘制三角形60

3.7.1 三角形:第一种多边形60

3.7.2 环绕61

3.7.3 三角形带62

3.7.4 三角形扇62

3.8 创建实心物体63

3.8.1 设置多边形的颜色65

3.8.2 隐藏表面消除65

3.8.3 剔除:隐藏表面,提高性能67

3.8.4 多边形模式68

3.9 其他图元69

3.9.1 四条边的多边形:四边形69

3.9.2 通用多边形70

3.9.3 填充多边形,重新讨论点画70

3.9.4 多边形的创建规则73

3.9.5 细分和边界74

3.10 其他缓冲区技巧76

3.10.1 使用缓冲区目标76

3.10.2 操纵深度缓冲区77

3.10.3 用剪刀进行裁剪77

3.10.4 使用模板缓冲区78

3.10.5 创建模板图案80

3.11 总结82

第4章 几何变换:管线83

4.1 本章是不是枯燥的数学课83

4.2 理解变换84

4.2.1 视觉坐标84

4.2.2 视图变换85

4.2.3 模型变换85

4.2.4 模型视图对偶性85

4.2.5 投影变换86

4.2.6 视口变换87

4.3 矩阵:3D图形的数学基础87

4.3.1 什么是矩阵88

4.3.2 变换管线88

4.3.3 模型视图矩阵89

4.3.4 单位矩阵91

4.3.5 矩阵堆栈93

4.3.6 一个原子例子94

4.4 使用投影96

4.4.1 正投影96

4.4.2 透视投影97

4.4.3 一个远处缩小的例子99

4.5 高级矩阵操作101

4.5.1 加载矩阵102

4.5.2 自己执行变换103

4.5.3 变换的叠加105

4.6 使用照相机和角色在OpenGL中移动105

4.6.1 角色帧106

4.6.2 欧拉角:“卢克!请使用帧”107

4.6.3 照相机管理107

4.6.4 综合应用108

4.7 总结112

第5章 颜色、材料和光照:基础知识113

5.1 什么是颜色113

5.1.1 光的波动性114

5.1.2 光的粒子性114

5.1.3 人眼作为光子检测器115

5.1.4 计算机作为光子检测器116

5.2 PC颜色硬件116

5.3 PC显示模式117

5.3.1 屏幕分辨率117

5.3.2 颜色深度118

5.4 在OpenGL中使用颜色118

5.4.1 颜色立方体118

5.4.2 设置绘图颜色119

5.4.3 着色120

5.4.4 设置着色模型121

5.5 现实世界的颜色122

5.5.1 环境光123

5.5.2 散射光123

5.5.3 镜面光124

5.5.4 综合考虑124

5.6 现实世界的材料124

5.6.1 材料属性125

5.6.2 向材料添加光照125

5.6.3 计算环境光效果125

5.6.4 散射和镜面光效果126

5.7 向场景添加光照126

5.7.1 启用光照126

5.7.2 设置宇宙背景发射光127

5.7.3 设置材料属性127

5.8 使用光源129

5.8.1 哪种方式最合适129

5.8.2 表面法线130

5.8.3 指定法线130

5.8.4 单位法线132

5.8.5 寻找法线132

5.8.6 设置光源133

5.8.7 设置材料属性135

5.8.8 指定多边形135

5.9 光照效果136

5.9.1 镜面亮点136

5.9.2 镜面光137

5.9.3 镜面反射137

5.9.4 镜面指数138

5.9.5 法线均衡139

5.10 综合讨论140

5.10.1 创建聚光灯141

5.10.2 绘制聚光灯142

5.11 阴影145

5.11.1 什么是阴影146

5.11.2 实现压平的代码147

5.11.3 一个阴影例子147

5.11.4 重新回顾球体世界149

5.12 总结150

第6章 颜色和材料的更多细节151

6.1 混合151

6.1.1 组合颜色151

6.1.2 修改混合方程式154

6.1.3 抗锯齿154

6.1.4 多重采样157

6.2 应用雾158

6.2.1 雾方程式159

6.2.2 雾坐标160

6.3 累积缓冲区161

6.4 其他颜色操作163

6.4.1 颜色掩码163

6.4.2 颜色逻辑操作163

6.4.3 alpha测试163

6.4.4 抖动164

6.5 总结164

第7章 OpenGL中的图像165

7.1 位图165

7.1.1 一个位图例子166

7.1.2 设置光栅位置168

7.2 像素包装169

7.3 像素图170

7.3.1 经过包装的像素格式171

7.3.2 一个颜色更丰富的例子172

7.3.3 移动像素174

7.3.4 保存像素175

7.4 像素的更多乐趣177

7.4.1 像素缩放181

7.4.2 像素转移183

7.4.3 像素映射185

7.5 图像“子集”和管线186

7.5.1 颜色矩阵190

7.5.2 颜色查找190

7.5.3 代理192

7.5.4 其他操作192

7.5.5 卷积193

7.5.6 最小最大值操作198

7.6 总结198

第8章 纹理贴图:基础知识199

8.1 加载纹理200

8.1.1 使用颜色缓冲区202

8.1.2 更新纹理202

8.1.3 将纹理贴图到几何图形203

8.1.4 纹理矩阵205

8.2 一个简单的2D例子205

8.3 纹理环境208

8.4 纹理参数209

8.4.1 基本过滤209

8.4.2 纹理环绕211

8.4.3 带纹理的卡通211

8.4.4 Mip贴图214

8.5 纹理对象217

8.6 总结223

第9章 纹理贴图:高级知识224

9.1 辅助颜色224

9.2 各向异性过滤226

9.3 纹理压缩227

9.3.1 压缩纹理228

9.3.2 加载压缩纹理229

9.4 纹理坐标生成230

9.4.1 物体线性贴图232

9.4.2 视觉线性贴图233

9.4.3 球体贴图234

9.4.4 立方体贴图234

9.5 多重纹理237

9.5.1 多重纹理坐标238

9.5.2 一个多重纹理例子239

9.6 纹理组合器242

9.7 点块纹理244

9.7.1 使用点244

9.7.2 纹理应用245

9.7.3 点参数245

9.8 总结246

第10章 曲线和表面247

10.1 内部支持的表面247

10.1.1 设置二次方程状态248

10.1.2 绘制二次方程图形249

10.1.3 用二次方程进行建模251

10.2 Bézier曲线和表面253

10.2.1 参数方程表示形式253

10.2.2 求值器(evaluator)255

10.3 NURBS262

10.3.1 从Bézier到B样条262

10.3.2 结点263

10.3.3 创建NURBS表面263

10.3.4 NURBS属性264

10.3.5 定义表面264

10.3.6 修剪265

10.3.7 NURBS表面267

10.4 分格化(tessellation)267

10.4.1 分格器(tessellator)267

10.4.2 分格器回调函数268

10.4.3 指定顶点数据269

10.4.4 综合应用269

10.5 总结273

第11章 这就是管线:更快的几何图形渲染275

11.1 显示列表275

11.1.1 批处理276

11.1.2 预批处理277

11.1.3 使用显示列表的一些注意事项278

11.1.4 转换到显示列表278

11.2 顶点数组279

11.2.1 加载几何图形281

11.2.2 启用数组282

11.2.3 数据在哪里282

11.2.4 用数据绘图283

11.2.5 索引顶点数组284

11.3 顶点缓冲区对象293

11.3.1 管理和使用缓冲区对象294

11.3.2 回到Thunderbird295

11.4 总结297

第12章 交互式图形298

12.1 选择298

12.1.1 为图元命名299

12.1.2 在选择模式下工作300

12.1.3 选择缓冲区301

12.1.4 挑选302

12.1.5 层次式挑选304

12.2 反馈307

12.2.1 反馈缓冲区307

12.2.2 反馈数据308

12.2.3 用户定义标记308

12.3 一个反馈例子309

12.3.1 对物体加上标签以便反馈309

12.3.2 步骤1:选择物体311

12.3.3 步骤2:从物体获取反馈信息312

12.4 总结314

第13章 遮挡查询:消除不必要的工作315

13.1 遮挡查询之前的世界315

13.2 边框317

13.3 对查询对象进行查询321

13.4 最佳实践322

13.5 总结323

第14章 深度纹理和阴影324

14.1 作为光源325

14.1.1 使场景正好占据整个窗口325

14.1.2 去掉不必要的东西326

14.2 一种新类型的纹理326

14.3 首先绘制阴影327

14.4 然后是光照328

14.4.1 投影阴影贴图:“为什么”328

14.4.2 投影阴影贴图:“怎么做”329

14.4.3 阴影比较330

14.5 只用两个就够了333

14.6 关于多边形偏移334

14.7 总结334

第二部分 “新约”——新的发展第15章 可编程管线:这已不是旧式的OpenGL336

15.1 旧的被淘汰336

15.1.1 固定的顶点处理337

15.1.2 固定的片断处理339

15.2 新的占主导339

15.2.1 可编程顶点着色器340

15.2.2 固定功能胶水341

15.2.3 可编程片断着色器342

15.3 初窥OpenGL着色语言343

15.4 管理高层着色器344

15.4.1 着色器对象344

15.4.2 程序对象345

15.5 变量347

15.5.1 基本类型347

15.5.2 结构348

15.5.3 数组349

15.5.4 限定符349

15.5.5 内置的变量350

15.6 表达式351

15.6.1 操作符351

15.6.2 数组访问352

15.6.3 构造函数352

15.6.4 成分选择353

15.7 控制流353

15.7.1 循环354

15.7.2 if/else354

15.7.3 discard354

15.7.4 函数354

15.8 总结356

第16章 顶点着色:自行转换、光照和Texgen357

16.1 初次试验357

16.2 散射光照358

16.3 镜面光照359

16.4 改善镜面光照360

16.5 基于顶点的雾362

16.6 基于顶点的点大小364

16.7 自定义的顶点变换365

16.8 顶点混合366

16.9 总结367

第17章 片断着色器:增强像素处理的威力368

17.1 颜色转换368

17.1.1 灰度368

17.1.2 调棕色369

17.1.3 反色370

17.1.4 热信号370

17.1.5 基于片断的雾371

17.2 图像处理372

17.2.1 模糊372

17.2.2 锐化373

17.2.3 膨胀和侵蚀374

17.2.4 边缘检测375

17.3 光照376

17.3.1 散射光照377

17.3.2 多重镜面光照378

17.4 过程纹理贴图379

17.4.1 棋盘纹理380

17.4.2 沙滩球纹理382

17.4.3 玩具球纹理384

17.5 总结386

第18章 高级缓冲区387

18.1 像素缓冲区对象387

18.1.1 如何使用PBO388

18.1.2 PBO的优点388

18.1.3 实际使用PBO389

18.1.4 可以使用PBQ的命令391

18.2 帧缓冲区对象392

18.2.1 如何使用FBO392

18.2.2 离屏渲染395

18.2.3 渲染到纹理396

18.2.4 多个渲染目标398

18.3 浮点纹理400

18.3.1 高动态范围400

18.3.2 OpenEXR文件格式401

18.3.3 调和映射(tone mapping)403

18.4 更白、更亮405

18.4.1 绘制场景405

18.4.2 亮度渲染407

18.4.3 借助于高斯模糊407

18.4.4 把各部分相加408

18.4.5 再次使用PBO409

18.5 总结409

第三部分 “新约外传”——扩展应用第19章 Wiggle:Windows上的OpenGL412

19.1 Windows上的OpenGL实现412

19.1.1 泛型OpenGL413

19.1.2 可安装客户驱动程序413

19.1.3 Mini客户驱动程序413

19.1.4 Mini驱动程序414

19.1.5 Vista上的OpenGL414

19.1.6 扩展OpenGL414

19.2 基本的窗口渲染415

19.2.1 GDI设备环境415

19.2.2 像素格式416

19.2.3 OpenGL渲染环境421

19.3 综合应用421

19.3.1 创建窗口422

19.3.2 使用OpenGL渲染环境425

19.3.3 其他Windows消息427

19.4 OpenGL和Windows字体428

19.4.1 3D字体和文本429

19.4.2 2D字体和文本430

19.5 全屏渲染432

19.5.1 创建一个无边框窗口432

19.5.2 创建一个全屏窗口433

19.6 多线程渲染435

19.7 OpenGL和WGL扩展436

19.7.1 简单扩展436

19.7.2 使用新入口437

19.7.3 自动魔法扩展437

19.7.4 WGL扩展438

19.8 总结441

第20章 Mac OSX上的OpenGL442

20 1 GLUT442

20.1.1 创建一个GLUT项目443

20.1.2 应用程序框架443

20.1.3 Ditching Cocoa444

20.2 使用Carbon的OpenGL444

20.2.1 为OpenGL进行设置444

20.2.2 设置像素格式446

20.2.3 位图字体449

20.3 使用Cocoa的OpenGL451

20.3.1 创建一个Cocoa程序451

20.3.2 综合运用452

20.4 全屏渲染455

20.4.1 显示管理455

20.4.2 AGL全屏支持456

20.5 总结458

第21章 Linux上的OpenGL459

21.1 基础知识459

21.2 安装460

21.2.1 安装Mesa460

21.2.2 安装硬件驱动程序461

21.2 3 其他安装细节461

21.2.4 安装GLUT461

21.2.5 生成OpenGL应用程序461

21.3 GLUT462

21.4 GLX——处理X Window接口462

21.4.1 显示和X463

21.4 2 配置管理和画面463

21.4.3 窗口和渲染表面466

21.4.4 环境管理467

21.4.5 同步468

21.4.6 GLX字符串469

21.4.7 其他关于GLX的内容469

21.5 综合运用470

21.6 总结473

第22章 OpenGL ES:嵌入式OpenGL474

22.1 精简的OpenGL474

22.1.1 ES指什么474

22.1.2 历史概述475

22.2 版本选择476

22.2.1 ES 1.0476

22.2.2 ES 1.1478

22.2.3 ES 2.0481

22.2.4 ES SC485

22.3 ES环境486

22.3.1 应用程序设计的注意事项486

22.3.2 有限环境的处理487

22.3.3 定点数学487

22.4 EGL:新的窗口环境488

22.4.1 EGL显示489

22.4.2 创建一个窗口489

22.4.3 环境管理492

22.4.4 呈现缓冲区和渲染同步493

22.4.5 更多EGL相关内容493

22.5 处理嵌入式环境494

22.5.1 流行操作系统494

22.5.2 嵌入式硬件495

22.5.3 供应商特定扩展495

22.5.4 个人玩家495

22.6 实施OpenGL ES495

22.6.1 设置环境495

22.6.2 设置OpenGL ES状态497

22.6.3 渲染497

22.6.4 清除工作498

22.7 总结498

附录A 更多阅读建议499

附录B 词汇表501

附录C API参考504

热门推荐