OpenGL编程指南(原书第7版)

OpenGL编程指南(原书第7版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] ,
2010-03
版次: 1
ISBN: 9787111294504
定价: 89.00
装帧: 平装
开本: 大16开
纸张: 胶版纸
页数: 519页
正文语种: 简体中文
原版书名: OpenGL programming guide
384人买过
  •   本书对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。本书的上一个版本覆盖了到OpenGL2.1版的内容。本版涵盖了OpenGL3.0和3.1的最新特性。本书以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3D模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。另外,本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、NURBS、图像处理子集等。此外,本书还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。本书内容详实,讲解生动,图文并茂,是OpenGL程序员的绝佳编程指南。
      OpenGL是一种功能强大的软件接口,既可以用于生成高质量的计算机图像,也可以用于编写使用2D和3D物体、位图和彩色图像的交互式应用程序。
      本书对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。本书的上一个版本覆盖了截止OpenGL2.1版的内容。这一版涵盖了OpenGL3.0和3.1的最新特性。本书以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3D模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、NURBS、图像处理等。另外,本书还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。
      本书进行了一些更新,涵盖了OpenGL3.0和3.1的最新特性,包括:
      使用帧缓冲区对象进行离屏渲染和纹理更新。
      各种新的缓冲区对象类型的示例,包括uniform缓冲区对象、变换反馈缓冲区和顶点数组对象。
      使用纹理数组提高使用众多纹理的性能。
      使用图元重启和条件渲染来高效地进行渲染。
      介绍OpenGL的废弃机制,以及如何针对OpenGL未来版本验证程序。
      本书继续对OpenGL着色语言(GLSL)展开讨论,并解释了使用这种语言创建复杂图形效果并提升OpenGL计算威力的机制。OpenGL技术资料库(OpenGLTechnicalLibrary)提供了大量的OpenGL教程和参考书籍,它可以帮助程序员深入理解OpenGL,完全释放OpenGL的潜力。这个资料库最初由SGI开发,目前由KhronosOpenGL体系结构审核委员会(ARB)工作组维护,这是负责指导OpenGL以及相关技术发展和演变的行业协会。 Dave Shreiner 是ARM公司的图形技术总监,长期担任SGI核心OpenGL组的成员。他首次开设了OpenGL的商业培训课程,拥有二十多年的计算机图形应用开发经验。Dave定期参加SIGGRAPH和其他全球性的图形工作会议。他是《OpenGL ES 2.0 Programming Guide》(Addison-Wesley,2009)和 译者序
    前言
    第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实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。本书的上一个版本覆盖了到OpenGL2.1版的内容。本版涵盖了OpenGL3.0和3.1的最新特性。本书以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3D模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。另外,本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、NURBS、图像处理子集等。此外,本书还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。本书内容详实,讲解生动,图文并茂,是OpenGL程序员的绝佳编程指南。
      OpenGL是一种功能强大的软件接口,既可以用于生成高质量的计算机图像,也可以用于编写使用2D和3D物体、位图和彩色图像的交互式应用程序。
      本书对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。本书的上一个版本覆盖了截止OpenGL2.1版的内容。这一版涵盖了OpenGL3.0和3.1的最新特性。本书以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3D模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、NURBS、图像处理等。另外,本书还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。
      本书进行了一些更新,涵盖了OpenGL3.0和3.1的最新特性,包括:
      使用帧缓冲区对象进行离屏渲染和纹理更新。
      各种新的缓冲区对象类型的示例,包括uniform缓冲区对象、变换反馈缓冲区和顶点数组对象。
      使用纹理数组提高使用众多纹理的性能。
      使用图元重启和条件渲染来高效地进行渲染。
      介绍OpenGL的废弃机制,以及如何针对OpenGL未来版本验证程序。
      本书继续对OpenGL着色语言(GLSL)展开讨论,并解释了使用这种语言创建复杂图形效果并提升OpenGL计算威力的机制。OpenGL技术资料库(OpenGLTechnicalLibrary)提供了大量的OpenGL教程和参考书籍,它可以帮助程序员深入理解OpenGL,完全释放OpenGL的潜力。这个资料库最初由SGI开发,目前由KhronosOpenGL体系结构审核委员会(ARB)工作组维护,这是负责指导OpenGL以及相关技术发展和演变的行业协会。
  • 作者简介:
    Dave Shreiner 是ARM公司的图形技术总监,长期担任SGI核心OpenGL组的成员。他首次开设了OpenGL的商业培训课程,拥有二十多年的计算机图形应用开发经验。Dave定期参加SIGGRAPH和其他全球性的图形工作会议。他是《OpenGL ES 2.0 Programming Guide》(Addison-Wesley,2009)和
  • 目录:
    译者序
    前言
    第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编程指南(原书第7版)
