计算机图形学与虚拟环境
作者 : (英)Slater, M. 等
译者 : 程成 徐玉田 译
丛书名 : 计算机科学丛书
出版日期 : 2004-09-17
ISBN : 7-111-14824-X
定价 : 59.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 464
开本 : 16开
原书名 : Computer Graphics and Virtual Environments : From Realism to Real-Time
原出版社: Pearson Education Limited
属性分类: 教材
包含CD :
绝版 :
图书简介

本书以“自顶向下”的方式阐述了如何构造实时图形系统,并用相当篇幅介绍了虚拟环境的感知问题、动态特性和交互,以及与此相关的显示和交互设备方面的问题。本书围绕虚拟环境展开对图形学理论和技术的介绍,在内容编排和组织上独具特色。
  本书适合用作学习计算机图形学及虚拟环境相关课程的大学高年级本科生或研究生的教材,同时也可供相关技术人员阅读。

图书特色

图书前言

通信技术在过去十多年间发生了巨大的变化,通信技术水平日益提高。实时虚拟环境正是这种技术革命带来的一个重要成果。 我们可以观看由虚拟新闻播音员播讲的新闻,可以同分布在世界各地的游戏玩家一起玩3D图形游戏,也可以在虚拟环境中和虚拟银行经理就贷款事宜进行商谈。计算机图形技术为我们创造了虚拟环境,另一方面,随着我们对实时虚拟环境系统需求的不断增加,计算机图形学也得以不断发展。同时,我们也希望虚拟环境能提供更强的真实感。计算机图形学要在这样的需求冲突中不断向前发展。这本书是与实时虚拟环境紧密相关的计算机图形学著作,我们的目标是将其做成实时虚拟环境图形学导论教材。本书介绍如何构建实时图形系统,为此需要牺牲哪些真实感。与此同时用相当篇幅介绍了虚拟环境的感知问题、动态特性和交互,以及与此相关的显示设备和交互设备方面的问题。
  作为一本3D计算机图形学和虚拟环境的教科书,本书在很多方面是与众不同的。本书开篇在较高的层次上阐述了与虚拟环境、光照、颜色感知相关的感知问题。其次,为了更好地理解书中的理论,一些需要掌握的数学概念和知识也在前面章节中加以介绍。然后立即转向非常实际的应用研究,讲解使用光线跟踪技术轻松实现全局光照条件下具有照片真实感的高质量图像的最流行方法。之后逐渐向实时系统推进,通过不断放松对光线跟踪的假设,一步步直到实现一个能在实时条件下生成3D场景图像的系统。换句话说,我们是在描述图形系统典型的渲染管道。传统的计算机图形是以点光源为基础的,这种点光源至多可以产生看起来很“硬”的阴影。而在实时系统的环境中,为了获得更强的光照真实感,我们展示“柔和”的、看起来更真实的阴影的产生过程。然后再回到使用辐射度算法生成全局光照条件下具有照片真实感的图像的问题, 该算法也在特定情况下使用了实时渲染。在此之后,我们再一次讨论光线跟踪,介绍多种能有效提升光线跟踪速度的技术(虽然它还不是真正的实时)。
  这本书是真正按“自顶向下”方式来阐述的。举例来说,为了引出2D直线的裁剪和渲染,我们先阐述加速光线跟踪的必要方法,在这样的上下文中来分析该问题。( 在统一细分空间中跟踪直线与在2D显示设备上渲染直线是相似的。) 我们相信这种方式是合乎教学法的—2D 直线的裁剪和渲染问题本身是不太有趣的,但是在比较高层次的操作中,例如光线跟踪或辐射度等,这些基本算法就显示出了生命力,在另一方面也生动地说明这些算法本身所包含的解决问题的方法是完全超越了其特定应用的。事实上,计算机图形学课程不应局限在介绍一些技术内容,更应该分析和讲解这些技术背后所包含的思维方式。
  这本书将渲染和建模很好地分离开来,在介绍渲染的部分中,主要讨论了两种渲染方法;在介绍建模的部分中,主要阐述了体素构造表示、曲线和曲面建模技术。介绍完这两大部分内容之后,我们转向与虚拟环境直接相关的内容:虚拟世界里的动态特性和交互。
  最后两章再一次探讨从真实到实时这个关键问题,不过,这次我们将站在更高的层次上来分析。其中一章综述全局光照的一些先进技术, 例如路径跟踪和光子跟踪。另外一章回顾实时图形系统中提高帧频的一系列方法:基于可见性、细节层次上的技术和基于图像的渲染技术。 这一章的最后部分介绍了一种新的称为“光域”的计算机图形学范式。
  本书所包含的例子主要来自两大最为重要和最为流行的系统:场景描述语言VRML和实时渲染系统OpenGL。我们假设读者都熟悉C语言语法,并至少熟练掌握C、C++或Java语言的一种。本书中的所有例子都采用类C语言的记法。
  不像许多其他的教科书,我们没有将数学基础的内容放在附录中,而是在书的前面部分开辟专门一章来介绍。具备大学计算机系本科生相应的数学知识是理解这本书的必要前提,因此,本书将这些数学基础内容放在第一部分第2章提前讲解,另外一些有关的数学内容则穿插在各章中介绍。不管读者初次翻看此书时会有什么样的感觉,书中并没有艰深的数学内容。 如果被駼駻f(x,y)dxdy这样的积分公式吓住了,请不要害怕,实际上很简单,它表示的意思是这样的一个函数:第一步,在XY平面上的点(x,y)处求f(x,y)的值,取(x,y)点周围的一个很小区域 (dx×dy) 乘以该值;第二步,在x的区间A和y的区间B所围成的平面区域的每一点上执行第一步计算,并将这些“体积”累加在一起。理解这本书并不需要读者了解该如何实际计算这样的积分。然而,了解类似上述表达式的含义是读者在一般层次上理解这本书所需要的。
  这本书的读者群主要为高年级大学生 (特别是计算机科学系最后一年的本科生) 或那些研究计算机图形学、虚拟环境视觉问题的研究生。 它可以作为整个学期 (30~45个小时) 课程的教材。本书的目标是要传授给学生在图形学和虚拟现实实际应用中所需掌握的知识,这些知识包括图形渲染管道的基本内容、使帧频最大化的最新技术, 以及一些关于渲染具有照片真实感的图像的深层次内容。本书的一个焦点是虚拟环境。因此我们不只是介绍计算机图形学的算法, 而且还把这些算法和一些基本的感知问题放在虚拟环境的上下文中讲解。
  将本书作为大学本科教材的用法可以是:首先从第 5 章开始, 在包含球体的简单场景上下文中介绍光线投射。其目的是从第一天起就让学生真正能参与到图形系统构造的实际过程当中,使之能够尽快创建光线跟踪的全局光照场景;然后讲述第1~4章的内容,其覆盖了感知的问题 (第1章通过简单的感知实验让学生感受到学习这些内容的乐趣);接下来复习第2章中的相关数学知识 ,因为不是每个人都掌握了这一章的数学基础知识;第3章的光照和光亮度方程的一般性问题是非常重要的内容,至少需要一两次讨论课的时间来完成这部分教学。因为光亮度方程(radiance equation)是计算机图形渲染的本质内容,也是有关渲染的所有各章内容的统一原理;而后继续讨论第4章的颜色感知;之后可以转到第6章的光线跟踪,布置关于光线跟踪程序的作业,该程序要求在包含球体的简单场景中完成光线跟踪。大约在三个星期内学生会生成光线跟踪的图像,这将是对他们信心的极大鼓舞。在此过程中学生基本了解了图形渲染的核心内容—光亮度方程。
  接下来是第7~13章的内容,主要围绕如何建立一个实时系统展开论述。可以通过一些问题来激发学生的思维。光线跟踪为什么如此之慢?如何表现复杂场景?如何能对任意放置的虚拟照相机进行渲染?如果不用光线跟踪的全局光照特性,如何进行明暗处理?如果每个对象上的每个点都必须做明暗处理, 如何使实时渲染成为可能?如果不用光线跟踪的自动可见性计算, 如何计算一般场景中的可见性 在第13章结束之前,读者就会对建立一个完全的3D图形系统有了全面的认识,从如何设置某个像素为特定颜色这样一个基本功能开始,一步步完善,直至整个3D图形系统完成。因此虽然我们的叙述遵从“自顶向下”的方式,在最后它也是“自底向上”的,因为第7~13章的主要内容就是自底向上地建立3D图形系统。
  某些类型的大学本科课程也可以直接从第15章开始, 即用实例说明辐射度解(radiosity solution)是如何得到的;然后接着进入第16章,讲解光线跟踪,分析如何加速光线跟踪;最后以第17章结束课程,该章分析最基本的一些图形算法,以及如何裁剪和渲染直线(我们在第16章讲解快速光线跟踪时提到过这些操作)。
  在讲完第7~13章之后,可以接着进入一些深层次的内容,即第14~16章的实时阴影生成、辐射度(radiosity)以及快速光线跟踪。有关体素构造表示、曲线和曲面的计算机辅助几何设计是相对独立的部分。然后可以转到第22章和第23章,这两章讨论的是全局光照和实时渲染的高级问题。
  如果读者对虚拟环境的交互问题、实时交互系统的一般问题(诸如碰撞检测等)也感兴趣的话,也可以抛开渲染部分来研究第20章和第21章两章的内容。
  这本书最初的版本写于1991年,那时作者之一 (Mel Slater) 正在加州大学伯克利分校教授CS184(计算机图形学基础)。从那以后,本书被伦敦大学玛丽皇后学院和伦敦大学学院(UCL)用作教材。在玛丽皇后学院(1992~1995年),本书被用作交互式计算机图形学课程的教材。1995年之后,本书在伦敦大学学院作为计算机图形学的教材。其他版本也在兰开斯特大学和南非的开普敦大学使用。多所大学还把它用在硕士课程上。在加州大学伯克利分校(1992年),在玛丽皇后学院(1992~1995年)以及UCL,它用作硕士生计算机图形学和虚拟环境课程的教材。 Mel Slater 于1995年从玛丽皇后学院来到UCL,和此时已经在UCL任教的他先前的两位博士生Anthony Steed和Yiorgos Chrysanthou 一起教授计算机图形学课程,这本书正是他们合作的结晶。

