《OpenGL编程指南(原书第7版)》附录

《OpenGL编程指南(原书第7版)》附录

  • 大小:5.6 MB
  • 类型:OpenGL编程
  • 格式:PDF
  • 出版:机械工业出版社
  • 作者:Dave、Shreiner;
  • 更新:2022-09-07 08:32:33
vip 立即下载( 5.6 MB )
关注公众号免费下载
版权投诉 / 资源反馈(本资源由用户 金童彤 投稿)

给寻找配套资源的朋友们精选了OpenGL编程类书籍配套资源,介绍了关于OpenGL、编程指南、OpenGL编程方面的内容,本书是由机械工业出版社出版,已被815人关注,由江乐和测试纠错,目前本书在OpenGL编程类综合评分为:9.8分。

OpenGL编程资源推荐

资源介绍

本书对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。本书的上一个版本覆盖了到OpenGL 2.1版的内容。本版涵盖了OpenGL 3.0和3.1的最新特性。本书以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3D模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。另外,本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、NURBS、图像处理子集等。此外,本书还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。

OpenGL是图形硬件的一种软件接口。从本质上说,它是一个3D图形和模型库,具有高度的可移植性,并且具有非常快的渲染速度。如今,OpenGL广泛应用于游戏、医学影像、地理信息、气象模拟等领域,是高性能图形和交互性场景处理的行业标准。

OpenGL的前身是SGI公司开发的IRIS GL图形函数库。SGI是一家久负盛名的公司,在计算机图形和动画领域处于业界领先地位。IRIS GL最初是一个2D图形函数库,后来逐渐演化为SGI的高端IRIS图形工作站所使用的3D编程API。后来,由于图形技术的发展,SGI对IRIS GL的移植性进行了改进和提高,使它逐步发展成如今的OpenGL。在此期间,OpenGL得到了各大厂商的支持,从而成为一种广泛流行的三维图形标准。

OpenGL并不是一种编程语言,而更像是一个C运行时函数库。它提供了一些预包装的功能,帮助开发人员编写功能强大的三维图形应用程序。OpenGL可以在多种操作系统平台上运行,例如各种版本的Windows、UNIX/Linux、Mac OS和OS/2等。

OpenGL是一个开放的标准,虽然它由SGI首创,但是它的标准并不控制在SGI的手中,而是由OpenGL体系结构审核委员会(ARB)掌管。ARB由SGC、DEC、IBM、Intel和Microsoft等著名公司于1992年创立,后来又陆续添加了nVidia、ATI等图形芯片领域的巨擎。ARB每隔4年举行一次会议,对OpenGL规范进行维护和改善,并出台计划对OpenGL标准进行升级,使OpenGL一直保持与时代同步。

2006年,SGI公司把OpenGL标准的控制从ARB移交给一个新的工作组—Khronos小组(www.khronos.org)。Khronos是一个由成员提供资金的行业协会,专注于开放媒体标准的创建和维护。目前,Khronos负责OpenGL的发展和升级。

《OpenGL编程指南》就是由Khronos小组编写的官方指南,是OpenGL领域的权威著作,有“OpenGL红宝书”之称,曾经帮助许多程序员走上了OpenGL专家之路。第7版在第6版的基础上又有所改进,介绍了OpenGL 3.0和OpenGL 3.1的新的和更新的内容。

本书历经多次版本升级,其中文版的翻译也是一项延续性的工作,凝结了许多人的辛勤工作。徐波等曾承担《OpenGL编程指南》第5版和第6版的主要翻译工作。李军在第6版的中文版的基础上,负责了第7版新增内容的翻译和更新工作。参与第7版翻译工作的还有刘金华、刘伟超、罗庚臣、刘二然、郑芳菲、庄逸川、王世高、郭莹、陈、邓勇、何进伟、贾晓斌、汪蔚和齐国涛。机械工业出版社华章分社的编辑为本书的出版付出了辛勤劳动,感谢他们!

