出版时间:2010-3 出版社:机械工业出版社 作者:[美] Dave Shreiner 页数:519 译者:李军,徐波 [等]
Tag标签:无
前言
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版翻译工作的还有刘金华、刘伟超、罗庚臣、刘二然、郑芳菲、庄逸川、王世高、郭莹、陈、邓勇、何进伟、贾晓斌、汪蔚和齐国涛。机械工业出版社华章分社的编辑为本书的出版付出了辛勤劳动,感谢他们!
内容概要
本书对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。本书的上一个版本覆盖了到OpenGL 2.1版的内容。本版涵盖了OpenGL 3.0和3.1的最新特性。本书以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3D模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。另外,本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、NURBS、图像处理子集等。此外,本书还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。本书内容详实,讲解生动,图文并茂,是OpenGL程序员的绝佳编程指南。 OpenGL是一种功能强大的软件接口,既可以用于生成高质量的计算机图像,也可以用于编写使用2D和3D物体、位图和彩色图像的交互式应用程序。 本书对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。本书的上一个版本覆盖了截止OpenGL 2.1版的内容。这一版涵盖了OpenGL 3.0和3.1的最新特性。本书以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧,例如创建和渲染3D模型、从不同的透视角度观察物体、使用着色、光照和纹理贴图使场景更加逼真等。本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿、雾和大气效果、NURBS、图像处理等。另外,本书还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。 本书进行了一些更新,涵盖了OpenGL 3.0和3.1的最新特性,包括: 使用帧缓冲区对象进行离屏渲染和纹理更新。 各种新的缓冲区对象类型的示例,包括uniform缓冲区对象、变换反馈缓冲区和顶点数组对象。 使用纹理数组提高使用众多纹理的性能。 使用图元重启和条件渲染来高效地进行渲染。 介绍OpenGL的废弃机制,以及如何针对OpenGL未来版本验证程序。 本书继续对OpenGL着色语言(GLSL)展开讨论,并解释了使用这种语言创建复杂图形效果并提升OpenGL计算威力的机制。OpenGL技术资料库(OpenGL Technical Library)提供了大量的OpenGL教程和参考书籍,它可以帮助程序员深入理解OpenGL,完全释放OpenGL的潜力。这个资料库最初由SGI开发,目前由Khronos OpenGL体系结构审核委员会(ARB)工作组维护,这是负责指导OpenGL以及相关技术发展和演变的行业协会。
作者简介
Dave Shreiner 是ARM公司的图形技术总监,长期担任SGI核心OpenGL组的成员。他首次开设了OpenGL的商业培训课程,拥有二十多年的计算机图形应用开发经验。Dave定期参加SIGGRAPH和其他全球性的图形工作会议。他是《OpenGL ES 2.0 Programming Guide》(Addison-Wesley,2009)和
书籍目录
译者序 前言 第1章 OpenGL简介 第2章 状态管理和绘制几何物体 第3章 视图 第4章 颜色 第5章 光照 第6章 混合、抗锯齿、雾和多边形偏移 第7章 显示列表 第8章 绘制像素、位图、字体和图像 第9章 纹理贴图 第10章 帧缓冲区 第11章 分格化和二次方程表面 第12章 求值器和NURBS 第13章 选择和反馈 第14章 OpenGL高级技巧 第15章 OpenGL着色语言 附录A GLUT(OpenGL实用工具库)基础知识 附录B 状态变量 附录C 齐次坐标和变换矩阵 附录D OpenGL和窗口系统 术语表
章节摘录
插图:如果读者刚开始涉足三维图形编程,可能会对接下来的内容感到吃力。现在可以跳过这一部分内容,但是在读完本书的每一章时,都应该重温一下图1-2。图1-2显示了Henry Ford在福特汽车公司所采用的装配线方法,它也是OpenGL处理数据的方法。几何数据(顶点、直线和多边形)所经历的处理阶段包括求值器和基于顶点的操作,而像素数据(像素、图像和位图)的处理过程则有所不同。在最终的像素数据写入到帧缓冲区之前,这两种类型的数据都将经过相同的最终步骤(光栅化和基于片断的操作)。下面,我们更为详细地介绍OpenGL渲染管线的一些关键阶段。1.5.1显示列表任何数据,不论它描述的是几何图元还是像素,都可以保存在显示列表(display list)中,供当前或以后使用。当然,也可以不把数据保存在显示列表中,而是立即对数据进行处理,这种模式也叫做立即模式(immediate mode)。当一个显示列表执行时,保存的数据就从显示列表中取出,就像在立即模式下直接由应用程序发送的那样。关于显示列表的详细内容,请参见第7章。1.5.2求值器所有的几何图元最终都要通过顶点来描述。参数化曲线和表面最初可能是通过控制点以及叫做基函数(basic function)的多项式函数进行描述的。求值器提供了一种方法,根据控制点计算表示表面的顶点。这种方法是一种多项式映射,它可以根据控制点产生表面法线、纹理坐标、颜色以及空间坐标值。关于求值器的详细内容,请参阅第12章。1.5.3基于顶点的操作对于顶点数据,接下来的一个步骤是“基于顶点的操作”,就是把顶点变换为图元。有些类型的顶点数据(例如空间坐标)是通过一个4 x 4的浮点矩阵进行变换的。空间坐标从3D世界的一个位置投影到屏幕上的一个位置。有关变换矩阵的详细内容,请参阅第3章。如果启用了高级特性,这个阶段将更为忙碌。如果使用了纹理,这个阶段还将生成并变换纹理坐标。如果启用了光照,就需要综合变换后的顶点、表面法线、光源位置、材料属性以及其他光照信息进行光照计算,产生最终的颜色值。
图书封面
图书标签Tags
无
评论、评分、阅读与下载