2016-08-12 14:50:45

CG - 2014年电子工业出版社出版社出版Warren R. Carithers,M. Pauline Ba 免费编辑 修改义项名

所属类别 :
图书
图书
编辑分类

2014年电子工业出版社出版社出版Warren R. Carithers,M. Pauline Baker,Donald Hearn编著图书。

基本信息

  • 中文名

    计算机图形学

  • 定价

    89.00

  • 作者

    Warren R. Carithers,M. Pauline Baker,Donald Hearn

  • 出版社

    电子工业出版社

  • 出版日期

    2014-11

  • ISBN

    9787121246142

  • 原作名

    Computer Graphics with OpenGL, 4th Ed.

  • 译者

    蔡士杰,杨若瑜

折叠 编辑本段 简介

著名作者的经典著作,时隔8年的版本更新,本书对篇幅结构做了大量调整,新增了许多内容,使本书更适合目前技术实践的进展。

折叠 编辑本段 作者简介

Donald Hearn 从1985年开始任教于美国伊利诺伊大学Urbana-Champaigh分校的计算机科学系。Hearn博士担任过多门课程的教学工作,包括计算机图形学、科学计算可视化、计算科学、数学和应用科学等。他还指导过多个研究项目并在该领域发表了许多学术论文。

折叠 编辑本段 目录

第1章计算机图形学综述

1.1图和表

1.2计算机辅助设计

1.3虚拟现实环境

1.4数据可视化

1.5教学与培训

1.6计算机艺术

1.7娱乐

1.8图像处理

1.9图形用户界面

1.10小结

参考文献

第2章计算机图形硬件

2.1视频显示设备

2.2光栅扫描系统

2.3图形工作站和观察系统

2.4输入设备

2.5硬拷贝设备

2.6图形网络

2.7因特网上的图形

2.8小结

参考文献

练习题

附加综合题

第3章计算机图形软件

3.1坐标表示

3.2图形功能

3.3软件标准

3.4其他图形软件包

3.5OpenGL简介

3.6小结

参考文献

练习题

附加综合题

第4章输出图元

4.1坐标系统

4.2OpenGL中指定二维世界坐标系统

4.3OpenGL画点函数

4.4OpenGL画线函数

4.5OpenGL曲线函数

4.6填充区图元

4.7多边形填充区

4.8OpenGL多边形填充区函数

4.9OpenGL顶点数组

4.10像素阵列图元

4.11OpenGL像素阵列函数

4.12字符图元

4.13OpenGL字符函数

4.14图形分割

4.15OpenGL显示表

4.16OpenGL显示窗口重定形函数

4.17小结

示例程序

参考文献

练习题

附加综合题

第5章图元的属性

5.1OpenGL状态变量

5.2颜色和灰度

5.3OpenGL颜色函数

5.4点的属性

5.5OpenGL点属性函数

5.6线的属性

5.7OpenGL线属性函数

5.8曲线属性

5.9填充区属性

5.10OpenGL填充区属性函数

5.11字符属性

5.12OpenGL字符属性函数

5.13OpenGL反走样函数

5.14OpenGL询问函数

5.15OpenGL属性组

5.16小结

参考文献

练习题

附加综合题

第6章实现图元及属性的算法

6.1画线算法

6.2并行画线算法

6.3帧缓存值的装载

6.4圆生成算法

6.5椭圆生成算法

6.6其他曲线

6.7并行曲线算法

6.8像素编址和对象的几何要素

6.9直线段和曲线属性的实现

6.10通用扫描线填充算法

6.11凸多边形的扫描线填充

6.12曲线边界区域的扫描线填充

6.13不规则边界区域的填充方法

6.14填充模式的实现方法

6.15反走样的实现方法

6.16小结

参考文献

练习题

附加综合题

第7章二维几何变换

7.1基本的二维几何变换

7.2矩阵表示和齐次坐标

7.3逆变换

7.4二维复合变换

7.5其他二维变换

7.6几何变换的光栅方法

7.7OpenGL光栅变换

7.8二维坐标系间的变换

7.9OpenGL二维几何变换函数

7.10OpenGL几何变换编程示例

7.11小结

参考文献

练习题

附加综合题

第8章二维观察

8.1二维观察流水线

8.2裁剪窗口

8.3规范化和视口变换

8.4OpenGL二维观察函数

8.5裁剪算法

8.6二维点裁剪

8.7二维线段裁剪

8.8多边形填充区裁剪

8.9曲线的裁剪

8.10文字的裁剪

8.11小结

参考文献

练习题

附加综合题

第9章三维几何变换

9.1三维平移

9.2三维旋转

