当前位置:首页 > 工业技术
OpenGL编程指南 原书第6版
OpenGL编程指南 原书第6版

OpenGL编程指南 原书第6版PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:(美)DaveShreiner著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:9787111242017
  • 页数:499 页
图书介绍:本书介绍OpenGL程序设计方法。
《OpenGL编程指南 原书第6版》目录
标签:编程 指南

第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

返回顶部