PHP和MySQL Web开发(原书第4版):PHP and MySQL Web Development, Fourth Edition
[澳]Luke、[澳]Luke Welling 著;武欣 译
OpenGL编程指南(原书第7版)
Objective-C 2.0程序设计
[美]科施恩 著;张波 译
OpenGL编程指南(原书第7版)
软件测试实用技术与常用模板
李龙 著
OpenGL编程指南(原书第7版)
PHP和MySQL Web开发
威利、武欣 著
OpenGL编程指南(原书第7版)
Windows高级调试
[美]赫瓦特 著;聂雪军 译
OpenGL编程指南(原书第7版)
测试驱动的面向对象软件开发
[美]弗里曼、[美]普雷斯 著;王海鹏 译
OpenGL编程指南(原书第7版)
成功的软件开发(原书第2版)
多纳尔德森 编;刘列励 译
OpenGL编程指南(原书第7版)
PHP和MySQL Web应用开发核心技术
温施耐德 著
OpenGL编程指南(原书第7版)
重构:Ruby版
[美]菲尔德斯 著;徐旭铭 译
OpenGL编程指南(原书第7版)
测试驱动的JavaScript开发
[美]Christian Johansen 著;赵勇 译
OpenGL编程指南(原书第7版)
Windows并发编程指南
[美]杜飞(Duffy J.) 著;聂雪军 译
OpenGL编程指南(原书第7版)
自动化软件测试实施指南
[美]达斯汀、[美]加瑞特、[美]高夫 著;余昭辉 译
相关图书 / 更多
OpenGL编程指南(原书第7版)
OpenCV轻松入门:面向Python(第2版)
李立宗
OpenGL编程指南(原书第7版)
OpenShift开发指南(原书第2版)
[美]约书亚·伍德 (美)布赖恩·坦努斯 著
OpenGL编程指南(原书第7版)
OpenCV 4.5计算机视觉开发实战:基于Python
朱文伟 李建英
OpenGL编程指南(原书第7版)
OpenCV计算机视觉项目实战(Python版)
洪锦魁
OpenGL编程指南(原书第7版)
OpenHarmony轻量设备开发理论与实战
齐耀龙
OpenGL编程指南(原书第7版)
OpenCV图像处理技术(微课版)
傅贤君
OpenGL编程指南(原书第7版)
OpenCV入门与技术实践
罗刚
OpenGL编程指南(原书第7版)
OpenCV图像处理实战
贾睿 主编;北京博海迪信息科技有限公司 组编
OpenGL编程指南(原书第7版)
OpenHarmony嵌入式系统原理与应用——基于RK2206芯片(微课视频版)
薛小铃
OpenGL编程指南(原书第7版)
OpenFOAM多物理场计算基础与建模
杨文明 编著
OpenGL编程指南(原书第7版)
OpenStack云计算平台搭建与管理(微课版)
姚骏屏 何桂兰
OpenGL编程指南(原书第7版)
OpenCV 4.0+Python机器学习与计算机视觉实战
[印]梅努阿·吉沃吉安 著;黄进青 译
您可能感兴趣 / 更多
OpenGL编程指南(原书第7版)
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
OpenGL编程指南(原书第7版)
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
OpenGL编程指南(原书第7版)
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
OpenGL编程指南(原书第7版)
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
OpenGL编程指南(原书第7版)
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
OpenGL编程指南(原书第7版)
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
OpenGL编程指南(原书第7版)
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
OpenGL编程指南(原书第7版)
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
OpenGL编程指南(原书第7版)
汤姆素亚历险记:中小学生课外阅读快乐读书吧 儿童文学无障碍有声伴读世界名著童话故事
[美]马克·吐温
OpenGL编程指南(原书第7版)
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
OpenGL编程指南(原书第7版)
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
OpenGL编程指南(原书第7版)
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译