9.3三维缩放

9.4三维复合变换

9.5其他三维变换

9.6三维坐标系间的变换

9.7仿射变换

9.8OpenGL几何变换函数

9.9OpenGL几何变换编程示例

9.10小结

参考文献

练习题

附加综合题

第10章三维观察

10.1三维观察概念综述

10.2三维观察流水线

10.3三维观察坐标系参数

10.4世界坐标系到观察坐标系的变换

10.5投影变换

10.6正投影

10.7斜投影

10.8透视投影

10.9视口变换和三维屏幕坐标系

10.10OpenGL三维观察函数

10.11三维裁剪算法

10.12OpenGL任选裁剪平面

10.13小结

参考文献

练习题

附加综合题

第11章层次建模

第12章计算机动画

第13章三维对象的表示

第14章样条表示

笛15章其他三维对象的表示

第16章可见面判别算法

第17章光照模型与面绘制算法

第18章纹理与表面细节添加方法

第19章颜色模型和颜色应用

第20章图形用户界面和交互输入方法

第21章全局光照

笛22章可编程着色器

第23章基于算法的建模

第24章数据集可视化

附录A计算机图形学的数学基础

附录B图形文件格式

附录COpenGL的世界

参考文献

索引

OpenGL函数索引

折叠 编辑本段 序言

译  者  序

交互式计算机图形学的飞速发展令人兴奋, 其广泛的应用使科学、 艺术、 工程、 商务、 工业、 医药、 政府、 娱乐、 广告、 教学、 培训和家庭等各方面均获得巨大收益。     由Donald Hearn和M. Pauline Baker合著的《计算机图形学》初版于1986年, 在1994年进行了部分修改, 1997年又将其重写, 推出了第二版。2004年, 两位作者再次对本书进行了大幅度的修改, 推出了第三版。本书第二版和第三版的中文翻译版在国内深受广大读者的欢迎。2011年作者在总结多年教学实践的基础上, 对第三版再次进行了从内容到习题的全面扩充, 覆盖了计算机图形学的最新进展, 并对主题顺序进行了更合理的组织, 推出了现在的第四版。

为了适应计算机图形学的发展并促进其应用, 几乎所有的高等学校均已开设了计算机图形学课程。人们都希望有更新、 更好的计算机图形学教材。基于对本书不断修改、 越来越完善的认同, 我们继续把本书第四版介绍给国内读者, 希望能对计算机图形学的教学、 研究与应用起到积极的作用。     本书由蔡士杰和杨若瑜共同翻译。蔡士杰翻译了第1章~第13章, 杨若瑜翻译了其余部分。由于译者的水平有限, 书中难免出现错误和不妥之处, 敬请读者不吝赐教。

前    言中文翻译版中的一些字体、 正斜体、 图示等沿用了英文原版的写作风格, 特此说明。

计算机图形学是最激动人心且快速增长的现代技术之一。自本书第一版出版以来, 计算机图形学已成为应用软件和普通计算机系统中的标准特性。计算机图形学方法已被应用到许多产品的设计之中, 如培训仿真、 音乐视频和电视广告的制作、 体育图片、 数据分析、 科学研究、 医疗等。这些应用领域现在已使用大量的技术和硬件设备或正在研发新的技术与硬件设备。多数今天的计算机图形学研究重点仍在于增强有效性、 现实性和图片生成的速度方面。这些领域的复杂材料如头发、 布料和液压传动研究的现实渲染的困难性, 以及图像处理、 动画和表面表示, 仍是研究人员关注的焦点。作为商品的高级图形硬件的可用性, 意味着任何计算机实际上可生成高质量的图像, 并且可编程图形处理的使用与提高效率是人们日益关注的研究领域之一。

第四版的新特性

过去几年来授课时的各种讲义内容, 已添加到了第四版中, 包括计算机图形学导论、 高级计算机图形学、 科学可视化、 专题和项目课程等。● 罗切斯特理工大学的Warren Carithers教授加入了本书的编写。

● 新增了通过OpenGL Shading Language (GLSL)来介绍可编程着色器一章。

● 给出了OpenGL演化的内容, 并简要介绍了OpenGL 3.x和4.x的不同, 以及CPU体系结构的过去、 现在与将来。

● 解释了在非C和C++语言(如Java和Python语言)中使用OpenGL的方法。

● 将图元和属性的实现算法组织到单独的一章中。

● 将光照模型、 纹理映射和全局照明的内容重新组织到更为紧凑的几章中。

● 更早地探讨了分层建模和动画的内容。

● 重新组织了关于三维对象表示的内容。

● 重新组织了关于二维和三维变换及查看的内容。

