基本信息
- 原书名:OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2.1 (6th Edition)
- 原出版社: Addison-Wesley Professional
- 作者: (美)OpenGL Architecture Review Board Dave Shreiner Mason Woo Jackie Neider Tom Davis
- 译者: 徐波
- 丛书名: 华章程序员书库
- 出版社:机械工业出版社
- ISBN:9787111242017
- 上架时间:2008-9-1
- 出版日期:2008 年8月
- 开本:16开
- 页码:499
- 版次:6-1
- 所属分类:计算机 > 软件与程序设计 > 综合 > 高级程序语言设计
计算机 > 图形图像、多媒体、网页制作 > OpenGL

【插图】

编辑推荐
详实权威的OpenGL红宝书.
学习OpenGL的官方指南...
内容简介
作译者
目录
前言
第1章 OpenGL简介
1.1 什么是OpenGL?
1.2 一段简单的OpenGL代码
1.3 OpenGL函数的语法
1.4 OpenGL是个状态机
1.5 OpenGL渲染管线
1.5.1 显示列表
1.5.2 求值器
1.5.3 基于顶点的操作
1.5.4 图元装配
1.5.5 像素操作
1.5.6 纹理装配
1.5.7 光栅化
1.5.8 片断操作
1.6 与OpenGL相关的函数库
1.6.1 包含文件
1.6.2 GLUT,OpenGL实用工具包
1.7 动画
译者序
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专家之路。第6版在第5版的基础上又有改所进。
作为本书的主要翻译者,我在《OpenGL编程指南》第3版问世时(2001年)开始涉猎OpenGL,并对它产生了浓厚的兴趣。虽然由于开发工作的繁忙,在OpenGL上面无法投入太多的精力,但它一直是我感兴趣的一个领域。2006年,我承担了本书第5版的翻译任务,对OpenGL有了更加细致深入的研究。在翻译第6版时,除了OpenGL新特性之外,还对原来的翻译内容进行了仔细的修改和完善,并纠正了第5版所存在的一些小问题。
本书的翻译是个艰苦的过程,其中凝结了许多人的辛勤工作。除了我之外,黄静、李福军、陈永军、毛玉山、朱健儿、韩建正、张汉宏也参加了本书的翻译工作。机械工业出版社华章分社的编辑为本书的出版付出了辛勤劳动,感谢他们!...
徐 波
2008年4月
前言
本书内容
本书共分15章。前5章描述了一些基本信息,读者需要理解这些内容才能够在场景中绘制正确着色和光照的三维物体。
·第1章“OpenGL简介”:对OpenGL可以实现的功能进行简要的介绍。该章还提供了一个简单的OpenGL程序,并解释需要了解的一些基本编程细节,有助于学习后续章节的内容。
·第2章“状态管理和绘制几何物体”:解释如何创建一个物体的三维几何图形描述,并最终把它绘制到屏幕上。
·第3章“视图”:描述三维模型在绘制到二维屏幕之前如何进行变换。我们可以控制这些变换,显示模型的特定视图。
·第4章“颜色”:描述如何指定颜色以及用于绘制物体的着色方法。
·第5章“光照”:解释如何控制围绕一个物体的光照条件,以及这个物体如何对光照作出反应(也就是说,它是如何反射或吸收光线的)。光照是个重要的主题,因为物体在没有光照的情况下看上去往往没有立体感。
接下来的几章说明如何对三维场景进行优化以及如何添加一些高级特性。在还没有精通OpenGL之前,读者可以选择不使用这些高级特性。有些特别高级的主题在出现时会有特殊的标记。
·第6章“混合、抗锯齿、雾和多边形偏移”:描述创建逼真场景所需要的一些基本技巧:alpha混合(创建透明物体)、抗锯齿(消除锯齿状边缘)、大气效果(模拟雾和烟雾)以及多边形偏移(在着重显示填充多边形的边框时消除不良视觉效果)。
·第7章“显示列表”:讨论如何存储一系列的OpenGL命令,用于在以后执行。我们可以使用这个特性来提高OpenGL程序的性能。
·第8章“绘制像素、位图、字体和图像”:讨论如何操作表示位图或图像的二维数据。位图的一种常见用途就是描述字体中的字符。
·第9章“纹理贴图”:解释如何把称为纹理的一维、二维和三维图像映射到三维物体表面。纹理贴图可以实现许多非常精彩的效果。
·第10章“帧缓冲区”:描述OpenGL实现中可能存在的所有缓冲区,并解释如何对它们进行控制。我们可以使用这些缓冲区实现诸如隐藏表面消除、模板、屏蔽、运动模糊和景深聚焦等效果。
·第11章“分格化和二次方程表面”:显示了如何使用GLU(OpenGL Utility Library,OpenGL工具函数库)中的分格化和二次方程函数。
·第12章“求值器和NURBS”:介绍生成曲线和表面的高级技巧。
·第13章“选择和反馈”:说明如何使用OpenGL的选择机制来选择屏幕上的一个物体。此外,该章还解释了反馈机制,它允许我们收集OpenGL所产生的绘图信息,而不是在屏幕上绘制物体。
·第14章“OpenGL高级技巧”:描述如何用一些巧妙或意想不到的方法来使用OpenGL,产生一些有趣的结果。这些技巧是通过对OpenGL及其技术前驱Silicon Graphics IRIS图形函数库的多年应用和实践而总结出来的。
·第15章“OpenGL着色语言”:讨论OpenGL 2.0所引入的变化,包括对OpenGL着色语言的介绍。OpenGL着色语言通常又称为GLSL,它允许对OpenGL的顶点和片断处理阶段进行控制。这个特性可以极大地提高图像的质量,充分体现OpenGL的计算威力。
另外,本书还包括几个非常实用的附录:
书摘
本章目标
大致了解OpenGL的功能
了解不同程度的渲染复杂性
理解OpenGL程序的基本结构
了解OpenGL函数的语法
了解OpenGL渲染管线的操作序列
大致了解如何在OpenGL程序中实现动画
本章对OpenGL进行了简单的介绍,其内容主要分布于下面几节中。
“什么是OpenGL”:介绍OpenGL是什么,它能够做什么,不能够做什么,以及它的工作原理。
“一段简单的OpenGL代码”:展示一个小型的OpenGL程序,并对它进行了简单的讨论,还定义了一些基本的计算机图形术语。
“OpenGL函数的语法”:解释OpenGL函数所使用的一些约定和记法。
“OpenGL是个状态机”:描述OpenGL状态变量的用法,并介绍一些查询、启用和禁用OpenGL状态的函数。
“OpenGL渲染管线”:展示一个用于处理几何和图像数据的典型操作序列。
“与OpenGL相关的函数库”:介绍了一些与实用OpenGL相关的函数,包括对GLUT(Graphics Library utility Toolkit,一种可移植的工具库)的详细介绍。
“动画”:简单介绍如何创建能够在屏幕上移动的图片。
1.1什么是OpenGL
OpenGL是图形硬件的一种软件接口。这个接口所包含的函数超过700个(其中核心OpenGL大约包括650个函数,另外50个左右的函数位于OpenGL工具库),这些函数可以用于指定物体和操作,创建交互式的三维应用程序。
OpenGL的设计目标就是作为一种流线型的、独立于硬件的接口,可以在许多不同的硬件平台上实现。为了实现这个目标,OpenGL并未包含用于执行窗口任务或者获取用户输入之类的函数。反之,必须通过具体的窗口系统来控制OpenGL应用程序所使用的特定硬件。类似,OpenGL并没有提供用于描述三维物体模型的高级函数。这类函数可能允许指定相对较为复杂的形状,例如汽车、身体的某个部位、飞机或分子等。在OpenGL中,程序员必须根据一些为数不多的基本几何图元(如点、直线和多边形)来创建所需要的模型。
……