本书是计算机图形学领域的经典著作。本书由基础知识、用户界面、模型定义和图像合成四个部分组成,包括SRGP的编程、画二维图元的基本光栅图形学算法、图形硬件、几何变换、三维空间的观察、对象的层次结构和SPHIGS系统、输入设备、交互技术与交互任务、对话设计、用户界面软件、实体造型、消色光与彩色光、可视图像的真实性、可见面判定、光照模型与光照计算、图像处理与存储、高级光栅图形体系结构、高级几何与光栅算法、高级建模技术和动画等内容。
\r\n 本书内容全面,涉及图形学的各个领域,可以作为计算机专业本科生和研究生的教材,同时也可供相关技术人员阅读。
出版者的话\r\n专家指导委员会\r\n译者序\r\n前言\r\n第1章 导言\r\n 1.1 作为图像分析的图像处理\r\n 1.2 交互式图形学的优点\r\n 1.3 计算机图形学的典型用途\r\n 1.4 应用分类\r\n 1.5 计算机图形学硬件与软件的发展\r\n 1.6 交互式图形学的概念框架\r\n 1.7 小结\r\n第2章 简单光栅图形软件包(SRGP)\r\n 2.1 用SRGP画图\r\n 2.2 基本交互处理\r\n 2.3 光栅图形特性\r\n 2.4 SRGP的局限性\r\n 2.5 小结\r\n第3章 二维图元的基本光栅图形学算法\r\n 3.1 概述\r\n 3.2 直线的扫描转换\r\n 3.3 圆的扫描转换\r\n 3.4 椭圆的扫描转换\r\n 3.5 填充矩形\r\n 3.6 填充多边形\r\n 3.7 填充椭圆弧区域\r\n 3.8 图案填充\r\n 3.9 宽图元\r\n 3.10 线型和笔型\r\n 3.11 光栅空间的裁剪操作\r\n 3.12 线段裁剪\r\n 3.13 圆和椭圆的裁剪\r\n 3.14 多边形裁剪\r\n 3.15 生成字符\r\n 3.16 SRGP_copyPixel\r\n 3.17 反走样\r\n 3.18 小结\r\n第4章 图形硬件\r\n第5章 几何变换\r\n第6章 三维空间的观察\r\n第7章 对象的层次结构和简单的PHIGS系统\r\n第8章 输入设备、交互技术与交互任务\r\n第9章 对话设计\r\n第10章 用户界面软件\r\n第11章 曲线与曲面的表示\r\n第12章 实体造型\r\n第13章 消色差光与彩色光\r\n第14章 可视图像真实感的探讨\r\n第15章 可见面的判定\r\n第16章 光照和明暗处理\r\n第17章 图像处理和存储\r\n第18章 高级光栅图形体系结构\r\n第19章 高级几何与光栅算法\r\n第20章 高级建模技术\r\n第21章 动画\r\n附录 计算机图形学的数学基础\r\n参考文献\r\n索引
计算机图形学已经成为信息技术(IT)产业非常重要的一个理论基础和专业领域. 一本内容更新. 材料丰富. 阐述深入的计算机图形学著作(中文版), 对IT迅速发展的我国是十分需要的.
本书的作者Foley. van Dam等是国际图形学界的著名学者. 学术带头人. 本书是计算机图形学领域的经典著作. 从1982年第1版出版以来, 它一直是各国大学“计算机图形学”课程的主要教科书. 第1版的中译本对我国计算机图形学的教学科研已起了积极的作用, 而本书的第2版C语言版本对第1版做了全面的更新, 增加了大量新内容, 覆盖了日趋成熟的计算机图形学领域的各个方面, 包括二维. 三维图形学的数学基础, 大量重要算法, 光栅图形硬件和软件, 交互技术及用户界面软件, 真实感图形学, 高级建模技术(分形. 体绘制等), 图像处理和存储, 动画等. 它是图形应用的广大用户. 软件开发人员和硬件设计人员的优秀自学参考书.
本书包括了大量习题和经典参考文献目录, 提供了大量C语言的算法实现程序, 是本科生. 研究生学习相关课程和开展研究工作的优秀参考书和教材.
以上所述也正是本书20多位译者在非常繁忙的工作中花很大的精力翻译这本著作贡献给大学的原因.
参加本书翻译. 审校修改工作的有以下同行:许忠信译前言. 序言. 彩图及第4章, 柴建云译第1章, 胡事民译第2. 7章, 王文成译第3章. 附录, 杜威译第5章, 袁晓君译第6章, 倪明田译第8. 13. 17章, 汪国平译9. 10. 11. 12. 21章并审第16章, 唐龙译第14章, 刘列明译第15章, 刘学慧译第16章, 任继成译第18章, 李桂清. 王洪斌译第19章, 李现民. 石睿译第20章, 唐泽圣审第1. 2. 4. 7. 14章, 董士海审8~13. 16. 17. 21章并译审彩图, 李华审第5. 6. 18~20章, 吴恩华审第3. 15章及附录, 齐东旭译审索引.
衷心感谢责任编辑杨海玲所做的大量细致的编辑加工工作. 没有她的辛勤劳动, 是不可能有本书现在的顺利出版的. 我们还要感谢为本书翻译出版作出贡献的所有同事.
由于量大. 译者多及水平有限, 译文中欠妥和纰漏之处恐难避免, 恳请读者不吝赐教和指正.
James D.Foley于密歇根大学获得博士学位,是佐治亚理工学院教授,图形学、可视化及可用性研究中心创始人,现任该中心主任。他还是ACM、ACM SIGGRAPH、ACM SIGCHI和IEEE的成员。
交互式图形学的时代已经到来. 就在不久以前这还是一项需要昂贵显示器硬件. 大量计算机资源和独特软件的深奥的专业领域. 然而在过去的几年中, 随着硬件性能价格比的大幅提升(如配有标准图形终端的个人计算机)以及高端的与设备无关的图形程序包的开发, 图形编程已经变得简捷. 合理. 交互式图形学如今已经可以为我们提供图形通信手段, 并成为人机交互的主要工具. (节选自《交互式计算机图形学基础》的前言. Fundamentals of Interactive Computer Graphics, James Foley, Andries van Dam, l982)
这一断言在Apple公司的Macintosh机. IBM的PC机及其他类似产品引发计算机文化革命之前就做出了. 现在, 就算是没上学的孩子都对交互图形技术非常熟悉, 比如窗口控制. 用鼠标选取菜单和图标. 图形用户界面可以使新手迅速变得老练, 没有图形界面的计算机已经越来越罕见了.
随着交互式图形学在用户界面和数据可视化方面的广泛应用, 三维物体的绘制技术也变得越来越真实, 运用这些技术生成的广告片和电影特技无所不在. 20世纪80年代初期尚处于实验阶段的技术目前已变得很普通, 而更加令人叹为观止的“照片真实感”技术也马上就要到来. 曾经需要花上几个小时才能生成一帧的伪真实感动画, 如今在个人计算机上可以以10帧/秒以上的速度生成. 1981年的“实时”矢量显示器可以显示没有经过隐藏线消除的几万个矢量组成的移动线框物体, 而1990年的实时光栅显示器不仅可以显示同样的线框物体, 而且可以显示由十万多个三角形面片组成的. 采用Gourand或者Phong明暗处理以及完全的隐藏面消除的移动物体. 这些高性能系统能提供实时的纹理映射. 反走样. 云雾和烟尘的大气衰减以及其他特殊效果.
图形软件的标准同样较第1版时明显进步了很多. 第1版的SGP软件包基于的SIGGRAPH Core?9软件包. 直视存储管和刷新矢量显示器现在基本上都已经消失了. 支持结构层次存储和编辑的更加强大的PHIGS软件包已经成为ANSI和ISO的标准, 广泛应用于科学和工程的实时几何图形制作中, 与其相伴的PHIGS+支持光照. 明暗处理. 曲线和曲面. 官方的图形标准中补充了许多事实标准, 如Apple公司的QuickDraw, X Window的Xlib二维整型光栅图形包和Silicon Graphics公司的GL三维图形库. Pixar公司的照片真实感的RanderMan软件和硬拷贝页和屏幕图像描述的PostScript图形解释器同样也得到了广泛的应用. 更好的图形软件的使用使得对用户界面的“感观”得到巨大改善, 我们可以期待增加对三维效果的利用, 使我们对信息的管理. 表现. 检索和漫游提供新的想像空间和形象, 必是出于审美的考虑.
也许图形学中最重要的发展方向是对物体建模技术的愈加重视, 不仅仅是生成这些物体的画面, 同时人们对如何描述随时间变化的三维几何物体的几何特性和行为产生了更大的兴趣. 这样, 图形学在建模和绘制中就更加关注模拟. 动画及“回归物理过程”, 试图使创作出的物体尽可能真实.
当图形工具变得越来越复杂时, 我们就需要能够有效地运用它们. 绘制不再是瓶颈, 所以研究人员开始尝试用人工智能技术帮助进行物体建模设计. 运动规划. 二维及三维物体的有效图形表示的布局.
当今图形学技术发展迅猛, 任何一本参考书都必须不断进行更新和扩充才能跟上这样的发展. 本书基本上对《交互式计算机图形学基础》做了总体重写, 尽管页数几乎翻番, 我们仍然不得不省略大量内容.
本书和第1版的主要区别如下:
?矢量图形学的定位由光栅图形学所代替.
?原来简单的二维浮点图形包(SGP)被SRGP和SPHIGS代替, 体现了交互图形程序设计的两大主要流派. SRGP结合了QuickDraw和Xlib二维整型光栅图形包的特征, 基于PHIGS的SPHIGS提供了具有层次显示列表的三维浮点包的基本特性. 本书描述了如何应用这些标准图形包进行编程, 并且同时讲述了这些图形包对于基本裁剪算法. 扫描转换算法. 观察算法和显示列表遍历算法等基本功能的实现细节.
?在更深的层次上讨论了用户界面问题, 包括二维桌面比喻和三维交互设备.
?对建模的讨论包括了NURB(非均匀有理B样条)曲线和曲面, 实体造型以及高级建模技术, 如基于物理的建模. 过程化模型. 分形. L文法系统和粒子系统等.
?对绘制技术的讨论增加了对反走样的详细讨论, 以及可见面判定. 光照和明暗处理, 包括基于物理的光照模型. 光线跟踪. 辐射度等.
?增加了高级光栅图形体系结构和算法的内容, 包括裁剪. 复杂图元的扫描转换. 简单的图像处理操作等.
?增加了对动画的简单讨论.
阅读本书无须具备图形学的基础知识, 只需要了解一定的C语言编程技术. 基本的数据结构和算法. 计算机体系结构和简单的线性代数. 附录中列出了阅读本书必需的数学基础. 本书的全部内容可在两个学期内讲授, 但是书中内容划分为几个部分, 也可以有选择地进行讲授. 因此, 读者可以根据自己的需要选择学习, 由浅入深. 本书可以大致分为下面几个部分:
基本知识
第1章对历史进行了简要回顾, 并对硬件. 软件. 应用程序的最基本问题作了讨论. 第2. 3章讲述了简单的二维整型图形包SRGP的应用和实现方法. 第4章介绍了图形硬件, 包括如何应用硬件完成前面几章中提到的操作. 第5. 6章通过矩阵的方法介绍了在平面和三维空间中进行变换的思想, 如何应用齐次坐标来统一线性变换和仿射变换, 三维视图的描述, 包括从任意视见体到标准视见体的变换. 最后, 第7章介绍了三维浮点层次图形包SPHIGS, 通过一些基本的建模操作讲述了它的用法, SPHIGS是PHIGS标准的简化版本. 这一章还讨论了PHIGS中可用的层次结构的优缺点以及使用这个图形软件包的应用程序的结构.
用户界面
第8~10章讲述了当前交互设备并讨论了用户界面设计的一些高层次问题, 对当前流行的各种用户界面设计范型进行了介绍和比较. 最后的用户界面软件一章讨论了窗口管理器. 交互技术库和用户界面管理系统.
模型定义
第11. 12章讲述了当前的几何建模技术:曲线和曲面的参数函数表示(尤其是三次样条函数)以及各种技术的实体表示, 包括边界表示和CSG模型. 第13章介绍了人类的颜色视觉系统以及各种颜色描述系统及它们之间的转换, 同时也讨论了如何有效运用颜色的规则.
图像合成
在连续四章中的第一章, 即第14章, 讲述了从最早的矢量绘图到最新的光照图形技术, 人们对真实感的探索过程. 走样所引起的人为痕迹是光栅图形学中首要考虑的问题, 这一章讨论了产生这些人为痕迹的原因和利用傅里叶变换的解决办法. 第15章详细讨论了可见面判定的不同方法. 第16章介绍了光照和明暗处理算法, 本章的前半部分讨论了当前在流行的图形硬件中使用的算法而其余部分讨论了纹理. 阴影. 透明效果. 反射. 基于物理的光照模型. 光线跟踪. 辐射度, 等等. 第17章讲述了图像操纵(如像素图的缩放. 错切. 旋转)和图像存储技术(包括各种图像压缩技术).
高级技术
最后四章对最新的图形学技术做了简介. 第18章描述了当前的高端商用和研究用的图形硬件, 本章由高性能图形体系结构的权威Steven Molnar和Henry Fuchs提供. 第19章讲述了应用于如任意圆锥曲线的扫描转换. 反走样文字生成. 页描述语言实现(如PostScript)等任务的复杂光栅算法. 最后两章对在高级建模和计算机动画领域中最重要的技术做了概述.
前两部分内容相对基础, 可用于本科生的基础课程, 随后的课程可使用其余各章的高级内容. 当然也可以从各部分中抽取章节定制课程内容.
比如, 以二维图形学为主的课程可以包括第1. 2章, 第3章中的简单扫描转换和裁剪, 第4章中的概述. 光栅体系结构和交互设备, 第5章的齐次数学, 6.1~6.3节从“如何使用三维观察”的角度讲解了三维观察, 由第8. 9. 10章组成的用户界面部分, 以及由第14. 15. 16章组成的图像合成部分的引言和简单算法.
一门图形学概论课程可以包括第1. 2章, 第3章的简单算法, 第4章中的光栅体系结构和交互设备, 第5章, 第6. 7章的大部分内容以及SPHIGS. 课程的后半部分包括第11. 13章中的建模技术, 第14. 15. 16章的图像合成, 以及第20章中的部分高级内容.
以三维建模和绘制为重点的课程可以从第3章讲述扫描转换. 线和多边形的裁剪. 反走样的章节开始, 然后进行到讲述变换和观察的数学基础的第5. 6章, 以及关于颜色的第13章, 第14~16章的主要内容. 也可以加入曲面和实体建模. 第20章的高级建模技术. 第21章的动画等高级内容.
图形包
由David Sklar设计的SRGP和SPHIGS图形包可以从出版商获取, 可用于IBM PC (ISBN 0-20l-54700-7). Macintosh (ISBN 0-20l-5470l-5)和运行X11的UNIX 工作站, 同时包括扫描转换. 裁剪. 观察等多种算法.
致谢
本书的完成离不开很多朋友和同事的辛勤工作. 我们特别感谢那些为本书提供大量材料的人们, 同样感谢对本书提出建议的很多同事. 如有遗漏, 敬请原谅. Katrina Avery和Lyn Dupre为本书的编辑做了大量工作, 同时还有Debbie van Dam. Melissa Gold和Clare Campbell. 我们特别感谢产品监督Bette Aaronson, 艺术指导Joe Vetere和编辑Keith Wollman, 他们不仅为本书做出了不懈努力, 同时他们在过去五年所处的困境下所表现的耐心和幽默也为本书的完成做出了很大的贡献.
计算机图形学已经不是一个由四个主要作者和三位辅助作者可以完全掌握的领域, 我们的同事. 学生为本书提供了大量有价值的意见和建议, 并发现了很多错误. 下列人士对本书的一章或几章进行了仔细的技术性审读:John Airey, Kurt Akeley, Tom Banchoff, Brian Barsky, David Bates, Cliff Beshers, Gary Bishop, Peter Bono, Marvin Bunker, Bill Buxton, Edward Chang, Norman Chin, Michael F. Cohen, William Cowan, John Dennis, Tom Dewald, Scott Draves, Steve Drucker, Tom Duff, Richard Economy, David Ellsworth, Nick England, Jerry Farre1l, Robin Forrest, Alain Fournier, Alan Freiden, Christina Gibbs, Melissa Gold, Mark Green, Cathleen Greenberg, Margaret Hagen, Griff Hamlin, Pat Hanrahan, John Heidema, Rob Jacob, Abid Kamran, Mike Kappel, Henry Kaufman, Karen Kendler, David Kurlander, David Laidlaw, Keith Lantz, Hsien-Che Lee, Aaron Marcus, Nelson Max, Deborah Mayhew, Barbara Meier, Gary Meyer, Jim Michener Iakob Nielsen, Mark Nodine, Randy Pausch, Ari Requicha, David Rosenthal, David Salesin. Hanan Samet, James Sanford, James Sargent, Robin Schaufler, Robert Scheifler, John Schnizlein, MichaeI Shantzis, Ben Shneiderman, Ken Shoemake, Judith Schrier, John Sibert, Dave Simons, Jonathan Steinhart, Maureen Stone, Paul Strauss, Seth Tager, Peter Tanner, Brice Tebbs, Ben Trumbore, Yi Tso, Greg Turk, Jeff Vroom, Colin Ware, Gary Watkins, Chuck Weger, Kevin Weiler, Turner Whitted, George Wolbetg和Larry Wolff.
我们的一些同事, 包括Jack Bresenham, Brian Barsky, Jerry Van Aken, Dilip Da Silva(建议对第3章采取统一的中点方法)和Don Hatfield, 不仅对章节做了仔细阅读, 同时对其中的算法提出了详细的建议.
Katrina Avery, Barbara Britten, Clare Campbell, Tina Cantor, Joyce Cavatoni, Louisa Hogan, Jenni Rodda和Debbie van Dam做了大量的文字处理工作. Dan Robbins, Scott Snibbe, Tina Cantor和Clare Campbell绘制了第1至3章的插图. 其他插图由Beth Cobb, David Kurlander Allen Paeth和George Wolberg(在Peter Karp的帮助下)提供. 彩图II-2l至彩图II-37展示了绘制技术的进步, 由Pixar的Thomas Williams和H.B. Siegel在M.W. Mantle的指导下应用Pixar的PhotoRealistic RenderMan软件完成. 感谢Industrial Light & Magic提供激光扫描仪创建了彩图II-24至彩图II-37, 感谢Norman Chin 为彩图II-30至彩图II-32计算了顶点法向量. L. Lu和Carles Castellsagu?为制作插图编写了程序.
Jeff Vogel实现了第3章的算法, 他和Atul Butte检查了第2和7章的程序. 在Balsys, Scott Boyajian, Atul Butte, Alex Contovounesios和Scott Draves 的帮助下, David Sklar编写了Mac和X11上的SRGP 和SPHIGS. Randy Pausch和他的学生将这些包移植到了PC平台.
为了能够让读者获取多种算法的电子拷贝. 提出习题. 报告本书和SRGP/SPHIGS中的错误以及得到本书和软件的勘误表, 我们已经安装了一个自动的电子邮件服务器. 发一封主题为“Help”的电子邮件到graphtext@cs.brown.edu, 就可收到当前可用的服务列表.
C语言版本序言
原先书中的例子是用Pascal语言编写的, 此版本为C语言版本. C语言版本包含了Pascal版本第2版第9次印刷以来的所有改动, 同时还包含对一些算法的小改动, 另外, 书中所有的Pascal语言的代码都已用ANSI C重写. SRGP和SPHIGS图形包的接口现在都采用C语言定义, 相应的这些图形包也都采用了新的C语言实现, 不再使用Pascal.
我们衷心地感谢Norman Chin, 他把原书第2版中的Pascal语言代码转换成了C语言代码, 校正这些代码并且按照原书中的排版习惯对代码进行编排. 感谢Matt Ayers, 他对书的第2. 3和7章进行了认真的校对, 并且对于转换代码过程中的问题提出了许多有用的建议.
华盛顿州 J.D.F.
罗德岛州 A.v.D
纽约州 S.K.F.
罗德岛州 J.F.H.
无封面