作者简介
本书面向学生、研究人员和从业人员,介绍计算机图形学的许多重要概念和思想。其中一些概念读者并不陌生,它们早已出现在广为流行的学术出版物、技术报告、教科书和行业报刊中。在某个概念出现一段时间后再将其写入教科书的好处是,人们可以更充分地理解它的长远影响并将其置于一个更大的背景中予以领悟。本书将尽可能详细地介绍这些概念(当然也略过了一些曾经火热但现在已不再重要的概念),并以一种清晰、流畅的风格将它们呈现给初学者。本书属于第二代图形学教科书:我们并不将之前的所有工作全部认定为天然合理的,而是按今天的理解重新审视它们,进而更新其原有的陈述方式。
甚至一些最基本的问题也可能变得非常棘手。举例来说,假如要设计一个适用于低光照环境(如电影院的暗环境)的程序。显然,我们不能采用亮屏幕显示器,这意味着在显示程序中采用亮度对比来区分环境中的不同对象不再适宜。也许可以改用彩色显示,但遗憾的是,在低光照环境中人们对颜色的感知同样有所降低,某些颜色的文字要比其他颜色更易读。在这种情况下,光标是否仍容易被用户看到呢?一种简单的应对方式是利用人眼对运动的感知能力,让光标持续抖动。于是,一个看似简单的问题最后涉及交互界面设计、颜色理论以及人类感知等领域。
尽管上述例子很简单,但仍隐含了某些假设:采用图形方式输出(而不是通过触觉或封闭良好的耳机来输出);显示设备既非常规的影院屏幕,也不是头盔显示器。其中也包含了一些显式的假设,例如采用光标(也有一些用户界面不使用光标)。上述每一种假设都是对用户界面的一种选择。
遗憾的是,这种多方面内容相互交织的关系使得我们不可能完全按照某种顺序来讲述各主题,而且还能很好地介绍它们的研究动因和背景,也就是说,这些主题无法以线性方式展开。也许,我们可以先介绍它们涉及的所有相关的数学、感知理论或其他内容,总之,将较为抽象的内容和主题放在前面介绍,然后再介绍图形学应用。尽管这种内容组织方式可能便于参考(读者很容易找到讲述一般化向量叉积的有关章节),但对一本教科书而言,其效果并不好,原因是那些涉及主题研究动因的应用都要等到书的最后才会介绍。另一种展开方式是采取案例研究的思路,分别介绍各种不同的任务(难度不断增大),然后根据问题的需要讲述相关内容。在某些情况下,这确实是一种自然的内容演绎方式,但难以对各主题做出整体性、结构化的呈现。本书是这两种方式的折中:开始部分介绍了广泛使用的数学知识和常规的符号标记方式,然后逐个主题展开内容,根据需要补充介绍必要的数学工具。熟悉数学的读者完全可以跳过开始部分而不致错过任何图形学知识。其他人则可从这些章节中获益良多。教师授课时可根据需要对其进行取舍。基于主题的章节安排方式可能会导致内容上的重复。例如,本书从不同的细节层次对图形流水线进行了多次讨论。与其让读者回头参考之前的章节,有时我们会再次陈述部分内容,使对该问题的讨论更为流畅。毕竟让读者返回500页之前去查看一幅图并非令人惬意的事。
对本教材的作者来说,另一个挑战是选材的广度。本书的第1版确实覆盖了当时图形学出版物中的大部分内容,第2版至少也约略提到了其中大部分的研究工作。本版教材不再追求内容的覆盖度,理由很简单:当本书第2版出版时,我们一只手就能拿起SIGGRAPH会议的全部论文集(这些论文几乎包含了图形学领域的代表性工作);如今,SIGGRAPH会议的全部论文集(仅仅是许多图形学出版物中的一种)叠在一起高达数米。即使是电子版的教材也无法将全部内容塞进1000页中。本书这一版旨在为读者指明在哪里可以找到和复制当今的大部分SIGGRAPH论文。下面是几点说明:
●第一,计算机图形学与计算机视觉的交叉面越来越大,但这并不能构成让我们将本书写成计算机视觉教材的理由,尽管一些有该领域丰富知识的人已经这样做了。
●第二,计算机图形学涉及编程,尽管许多图形学应用题目很大,但本书并没有试图讲授编程和软件工程。当然,在书中我们也会简要讨论一些专门针对图形学的编程方法(尤其是排错)。
●第三,许多图形学应用都提供了用户界面。在编写本书时,大多数界面均基于Windows操作系统,采用菜单和鼠标进行交互。不过基于触觉的交互界面正变得越来越常见。交互界面的研究曾经是图形学的一部分,但如今已成为一个独立的领域(尽管它仍和图形学有很大的交叉)。我们假定读者在编写含用户界面的程序方面已具备了一些经验,因此本书将不再对它们做深入讨论(除了其实现过程与图形学密切关联的3D界面外)。
毋庸置疑,图形学领域的研究论文区别很大:有些涉及很多的数学表述;有些介绍的是一个大规模的系统,涉及各种复杂的工程因素的权衡;还有些涉及物理学、色彩理论、地形学、摄影学、化学、动物学等各个学科的知识。我们的目标是让读者领会这些论文中的图形学贡献,而其他的相关知识则需要读者在课外自行学习。
历史上的方法
豆瓣评论