OpenGL编程指南(原书第7版)(OpenGL红宝书)(china-pub首发)
基本信息
- 原书名: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1 (7th Edition)
- 原出版社: Addison-Wesley Professional
- 作者: (美)Dave Shreiner The Khronos OpenGL ARB Working Group [作译者介绍]
- 译者: 李军 徐波
- 丛书名: 开发人员专业技术丛书
- 出版社:机械工业出版社
- ISBN:9787111294504
- 上架时间:2010-3-15
- 出版日期:2010 年3月
- 开本:16开
- 页码:519
- 版次:7-1
- 所属分类:
计算机 > 数码/设计 > OpenGL
计算机 > 软件与程序设计 > 综合 > 高级程序语言设计
编辑推荐
由Khronos小组编写的官方指南
是OpenGL领域的权威著作,OpenGL红宝书
帮助程序员走上了OpenGL专家之路
推荐阅读
内容简介回到顶部↑
书籍
计算机书籍
本书对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以及相关技术发展和演变的行业协会。
计算机书籍
本书对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)和《OpenGL Reference Manual》(Addison-Wesley,2004)的作者,也是Addison-Wesley的OpenGL系列的编辑。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
译者序
前言
第1章 opengl简介 1
1.1 什么是opengl 1
1.2 一段简单的opengl代码 3
1.3 opengl函数的语法 4
1.4 opengl是一个状态机 6
1.5 opengl渲染管线 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.2 opengl实用工具库(glut) 10
1.7 动画 13
前言
第1章 opengl简介 1
1.1 什么是opengl 1
1.2 一段简单的opengl代码 3
1.3 opengl函数的语法 4
1.4 opengl是一个状态机 6
1.5 opengl渲染管线 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.2 opengl实用工具库(glut) 10
1.7 动画 13
译者序回到顶部↑
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版翻译工作的还有刘金华、刘伟超、罗庚臣、刘二然、郑芳菲、庄逸川、王世高、郭莹、陈、邓勇、何进伟、贾晓斌、汪蔚和齐国涛。机械工业出版社华章分社的编辑为本书的出版付出了辛勤劳动,感谢他们!
译者
2009年10月
的可移植性,并且具有非常快的渲染速度。如今,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版翻译工作的还有刘金华、刘伟超、罗庚臣、刘二然、郑芳菲、庄逸川、王世高、郭莹、陈、邓勇、何进伟、贾晓斌、汪蔚和齐国涛。机械工业出版社华章分社的编辑为本书的出版付出了辛勤劳动,感谢他们!
译者
2009年10月
前言回到顶部↑
OpenGL(Graphics Library,GL图形库)图形系统是图形硬件的一个软件接口,它允许我们创建交互性的程序,产生移动三维物体的彩色图像。使用OpenGL,我们可以对计算机图形技术进行控制,产生逼真的图像或者虚构出现实世界没有的图像。本书解释了如何使用OpenGL图形系统进行编程,实现所需要的视觉效果。
本书内容
本书共分15章。前5章描述了一些基本信息,读者需要理解这些内容,才能在场景中绘制正确着色和光照的三维物体。
·第1章对OpenGL可以实现的功能进行简要的介绍。该章还提供了一个简单的OpenGL程序,并介绍需要了解的一些基本编程细节,有助于学习后续章节的内容。
·第2章解释如何创建一个物体的三维几何图形描述,并最终把它绘制到屏幕上。
·第3章描述三维模型在绘制到二维屏幕之前如何进行变换。我们可以控制这些变换,显示模型的特定视图。
·第4章描述如何指定颜色以及用于绘制物体的着色方法。
·第5章解释如何控制围绕一个物体的光照条件,以及这个物体如何对光照作出反应(也就是说,它是如何反射或吸收光线的)。光照是一个重要的主题,因为物体在没有光照的情况下看上去往往没有立体感。
接下来的几章说明如何对三维场景进行优化以及如何添加一些高级特性。在没有精通OpenGL之前,读者可以选择不使用这些高级特性。有些特别高级的主题在出现时会有特殊的标记。
·第6章描述创建逼真场景所需要的一些基本技巧:alpha混合(创建透明物体)、抗锯齿(消除锯齿状边缘)、大气效果(模拟雾和烟雾)以及多边形偏移(在着重显示填充多边形的边框时消除不良视觉效果)。
·第7章讨论如何存储一系列的OpenGL命令,用于在以后执行。我们可以使用这个特性来提高OpenGL程序的性能。
·第8章讨论如何操作表示位图或图像的二维数据。位图的一种常见用途就是描述字体中的字符。
·第9章解释如何把称为纹理的一维、二维和三维图像映射到三维物体表面。纹理贴图可以实现许多非常精彩的效果。
·第10章描述OpenGL实现中可能存在的所有缓冲区,并解释如何对它们进行控制。我们可以使用这些缓冲区实现诸如隐藏表面消除、模板、屏蔽、运动模糊和景深聚焦等效果。
·第11章显示了如何使用GLU(OpenGL Utility Library,OpenGL工具函数库)中的分格化和二次方程函数。
·第12章介绍生成曲线和表面的高级技巧。
·第13章说明如何使用OpenGL的选择机制来选择屏幕上的一个物体。此外,该章还解释了反馈机制,它允许我们收集OpenGL所产生的绘图信息,而不是在屏幕上绘制物体。
·第14章描述如何用巧妙的或意想不到的方法来使用OpenGL,产生一些有趣的结果。这些技巧是通过对OpenGL及其技术前驱Silicon Graphics IRIS图形函数库的多年应用和实践总结出来的。
·第15章讨论OpenGL 2.0所引入的变化,包括对OpenGL着色语言的介绍。OpenGL着色语言通常又称为GLSL,它允许对OpenGL的顶点和片断处理阶段进行控制。这个特性可以极大地提高图像的质量,充分体现OpenGL的计算威力。
另外,本书还包括几个非常实用的附录:
本书内容
本书共分15章。前5章描述了一些基本信息,读者需要理解这些内容,才能在场景中绘制正确着色和光照的三维物体。
·第1章对OpenGL可以实现的功能进行简要的介绍。该章还提供了一个简单的OpenGL程序,并介绍需要了解的一些基本编程细节,有助于学习后续章节的内容。
·第2章解释如何创建一个物体的三维几何图形描述,并最终把它绘制到屏幕上。
·第3章描述三维模型在绘制到二维屏幕之前如何进行变换。我们可以控制这些变换,显示模型的特定视图。
·第4章描述如何指定颜色以及用于绘制物体的着色方法。
·第5章解释如何控制围绕一个物体的光照条件,以及这个物体如何对光照作出反应(也就是说,它是如何反射或吸收光线的)。光照是一个重要的主题,因为物体在没有光照的情况下看上去往往没有立体感。
接下来的几章说明如何对三维场景进行优化以及如何添加一些高级特性。在没有精通OpenGL之前,读者可以选择不使用这些高级特性。有些特别高级的主题在出现时会有特殊的标记。
·第6章描述创建逼真场景所需要的一些基本技巧:alpha混合(创建透明物体)、抗锯齿(消除锯齿状边缘)、大气效果(模拟雾和烟雾)以及多边形偏移(在着重显示填充多边形的边框时消除不良视觉效果)。
·第7章讨论如何存储一系列的OpenGL命令,用于在以后执行。我们可以使用这个特性来提高OpenGL程序的性能。
·第8章讨论如何操作表示位图或图像的二维数据。位图的一种常见用途就是描述字体中的字符。
·第9章解释如何把称为纹理的一维、二维和三维图像映射到三维物体表面。纹理贴图可以实现许多非常精彩的效果。
·第10章描述OpenGL实现中可能存在的所有缓冲区,并解释如何对它们进行控制。我们可以使用这些缓冲区实现诸如隐藏表面消除、模板、屏蔽、运动模糊和景深聚焦等效果。
·第11章显示了如何使用GLU(OpenGL Utility Library,OpenGL工具函数库)中的分格化和二次方程函数。
·第12章介绍生成曲线和表面的高级技巧。
·第13章说明如何使用OpenGL的选择机制来选择屏幕上的一个物体。此外,该章还解释了反馈机制,它允许我们收集OpenGL所产生的绘图信息,而不是在屏幕上绘制物体。
·第14章描述如何用巧妙的或意想不到的方法来使用OpenGL,产生一些有趣的结果。这些技巧是通过对OpenGL及其技术前驱Silicon Graphics IRIS图形函数库的多年应用和实践总结出来的。
·第15章讨论OpenGL 2.0所引入的变化,包括对OpenGL着色语言的介绍。OpenGL着色语言通常又称为GLSL,它允许对OpenGL的顶点和片断处理阶段进行控制。这个特性可以极大地提高图像的质量,充分体现OpenGL的计算威力。
另外,本书还包括几个非常实用的附录:








点击看大图






加载中...

