OpenGL 编程指南(原书第6版)
分類: 图书,计算机/网络,程序设计,其他,
作者: (美)施润尼(Shreiner,D)等著;徐波等译
出 版 社: 机械工业出版社
出版时间: 2008-8-1字数:版次: 1页数: 499印刷时间: 2008/08/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787111242017包装: 平装编辑推荐
OpenGL是一种功能强大的软件接口,用于生成高质量的计算机图像,也可以用于编写使用2D和3D物体、位图和彩色图像的交互性应用程序。
本书对OpenGL以及OpenGL实用函数库进行了全面而又权威的介绍,素有“OpenGL红宝书”之誉。本书以前的版本覆盖了到OpenGL 2.0版为止的内容。新版涵盖了OpenGL 2.1版本的最新特性。本书以清晰的语言描述了OpenGL的功能以及许多基本的计算机图形技巧。例如创建和渲染3D模型,从不同的透视角度观察物体,使用着色、光照和纹理贴图使场景更加逼真等。本书还深入探讨了许多高级技巧,包括纹理贴图、抗锯齿,雾和大气效果、NURBS、图像处理子集等。此外,本书还对一些重要的主题进行了讨论,例如提高性能、OpenGL扩展以及跨平台技术等。
第6版更新的内容如下:
使用服务器端的像素缓冲区实现快速的像素矩形下载和提取。
讨论了sRGB纹理格式。
对OpenGL着色语言进行了扩展讨论。
第6版继续对OpenGL着色语言(GLSL)展开讨论,并解释了使用这种语言创建复杂图形效果并提升OpenGL威力的机制。
OpenGL技术资料库(OpenGL Technical Library)提供了大量的OpenGL教程和参考书籍,它可以帮助程深入理解OpenGL,完全释放OpenGL的潜力。这个库最初由SGI开发,目前OpenGL体系结构审核委员ARB)的Steering小组(现在是Khronosd小组的一部分)所维护。另外还有一些行业协会,负责OpenGL以及相关技术的发展和演变。
内容简介
本书以清晰的语言、丰富的实例以及翔实的内容描述了OpenGL的功能以及许多计算机图形技巧。全书共15章,包括OpengGL简介、状态管理和绘制几何物体、视图、颜色、光照、混合、抗锯齿、雾、多边形偏移、显示列表、绘制像素、位图、字体、图像、纹理贴图、帧缓冲区、分格化和二次方程表面、求值器和NURBS、选择和反馈、OpenGL高级技巧以及OpenGL着色语言等内容。本书对OpenGL以及OpenGL实用函数库提供了全面而又权威的介绍,素有“OpenGL红宝书”之美誉。第6版在第5版的基础上进行了全面修订,涵盖了OpenGL2.1版本的最新特性。
作者简介
Dava Shreiner,是SGI的一位Opengl工程师,从OpenGL问世以来就一直从事这方面的研究,并且在计算机图形领域已有15年以上的工作经验。Dave定期参加SIGGRAPH和其他一些全球性的图形工作会议,也是《OpenGL Reference Manual》一书的作者。
目录
译者序
前言
第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 动画
1.7.1 暂停刷新
1.7.2 动画 = 重绘 + 交换
第2章 状态管理和绘制几何物体
2.1 绘图工具箱
2.1.1 清除窗口
2.1.2 指定颜色
2.1.3 强制完成绘图操作
2.1.4 坐标系统工具箱
2.2 描述点、直线和多边形
2.2.1 什么是点、直线和多边形?
2.2.2 指定顶点
2.2.3 OpenGL几何图元
2.3 基本状态管理
2.4 显示点、直线和多边形
2.4.1 点的细节
2.4.2 直线的细节
2.4.3 多边形的细节
2.5 法线向量
2.6 顶点数组
2.6.1 步骤1:启用数组
2.6.2 步骤2:指定数组的数据
2.6.3 步骤3:解引用和渲染
2.7 缓冲区对象
2.7.1 创建缓冲区对象
2.7.2 激活缓冲区对象
2.7.3 用数据分配和初始化缓冲区对象
2.7.4 更新缓冲区对象的数据值
2.7.5 清除缓冲区对象
2.7.6 使用缓冲区对象存储顶点数据数据
2.8 属性组
2.9 关于创建多边形表面模型的一些提示
2.9.1 例子:创建一个二十面体
第3章 视图
3.1 简介:照相机比喻
3.2.1 一个简单的例子:绘制立方体
3.1.2 通用的变换函数
3.2 视图和模型变换
3.2.1 对变换进行思考
3.2.2 模型变换
3.2.3 视图变换
3.3 投影变换
3.3.1 透视投影
……
第4章 颜 色
第5章 光照
第6章 混合、抗锯齿、雾和多边形偏移
第7章 显示列表
第8章 绘制像素、位图、字体和图像
第9章 纹理贴图
第10章 帧缓冲区
第11章 分格化和二次方程表面
第12章 求值器和NURBS
第13章 选择和反馈
第14章 OpenGL高级技巧
第15章 OpenGL着色语言
附录A 操作顺序
附录B 状态变量
附录C OpenGL和窗口系统
附录D GLUT(OpenGL实用工具库)基础知识
附录E 计算法线向量
附录F 齐次坐标和变换矩阵
附录G 编程提示
附录H OpenGL的不变性规则
附录I OpenGL着色语言内置的变量和函数
术语表
书摘插图
第1章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中,程序员必须根据一些为数不多的基本几何图元(如点、直线和多边形)来创建所需要的模型。
……