Mel Slater
Anthony Steed
Yiorgos Chrysanthou
2001年4月于伦敦

致   谢
  如果没有很多人的协助,这本书就不可能完成。我们特别想感谢Martin Usoh、Tony Tsung-Yueh Lin 和 Edwin Blake,他们在较早阶段参与了本书的工作。Jesper Mortensen、Joao Oliveira、David-Paul Pertaub和 Franco Tecchia 在书中一些图的制作上给予了很多帮助。我们还想感谢Christian Babski、Mireille Clavien、Ioannis Douros、George Drettakis、Neil Gatenby 、David Hedley、Marc Levoy、Alf Linney、C巐ine Loscos、David Luebke、Alan Penn、Claudio Privitera、Bernard Spanlang、Lawrence Stark、Daniel Thalman、Tzvetomir Vassilev、Greg Ward、Mary Whitton、Peter Wonka 以及 Hansong Zhang,他们为书中的图收集材料。感谢 Amy Goldstein所做的建模工作。我们还想感谢以下各位,他们都以各种不同的方式提供了帮助:Alan Chalmers、Daniel Cohen-Or、Rabin Ezra、Patrick M. Hanrahan、Phil Huxley、David Mizell、Jan-Peter Muller、Gareth Smith和 Shankar N. Swamy。
  我们在此还要感谢下列公司和机构:瑞典斯德哥尔摩皇家工学院并行计算机中心 (PDC)、Light-works公司、SGI公司以及 Virtual Research Systems公司。特别要感谢Pearson Education公司的工作人员,尤其是Keith Mansfield,是他这些年以来一直帮助和鼓励我们。特别感谢资深编辑Mary Lince,是她协助我们完成了书稿的最后整理工作。
  最后我们要感谢那些在伦敦大学学院、伦敦大学玛丽皇后学院和加州大学伯克利分校学习图形学的学生,他们是这项工作的灵感源泉。
  Mel Slater、Anthony Steed、Yiorgos Chrysanthou为《计算机图形学与虚拟环境》一书提供了一个配套Web站点www.booksites.net/slater,敬请访问。
  你将会发现很多有价值的参考资料,包括:
  针对学生:
  * 章节练习
  针对教师:
  * 教学用Powerpoint 幻灯片
  针对学生和教师:
  * 书中相关的类库,包括运行在Windows、Irix和 Linux 系统上的 C 语言和 Java 语言的类库