● 150道新增习题。

灵活的主题顺序

计算机图形学导论课程是使用许多方法和主题集来讲授的, 我们充分地重组了许多章节的内容和顺序, 以便更灵活地呈现各个主题。名义上, 图元和属性的实现方法已经组合为单独的一章, 而涉及许多主题的较大章节则拆分为几个更小的章节, 以便重点探讨各个主题的内容。

150道新习题和新习题集

与前一版相比, 第四版修订或替换了150道习题, 并在每章的习题部分, 创建了名为“In More Depth”的一个新特性。许多情形下, 这些习题衔接了各章的内容, 允许学生以一种高级的方式来开发OpenGL程序。

OpenGL的变化

在使用可编程GPU的情形下, 许多图形API(包括OpenGL)正在转为使用可编程着色器来对强大的硬件提供直接访问。相应地, 书中也添加了相关的内容, 这些内容以一种灵活的方式来表现, 新增了一个附录来专门介绍OpenGL的演化、 OpenGL在非C和C++语言中的使用、 GPU的性能等。自本书前一版出版以来, OpenGL的性能已经在很大程度上得到了改观。当时, OpenGL推出仅十多年, 并且刚发布版本为OpenGL 1.5。尽管当时OpenGL的功能已经很强大, 但仍是使用原始的定点函数流水线模型实现的。自那以后, OpenGL的内部组成得到了很大提升, 可以更好地使用当前的图形硬件; 进而这些提升导致了OpenGL API的重要变化。

在准备本书的这一版时, 我们讨论过是否需要完全修订关于OpenGL及新API的内容。经过与教师的仔细探讨及沟通, 我们决定在这一版的讨论中继续使用最初的接口和例子, 原因如下: ● 本书提供的只是OpenGL的简单介绍, 并且最初的API对于选修图形学的学生来说更易于掌握。

● 在现在及可以预见的将来, 仍有大量使用最初API的原有OpenGL代码。

● OpenGL的最新版仍以一种兼容的方式支持最初的API。

● 对于几种流行的操作系统, 唯一可用的OpenGL实现仅支持最初的API。

关于封面

原版书的封面图像是一块方形板被钢弹击中时破裂的静态仿真画面。这一仿真是使用有限元代码计算的, 有限元代码动态地重构了仿真过程中的格网。重新划分格网也调整了仿真格网的分辨率, 因此足以解决破裂这一复杂的物理效果。这一方法的详细描述, 请参阅Martin Wicke、 Daniel Ritchie、 Bryan M. Klingner、 Sebastian Burke、 Jonathan R. Shewchuk和James F. O’Brien于2010年7月在学报ACMSIGGRAPH上发表的文章“Dynamic Local Remeshing for Elastoplastic Simulation”。

编程示例

第四版中提供了20多个完整的C++程序, 这些程序使用了OpenGL、 GLU和GLUT库文件。这些程序演示了基本的构图技术、 二维和三维几何变换、 二维和三维查看方法、 透视投影、 样条生成、 分形方法、 交互式鼠标输入、 选取操作、 菜单和子菜单显示及动画技术的应用。此外, 给出了100多个C++/OpenGL程序段, 来演示剪切、 光照效果、 表面渲染、 纹理映射、 可编程着色和许多其他计算机图形学方法的算法实现。

先修课程要求

我们假定读者之前并不了解计算机图形学, 但要求读者具备计算机编程和基本的数据结构知识, 如数组、 指针列表、 文件和记录等。在计算机图形学算法中, 使用了许多数学方法, 它们在附录A中详细描述。附录A中包含的数学主题有解析几何、 线性代数、 矢量和张量分析、 复数、 四元法、 基本积分学和数值分析等。第四版既可作为之前无计算机图形学背景的学生的教材, 也可作为图形专业人士的参考书。本书的重点在于设计、 使用和理解计算机图形系统时所需的基本原理, 并且提供了大量的示例程序来演示每个主题的方法与应用。

课程教学建议

一学期或两学期课程

对于一学期的课程, 可根据课程设置的要求, 选择讲授关于二维方法的主题, 或组合讲授二维与三维方法的主题。对于两学期的课程, 可在第一学期介绍基本的图形学概念与算法, 然后在第二学期介绍高级的三维方法。

对于本科生的计算机图形学导论课程, 可选择讲授第2章至第10章及第17章至第20章的内容。从这些章节中, 仅选择关于二维或三维(或二维和三维的组合)方法的小节, 以及关于光照和彩色的有限内容。另外一些主题, 如分形表示、 样条曲线、 纹理映射或深度缓存, 可在第一次计算机图形学课程中介绍。

