图书前言

前    言

随着虚拟现实和5G技术的发展,计算机图形学将会发挥更加重要的基础作用。因此,越来越多的高校开设了图形学课程,同时也有更多的技术爱好者加入图形学的学习队伍。为了更好地帮助读者学习和掌握计算机图形学,作者用心地改版了本书。下面对本书的指导思想进行一些介绍,希望在这些重要问题上和读者取得共识,之后介绍本书的内容组织及改版情况。

1.指导思想

(1)自顶向下

图形学内容繁多复杂,很容易让学生在学习一学期后仍不得要领。针对此问题,本书在整体上采用自顶向下的原则来组织内容,从计算机图形学定义出发,紧紧围绕图形绘制流水线这条主线进行图形学内容介绍,读者在学习各章内容的同时,头脑中始终明确该章内容在图形绘制流水线中的定位和作用,从而能更整体、全面地学习与掌握计算机图形学。

(2)循序渐进

学习是一个循序渐进的过程,一本教材也应当尽可能按照循序渐进的原则和方式来组织内容。因此,本书在整体上遵循图形绘制流水线这条主线的同时,在具体内容组织上则遵循循序渐进的原则来处理。首先,循序渐进地介绍图形绘制流水线。本书分别在第1、2、7章从不同层面、不同角度对图形绘制流水线进行介绍,让读者逐渐深入地了解图形绘制流水线这一主线。其次,按照由易到难、由外而内的顺序介绍图形绘制流水线各部分知识。为了帮助读者更好地从整体上理解和认识图形绘制流水线,本书首先在第2章介绍了图形系统,再由外而内,从图形显示的光栅化入手,介绍了基本图形的光栅化。之后再介绍变换与观察,到三维造型与真实感图形,完成整个图形绘制流水线的介绍。

(3)OpenGL定位

对本书而言,OpenGL定位于学习辅助工具,即通过OpenGL来辅助学习与掌握图形学相关知识与技术。因此,本书没有像OpenGL编程指南一样把OpenGL的各方面知识都一一介绍,而是仅介绍了对于学习图形学来说必要的部分。也正是基于这一考虑,本书没有选取最新基于可编程流水线的OpenGL版本,而是采用了学习难度与台阶较小的基于固定流水线的OpenGL版本来介绍,这样可以使读者更好地聚焦到图形学内容上。同时我们相信,如果读者以本书为台阶,再去学习最新版的OpenGL会更加容易和高效。

2.内容组织

本书的图形学内容体系如图0.1所示。其中,图形学基础模块是学习计算机图形学的一些数学及与其相关的软、硬件基础知识;建模模块是为了解决图形学的建模与表示任务;绘制模块用来解决图形学的绘制任务。各知识模块及相应章节内容简要介绍如下。

 

图0.1  本书的图形学内容体系

(1)基础模块:图形学基础主要包括数学以及与之相关的软、硬件基础知识。数学基础知识包括向量、矩阵、齐次坐标和几何变换等,是计算机图形学中重要的计算工具,它们被大量地运用到真实感图形生成过程中的法向计算,还有直线、平面及各种曲面的计算,以及曲线曲面的构造与光顺等。其中向量、矩阵等知识请读者自行查阅相关书籍,本书不作介绍。几何变换知识将在第4章详细介绍。

软、硬件基础知识包括常见图形API,如OpenGL、Direct3D等,图形输出设备与输出技术的简单基础知识,如光栅显示器基本原理、图形流水线等知识将在第2章介绍。

(2)建模模块:集中在本书的第6章,主要介绍多边形网格模型表示、曲线曲面表示方法等,为图形绘制流水线的应用程序阶段服务。

(3)绘制模块:主要为图形绘制流水线后两个阶段,即几何处理和光栅阶段服务,其中几何处理主要负责大部分多边形和顶点的变换操作,将在第5章介绍三维观察和有关顶点坐标变换问题。光栅阶段主要负责光栅化和像素着色任务,其中光栅化将在第3章介绍,而像素着色则会在第7章介绍。

附录A是含有11个实验的实验教程,附录B提供了3套模拟试题。

3.相对第1版的变化

相对于第1版,本书删去第5章二维观察、第9章交互技术和第10章计算机动画。附录B内容移至线上课程相关网站,供读者参考。具体修改情况如下。

第1章将原内容按照图形学的4W(What、Why、Where、When)方面来整理,使原内容逻辑更清晰。

第2章增加“2.2.4  显卡和图形处理器”“2.4  图形流水线”。

第3章将原第5章中的裁剪内容移至“3.7  裁剪”,并改写了“3.2  直线段光栅化”、“3.3  圆弧光栅化”和“3.6  反走样技术”。

第4章增加“4.1.4  二维几何变换通式与总结”和“4.4.3  变换应用实例—正方形旋转动画”。

第5章将原“6.1  三维观察流水线”改为“5.1  三维观察流程”,并增加大量新内容,改写了“5.2  观察变换”“5.3.3  透视投影”。

第6章按某一类曲线曲面来介绍,如Bezier曲线/曲面,不再按Bezier曲线和Bezier曲面分开介绍,增加“6.4.5  NURBS曲线/曲面”。

第7章进行了大量的精简和改写,同时增加“7.1.2  图形绘制两种基本策略”“7.9  图形流水线再分析”。

附录A增加了3个实验:“实验7  3D机器人”、“实验8  OpenGL太阳系动画”和“实验11  B样条曲面生成”。

4.适用对象

本书旨在服务于32~48学时的本科图形学教学与学习,具有以下特点:以经典图形学知识为主,同时注重结合OpenGL图形应用编程来详细介绍相关技术实例;以OpenGL为教学平台与实验平台,提供实验指导书,以更好地满足教学需要;内容精炼,服务本科教学需要,不过多涉及最新技术。

在阅读本书之前,读者应该了解C/C++语言和简单的数据结构知识,还有一些线性代数的初步知识;也欢迎读者对本书存在的缺点和问题提出批评与建议(联系邮箱:wpxu08@gmail.com)。

本书第1版由河南理工大学徐文鹏、王玉琨、刘永和、向中林和强晓焕老师共同编写。第2版由河南理工大学徐文鹏、都伟冰、雒芬、曾艳阳、张建春和强晓焕老师共同改编。其中,第6章和附录A由都伟冰改写,第2章由雒芬改写,第3章由张建春改写,第4章由曾艳阳改写,第7章由强晓焕改写,第1章和第5章由徐文鹏改写。全书由徐文鹏统稿。

感谢河南理工大学及笔者所在的计算机学院,没有他们的支持与鼓励,不可能完成此书。感谢我校的侯守明、王春阳、王辉连三位老师给本书的编写提了很多很好的意见。同时,在教材编写过程中得到了韩明峰、李效伟、陈伟斌、方小勇、何南忠、李玉杰、刘春林、秦胜伟、王斌、余顺园、周保林、柏森、冯自学、李春元、吕娜、石亮亮、谢骊玲、叶武剑、高贤波、曾聪文等多位老师的支持与指导,作者在此一并向他们致以诚挚的谢意。最后,本书编写过程中参阅了许多计算机图形学的参考书及相关资料,谨向这些书的作者和译者表示衷心的感谢。

感谢清华大学出版社及邓艳编辑,在本书的出版过程中,我与邓艳编辑合作非常愉快。同时,向从事编辑和校对工作的同志致以深切谢意!

编  者