译者简介

程成 徐玉田 译:暂无简介

译者序

经过三个多月的努力,我和我的合作者终于拿出了本书的中文译稿,此时的心情非常轻松和愉悦。往日的辛劳没有让我们感到任何痛苦,厚达近600页的原书中,每一页都有如一杯浓香的咖啡令人回味。如果要说最大的感触,我想可能就是先睹为快的感觉,以及能做点儿事让同行们一同分享该书的快乐了。
  正如书名“Computer Graphics and Virtual Environments: From Realism to Real-time”,本书的特色之一就是没有泛泛介绍图形学的各方面细节内容,而是紧紧围绕图形学最为重要也是未来最广泛的应用形式—“虚拟环境”展开对图形学理论和技术的阐述。本书的第二个特色便是在内容编排和组织上真正做到了深入浅出,既能够保证读者在开始就掌握图形学理论框架并建立起图形学试验环境和平台,又有相当深刻的内容介绍虚拟环境中所面临的技术困难,使读者了解如何能够在真实和实时之间鱼和熊掌兼得。第三个特色,也是本书最为闪光之处,在于作者将图形学相关内容十分完美地整合在一个理论框架内。这一点显示出作者在图形学理论研究上的深厚功力,同时对于读者深刻理解图形学理论和方法有极大的帮助。本书的第四个特色是作者摆脱了图形学传统教科书的写作视角,面向虚拟环境,融合了认知心理学和人机交互的相关内容,以全新的视点和宽阔的视域阐述计算机图形学的理论和技术。本书内容丰富,又有相当的深度,既可以挑选通用内容作为大学本科生教材,也可以选择有深度的内容作为图形学和人机交互领域的研究生和博士生的教科书。
  本书由程成和徐玉田翻译,由于译者自身的知识局限及时间仓促,译稿中难免有错误和遗漏,谨向原书作者及读者表示歉意,并欢迎批评指正。