封面图

目录

  • 译者序
  • 前言
  • 第1章OpenGL简介1
  • 1.1什么是OpenGL1
  • 1.2一段简单的OpenGL代码3
  • 1.3OpenGL函数的语法4
  • 1.4OpenGL是一个状态机6
  • 1.5OpenGL渲染管线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.2OpenGL实用工具库(GLUT)10
  • 1.7动画13
  • 1.7.1暂停刷新14
  • 1.7.2动画=重绘+交换15
  • 1.8OpenGL及其废弃机制17
  • 1.8.1OpenGL渲染环境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.3OpenGL几何图元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.3RGBA和颜色索引模式115
  • 4.3.1RGBA显示模式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.8mipmap:多重细节层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.2alpha测试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.3GLU的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.2OpenGL版本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.19Dirichlet域420
  • 14.20使用模板缓冲区实现生存游戏421
  • 14.21glDrawPixels()和glCopyPixels()的其他应用422
  • 第15章OpenGL着色语言424
  • 15.1OpenGL图形管线和可编程着色器424
  • 15.1.1顶点处理425
  • 15.1.2片断处理426
  • 15.2使用GLSL着色器427
  • 15.2.1着色器示例427
  • 15.2.2OpenGL/GLSL接口428
  • 15.3OpenGL着色语言432
  • 15.4使用GLSL创建着色器433
  • 15.4.1程序起点433
  • 15.4.2声明变量433
  • 15.4.3聚合类型434
  • 15.5uniform块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
  • 附录AGLUT(OpenGL实用工具库)基础知识464
  • 附录B状态变量468
  • 附录C齐次坐标和变换矩阵495
  • 附录DOpenGL和窗口系统499
  • 术语表511

以上就是本次关于配套资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。

