OpenGL编程指南(原书第7版)
¥
15.97
1.8折
¥
89
九品
仅1件
作者 [美]施瑞奈尔 著;李军 译
出版社 机械工业出版社
出版时间 2010-03
版次 1
装帧 平装
货号 A1
上书时间 2024-12-12
商品详情
品相描述:九品
图书标准信息
作者
[美]施瑞奈尔 著;李军 译
出版社
机械工业出版社
出版时间
2010-03
版次
1
ISBN
9787111294504
定价
89.00元
装帧
平装
开本
大16开
纸张
胶版纸
页数
519页
正文语种
简体中文
原版书名
OpenGL programming guide
丛书
开发人员专业技术丛书
【内容简介】
本书对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
点击展开
点击收起
— 没有更多了 —
本店暂时无法向该地区发货
以下为对购买帮助不大的评价