译  者
2004年5月

图书目录

第一部分  绪论:感知、光、颜色和数学
第1章  导论:投影的虚幻世界 1
1.1  引言 1
1.2  范围 1
1.3  建模和虚拟环境 2
1.4  真实感和实时 6
1.5  存在和沉浸感 12
1.6  虚拟环境如何工作 18
1.7  小结 32
第2章  虚拟环境的数学基础 34
2.1  引言 34
2.2  维度 34
2.3  位置和方向:点和矢量 35
2.4  方向和角度 39
2.5  平面保持变换 42
2.6  四元数 48
2.7  小结 51
第3章  光照—光亮度方程 53
3.1  光照:计算机图形学的基本问题 53
3.2  光 53
3.3  简化假设 55
3.4  光亮度 56
3.5  反射 57
3.6  光亮度方程 58
3.7  光亮度方程的解 60
3.8  可见性 62
3.9  小结 62
第4章  颜色以及人对光的反应 64
4.1  引言:颜色作为光谱分布 64
4.2  视觉系统简单模型 66
4.3  发射器系统简单模型 68
4.4  产生可感知颜色 68
4.5  CIE-RGB颜色匹配函数 70
4.6  CIE-RGB色度空间 72
4.7  CIE-XYZ色度空间 75
4.8  CRT显示器的一些特性 78
4.9  RGB和XYZ颜色空间之间的转换 80
4.10  颜色范围和不可显示颜色 81
4.11  小结:技术整合 83
第二部分  从真实到实时I
第5章  计算机图形的绘画隐喻 85
5.1  引言:绘画隐喻 85
5.2  模拟绘画隐喻 87
5.3  图形的主要概念 91
5.4  小结 93
第6章  局部光照和光线跟踪 95
6.1  引言 95
6.2  漫反射和朗伯定律 96
6.3  计算局部漫反射 98
6.4  局部镜面反射的简单模型 99
6.5  用光线投射渲染局部光照模型 100
6.6  对递归光线跟踪的介绍 102
6.7  包括透明对象的递归光线跟踪 104
6.8  光线跟踪算法的一些细节 106
6.9  OpenGL中的光照 107
6.10  VRML97中的光照 109
6.11  小结 110
第7章  照相机的一般化 111
7.1  引言 111
7.2  从WC到UVN观察坐标系的映射 112
7.3  在光线跟踪中使用一般照相机 113
7.4  VRML97例子 114
7.5  小结 115
第8章  场景构造 116
8.1  引言 116
8.2  多边形和平面 116
8.3  多面体 120
8.4  场景层次结构 123
8.5  使用OpenGL 127
8.6  使用VRML97 129
8.7  小结 131
附录8.1  翼边数据结构的C 语言描述 131
第9章  投影:照相机模型的实现 136
9.1  引言 136
9.2  完整的照相机描述 137
9.3  投影 139
9.4  合成矩阵 146
9.5  计算视图矩阵T 146
9.6  技术整合 151
9.7  视图实现与场景图的结合 151
9.8  在OpenGL中观察 152
9.9  创建3D立体视图 157
9.10  小结 163
附录9.1  式(9-8)中矩阵的推导 163
附录 9.2  对象层次结构的OpenGL渲染 163
第10章  裁剪多边形 168
10.1  引言 168
10.2  Sutherland-Hodgman算法 (二维) 168
10.3  裁剪多边形——Weiler-Atherton算法 169
10.4  在三维中裁剪多边形 172
10.5  小结 177
第11章  可见性确定 178
11.1  引言 178
11.2  背面删除 179
11.3  列表优先权算法 180
11.4  二叉空间分割树 183
11.5  小结 190
第12章  多边形渲染 191
12.1  引言 191
12.2  多边形光栅化 191
12.3  小结 194
第13章  图像空间渲染和纹理生成 196
13.1  引言 196
13.2  z缓冲区可见性算法 196
13.3  平滑的明暗处理 200
13.4  纹理生成 202
13.5  VRML97例子 215
13.6  小结 217
第三部分  从实时到真实
第14章  阴影:达到实时性真实 219
14.1  引言 219
14.2  阴影本影 220
14.3  阴影半影 229
14.4  小结 240
第15章  辐射度介绍 241
15.1  引言 241
15.2  形状因子:两面片之间的能量 241
15.3  辐射度方程 243
15.4  形状因子的计算 244
15.5  渐进细化方法 246
15.6  网格化 248
15.7  渲染 251
15.8  小结 252
第16章  快速光线跟踪 253
16.1  引言 253
16.2  相交计算 253
16.3  包围体和层次结构 253
16.4  一致空间细分 255
16.5  非一致空间细分 256
16.6  光线相关性方法 257
16.7  小结 259
第17章  直线裁剪和渲染 261
17.1  引言 261
17.2  裁剪线段 261
17.3  线段的光栅化 269
17.4  在一致细分空间中跟踪光线 272
17.5  小结 275
第四部分  实体、曲线和曲面
第18章  体素构造表示 277
18.1  引言 277
18.2  二次曲面 278
18.3  光线的分类和组合 281
18.4  小结 282
第19章  计算机辅助几何设计介绍 283
19.1  引言 283
19.2  多项式和开花 283
19.3  开花和B巣ier曲线 286
19.4  B巣ier曲线和Bernstein基 290
19.5  升阶B巣ier曲线 293
19.6  有理B巣ier曲线 295
19.7  曲线的拼接:连续性 297
19.8  B样条曲线 300
19.9  B样条基函数 308
19.10  对曲面的介绍 310
19.11  参数化曲面 311
19.12  三角形B巣ier面片 313
19.13  三次B样条插值 315
19.14  求解多项式 318
19.15  小结 322
第五部分  虚拟环境中的动态特性和交互
第20章  虚拟世界中人的动态特性 323
20.1  引言 323
20.2  虚拟现实模型 323
20.3  人体仿真 326
20.4  与虚拟人体的交互 328
20.5  对象间的碰撞检测 330
20.6  一般性碰撞检测 331
20.7  有关VRML的注解 332
20.8  小结 332
第21章  实时交互 333
21.1  引言 333
21.2  桌面交互设备 333
21.3  选择 334
21.4  操作 335
21.5  移动 336
21.6  界面中通道的屏蔽 338
21.7  C语言例子 339
21.8  VRML例子 342
21.9  小结 343
第六部分  从真实到实时II
第22章  基于光线的全局光照方法  345
22.1  引言 345
22.2  光线跟踪方法 345
22.3  分布式光线跟踪 348
22.4  路径跟踪 354
22.5  辐射度和光线跟踪的集成 357
22.6  光子跟踪 358
22.7  小结 361
第23章  虚拟环境的高级实时渲染 362
23.1  引言 362
23.2  可见性处理 362
23.3  多分辨率表示 372
23.4  基于图像的渲染 375
23.5  光域  378
23.6  全屏幕反走样 383
23.7  VRML 例子  386
23.8  小结 386
附录A  VRML介绍 388
参考文献 397
索引 414

教学资源推荐
作者: 康卓 熊素萍 张华
作者: 姚敏 等
作者: (美)Jennifer Burg 著
作者: 朱洁 等编著
参考读物推荐
作者: (美)Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis
作者: 施迎