OpenGL编程相关资源

  • OpenGL超级宝典 (第2版)

    OpenGL超级宝典 (第2版)

    大小:13.23MBOpenGL电子书

  • 《OpenGL ES 3.x游戏开发(下卷)》配套彩图

    《OpenGL ES 3.x游戏开发(下卷)》配套彩图

    内容简介 本书共分14章,内容涵盖了从OpenGLES3.x着色器的使用技巧到高级光影效果以及物理模拟问题的解决。介绍了OpenGLES3.x中的各种缓冲区对象和顶点着色器与片元着色器的使用技巧,以及高级光影效果的实现,如凹凸映射、环境反射、阴影、倒影、镜头光晕等。介绍了杰出的3D物理引擎Bullet(Ja和C++版本),详细介绍了骨骼动画的开发,包括加载ms3d骨骼动画以及开发自定义格式的骨骼动画。系统地讨论了OpenGLES3.x开发中的性能优化问题,介绍了OpenGLE

    大小:120.98 MBOpenGL配套资源

  • OpenGL编程指南(第9版)

    OpenGL编程指南(第9版)

    本书是OpenGL官方指南,素有“OpenGL* 宝书”美誉。结合OpenGL的新特性,全方位阐释OpenGL编程的各种技术细节、方法和佳实践,帮助程序员踏上OpenGL专家之路,欢迎下载

    大小:302.7 MBOpenGL电子书

  • 《OpenGL ES 3.x游戏开发(上卷)》配套彩图

    《OpenGL ES 3.x游戏开发(上卷)》配套彩图

    内容简介 本书共分17章,内容按照必知必会的OpenGLES3.x基础知识、基于实现基本特效以及真实大型应用、游戏案例开发的顺序进行详细地讲解。主要内容为:OpenGLES3.x的渲染管线介绍,OpenGLES3.x可编程渲染管线着色器的着色语言介绍,3D开发中投影、各种变换的原理与实现,介绍了OpenGLES3.x中光照的基本原理与实现、点法向量与面法向量的区别以及光照的每顶点计算与每片元计算的差别,介绍了纹理映射的基本原理与使用,介绍了使用OpenGLES3.0开发各种3D基

    大小:77.03 MBOpenGL配套资源

  • OpenGL ES 3.x游戏开发 (下卷)

    OpenGL ES 3.x游戏开发 (下卷)

    OpenGL ES3.x游戏开发(下卷) 共分14章,内容涵盖了从OpenGL ES 3.x着色器的使用技巧到高级光影效果以及物理模拟问题的解决。介绍了OpenGL ES 3.x中的各种缓冲区对象和顶点着色器与片元着色器的使用

    大小:46.6 MB游戏开发电子书

  • 《OpenGL超级宝典(第4版)》配套资源

    《OpenGL超级宝典(第4版)》配套资源

    编辑推荐 本书开篇详细讲解OpenGL图形编程的核心技术,覆盖了从空间中进行绘制到几何变换,从光照到纹理贴图等内容。书中讲解了新的OpenGL功能,包括OpenGL 2.1的强大可编程管线、定点和片段着色和高级缓冲区。书中还包含了对多种平台上的OpenGL实现的*介绍,这些平台包括Windows、Mac OS X、Linux和嵌入式系统。 内容简介 本书是OpenGL及3D图形编程最好的入门指南,涵盖了使用*版本的OpenGL进行编程所需要的主要知识。 全书分3个部分,共22章,另有3个附录。

    大小:389.6 KBOpenGL配套资源

  • 《OpenGL超级宝典(第5版)》配套资源

    《OpenGL超级宝典(第5版)》配套资源

    编辑推荐 亚马逊5星图书 作者为OpenGL资深专家 内容全面的参考指南 针对OpenGL 3.3全面升级 内容简介 《OpenGL超级宝典(第5版)》是OpenGL及3D图形编程最好的入门指南,涵盖了使用*版本的OpenGL进行编程所需要的主要知识。全书分三部分,共16章,另有3个附录。第一部分包括第1章到第7章,介绍如何构建一个使用OpenGL的程序、如何设置3D渲染环境,以及如何创建基本对象和光线并对他们进行着色。然后深入研究如何使用OpenGL,并向读者介绍GLSL,以及如何创建自己

    大小:1 GBOpenGL配套资源

  • Android三维程序设计:基于OpenGL ES的图形应用程序设计

    Android三维程序设计:基于OpenGL ES的图形应用程序设计

    《Android三维程序设计:基于OpenGL ES的图形应用程序设计》 详细阐述了与Android移动设备以及OpenGL ES开发相关的基本解决方案,主要包括ES 2.0基础知识、3D建模、Blender软件应用、纹理和着色、T

    大小:47.3 MBAndroid电子书

  • OpenGL编程指南(第4版)

    OpenGL编程指南(第4版)

    OPENGL编程指南(第4版) 作者:OpenGL体系结构审核委员会[等]著;邓郑祥译;邓郑祥译 出版时间:2005

    大小:29.92MBOpenGL电子书

  • OpenGL ES 3.x游戏开发 上卷

    OpenGL ES 3.x游戏开发 上卷

    OpenGL ES 3.x游戏开发 共分17章,内容按照必知必会的OpenGL ES 3.x基础知识、基于实现基本特效以及真实大型应用、游戏案例开发的顺序进行详细地讲解。 主要内容为:OpenGL ES 3.x的渲染管线介绍,

    大小:21.3 MBOpenGL电子书

下载地址

学习笔记

1小时17分钟前回答

Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系

cocos2d-x的坐标系很重要,想要学好该引擎,深入理解它的坐标体系很重要。注释写的很清楚了,对照上运行结果一块来看代码吧! bool HelloWorld::init(){ bool bRet = false; do { CC_BREAK_IF(! CCLayer::init());//opengl的坐标系和世界坐标系相同,都是以屏幕左下角为原点,向右为x轴的增加方向,向上为y轴的增加方向//这里的世界指的是游戏世界//屏幕坐标系是以左上角为原点,是我们熟悉的 //本地……