对于导论性研究生课程或高年级本科生课程, 则要将重点放在三维查看、 三维建模、 光照模型和表面渲染方法上。但一般来说, 两学期的课程可以更好地覆盖二维和三维计算机图形学方法的基础知识, 包括样条表示、 表面渲染和射线追踪等。

对于具备基本计算机图形学知识的学生, 可以在一两个领域开设专题课程, 如可视化技术、 分形几何、 射线追踪、 辐射度和计算机动画。

自学者

对于自学者, 可学习前面的几章来了解图形学的基本概念, 然后从后面的几章中选学相关的主题。

章节内容

第1章通过研究人们使用图形软件生成的各类图片, 来说明计算机图形学应用的多样性。第2章给出计算机图形学的基本词汇, 并简单介绍图形系统的硬件和软件组成。第3章详细介绍OpenGL, 并给出一个完整的OpenGL示例程序。第4章至第6章介绍简单对象表示与显示的基本方法, 并探讨生成基本图片成分(如多边形和圆)的方法, 以及设置对象颜色、 大小和其他属性的方法。第4章和第5章介绍这些主题并探讨它们在OpenGL中的使用; 第6章介绍绘制图元并修改属性的底层算法。第7章和第8章讨论在二维场景中执行几何变换(如旋转和缩放)和查看变换的算法; 第9章和第10章讨论在三维场景中执行几何变换和查看变换的算法。第11章介绍复杂系统的分层建模方法。第12章介绍计算机动画技术。第13章、 第14章和第15章讨论复杂对象(如二次曲面、 样条和实心几何体)的显示方法。第16章介绍在三维场景中识别可视对象的各种计算机图形学技术。第17章介绍照明模型和对场景应用光照条件的方法。第18章介绍表示表面细节的纹理与方法。第19章介绍计算机图形学中有用的各种彩色模型和设计彩色的考虑因素。第20章介绍交互式图形输入和设计图形用户界面的方法。第21章介绍与全局照明相关的概念。第22章介绍可编程着色器。第23章介绍分形、 粒子系统和其他建模技术。第24章讨论数据集的可视化。

教学资源申请方式请参见书末的“教学支持说明”。

以下受保护的教学资源可通过出版商的网站http

折叠 编辑本段 文摘

基本的点属性是颜色和大小。线属性有颜色、宽度和类型。线宽用标准的单像素宽度的倍数来指定。线型属性包括实线、划线和点线及各种画刷或画笔类型。这些属性可以应用于直线段和曲线。

填充区域属性包括实心颜色填充、填充图案填充或仅仅显示区域边界的空心填充。各种图案填充用颜色阵列来描述,然后映射到区域内部。扫描线方法常用于填充多边形、圆和椭圆。

区域也可以用颜色调和来填充。这种类型的填充应用于反走样和绘画软件包。软填充程序为区域提供了一个与先前填充颜色有相同变化的新填充颜色。

字符可以按照不同颜色、大小、间隔和方向进行显示。为了设置字符串的方向,我们选择字符向上向量的方向和文本路径的方向。此外,我们可以设置相对于起始坐标位置的文字串对齐方式。标记符号可以通过选择各种大小和颜色的标准字符和专用符号进行显示。

由于扫描转换是光栅系统的一个数字化过程,因此显示图元有阶梯效应。这是由于将坐标值取整到像素位置造成的信息低取样所形成的。我们可以通过应用调整像素强度的反走样过程来改善光栅图元的外貌。

OpenGL中,图元的属性值由状态变量来维护。一次属性设定保证对在其后定义的图元都有 效,直到该属性值再次被改变。改变一个属性值不会影响前面的图元显示。在OpenGL中可以用RGB(或RGBA)颜色模式或使用颜色表索引所选颜色的颜色索引模式来指定颜色。我们也可以使用α颜色分量来调和颜色值。我们还可以在颜色数组中指定与顶点数组相邻的值。除颜色外,OpenGL还提供选择点大小、线宽、线型和多边形顶点填充类型的函数,并提供显示用一组边或一组顶点定义的多边形填充区域的函数。我们也可以从显示中消除多边形的指定边,可以颠倒前向面和后向面的描述。在OpenGL中,字符串可以使用GLUT中的点阵或子程序来生成。为显示GLUT字符而设定的属性包括颜色、字体、大小、间隔、线宽和线型。OpenGL函数库中也提供对输出图元显示反走样的函数。我们可以用查询函数来获得状态变量的当前值,也可以用一个函数获得一组OpenGL属性的所有值。

[1]

参考资料
  • 1. CG . [2016-05-15]

阅读全文

热点资讯

我的关注