
计算机图形学是研究真实或虚拟物体在计算机中的图形表示及交互的一门学科,在计算机辅助设计与制造、计算机动画、计算机游戏、计算机仿真、虚拟现实、科学计算可视化等领域有着广泛的应用。随着数字媒体、虚拟/增强/混合现实、大数据、人工智能、可视分析等技术的发展,计算机图形学的理论和方法不断地充实与更新,已经广泛应用到大量的科学和工程领域,成为现代计算机应用中不可缺少的重要分支。
本书涵盖了计算机图形学的众多基础内容,不仅介绍了几何建模、真实感绘制、计算机动画等传统图形学的内容,还着重阐述了数字几何处理、非真实感绘制、基于图形的影像处理、计算摄像、GPU图形计算等图形学的新进展。其中,不少章节的内容都取自近二十年内计算机图形学领域的高水平学术论文和产业技术。此外,本书还给出了很多重要概念和方法的实例,并提供了一些代表性算法的关键实现步骤的代码。
本书不仅可以作为高等院校计算机相关专业的“计算机图形学”课程教材,也可以作为计算机图形学科研工作者和产业界技术人员的参考用书。
计算机图形学起源于图灵奖获得者、美国科学院和工程院院士Ivan Surtherland在20世纪60年代发明的交互式绘图系统——“画板”。在过去半个世纪的时间里,计算机图形学的研究与发展可谓“一日千里”,并且在CAD/CAM/CAE、影视制作、计算机游戏、计算机仿真等领域有着广泛的应用。事实上,计算机图形学已经成为相对成熟的学科,理论和方法精彩纷呈,是计算机科学中最活跃的分支,也是计算机科学和工程应用之间的桥梁。
20世纪80—90年代,是国际上计算机图形学蓬勃发展的黄金时期,而国内则处于刚起步阶段。那时,有关计算机图形学的中文教材和参考书甚少,使得图形学的入门较为困难。为了吸引学生和科技工作者投入到计算机图形学,推动国内计算机图形学的发展,老一辈的学者高瞻远瞩,开始翻译或者编著计算机图形学教材,例如北京航空航天大学的唐荣锡教授,清华大学的唐泽圣教授、孙家广教授,浙江大学的梁友栋教授、石教英教授、彭群生教授、汪国昭教授等前辈。今天看来,这些经典的图形学教材,对推动当时国内计算机图形学的普及和发展起到了很好的作用,培养了一大批的图形工作者。
近二十年来,计算机科学和技术发生了巨大的变化,以人工智能、云计算、大数据、虚拟现实与增强现实等为代表的新技术也带动了计算机图形学的进一步发展,涌现出了更加激动人心的图形学浪潮。然而,目前的图形学教材略显滞后,尚未及时整理和吸收这些新发展。这就迫切需要一本能够反映图形学崭新内容的教材,以使初学者或者具有图形学基础知识的人能够及时掌握这些新发展。
本书的出现,恰好能够弥补上述的不足。本书对以往图形学教材的内容做了大幅的扩展,尤其是涵盖了许多计算机图形学的新发展。这是本书的一大特色,对新形势下计算机图形学学科的传承与发扬具有重要的意义。具体到章节安排上,本书的第2、3、5章是经典图形学的建模和绘制内容,而其余章节则详细介绍了近二十年计算机图形学在方法和应用方面取得的新进展,包括数字几何处理、非真实感绘制、基于图形的影像处理、计算摄像等内容。这为初学者快速掌握最新的计算机图形学理论、方法和技术,提供了很好的入门教材和参考资料。
除了理论和方法学习,计算机图形学也是一门很注重实践的学科,需要通过编程来实现各种图形学算法。因此,本书列举了很多的例题,并在书中给出了一些代表性算法关键步骤的伪代码。相应的源代码也提供了网络下载。这对初学者正确理解和快速掌握本书中所介绍的图形学方法和技术大有裨益。同时,每章后的思考题和书后的参考文献也能引发读者继续深入学习。
值得一提的是,本书的作者黄华教授和张磊副教授长期从事计算机图形学的教学和科研工作,在国内外重要学术期刊和会议上发表了大量的论文。他们对经典计算机图形学的内容和现代计算机图形学的新进展都有着深入的研究和体会,在此基础上汇聚成了本书的内容。虽不一而足,但仍可借鉴。因此,相信本书的问世,将能够及时、全面、翔实地介绍计算机图形学的过去和现在的内容,为初学者或者具有一定图形学基础的低年级学生提供一本新的教材和参考书,推进计算机图形学的进一步发展。
清华大学
计算机科学与技术系
2020年1月〖1〗现代计算机图形学基础我从2013年开始接手研究生“计算机图形学”课程的教学工作。甫一接手就寻找合适的教材,以满足研究生培养的要求。说实话,我并没找到一本合适的教材。主要原因是,目前市面上大多数的图形学教材内容比较陈旧,基本都是传统图形学的内容,而最近的一二十年,计算机图形学突飞猛进。传统图形学的建模、绘制的很多内容都已经被集成到GPU中,普通人员接触不到,而图形学近二十年的进展在目前教材中体现过少。作为研究生,必须了解较新的学科发展状况。从那时起就萌发了编写“计算机图形学”课程讲义的想法,让研究生通过这门课程既能掌握经典图形学的内容,也能了解现代图形学的新进展。
还是在2013年5月,清华大学胡事民教授将他最近几年给研究生讲授“计算机图形学”课程的课件提供给了我,同时,我也收集了其他兄弟高校的课件。基于这些课件我完成了自己的课件。此后每年授课过程中,都会对课件进行修改和完善。
2016年秋,我获批了学校图形学与虚拟现实研究生教学团队建设项目,编写“计算机图形学”课程的讲义是该项目的目标之一。于是在2016年冬天,我们邀请浙江大学鲍虎军教授、清华大学胡事民教授和雍俊海教授、山东大学张彩明教授等国内计算机图形学领域的资深专家,对我们的课程讲义大纲进行了评审。与会专家充分肯定了出版一本适合研究生教学用的图形学教材非常必要,并对课程的内容提出了大量的建设性意见。这让我们深受鼓舞。
此后,我们就开始根据课程讲义大纲编写教材,虽然已经有了课件,但编写起来还是非常耗时耗力的,毕竟落在纸面上,需要尽可能地准确和严谨。这样,经过两年的辛勤努力,到了2018年冬天,终于拿出了一个初稿,并将书名定为《现代计算机图形学基础》。2018年12月,我们又请清华大学胡事民教授和浙江大学鲍虎军教授对初稿进行了审阅,两位教授再次提出了一些宝贵意见,特别是鲍虎军教授对教材的章节安排给出了重要建议。
感谢清华大学出版社龙启铭先生。因为此前有过合作,在2018年冬天,和龙启铭先生聊天时谈起我们正在编写“计算机图形学”课程的教材。不曾想龙启铭先生非常积极,提出看看书稿,书稿看完后,就提议由清华大学出版社出版,并提出了部分章节内容扩充、提供伪代码以及插图制作等方面的建议。我们在此基础上进一步对书稿进行了修改完善,终在2019年秋天完成了书稿第一版定稿。
本书中,除了传统计算机图形的几何建模、真实感绘制、计算机动画等内容外,还包括了数字几何处理、非真实感绘制、基于图形的影像处理、计算摄像、GPU图形计算等,不少内容都取自近二十年图形学方向的高水平论文,可充分反映计算机图形学的新进展。同时,在教材编写过程中,考虑传统图形学的建模、绘制等内容都已经被集成到GPU中了,我们较大幅度压缩了这部分的内容。
本书既可以用于研究生教材和计算机图形学相关方向的科研工作者查阅,也可以选择部分内容作为本科生教材。本书配套的源代码、课件等都通过网络提供。
因才疏学浅,且时间、精力有限,本书中如出现错误之处,敬请指出,以便后续完善。
最后,衷心感谢浙江大学鲍虎军教授、清华大学胡事民教授等专家,清华大学出版社龙启铭先生,以及其他对本书的出版给予支持和帮助的所有人。没有你们,就不会有这本教材。
黄华
2020年1月
第1章引言/1
1.1计算机图形学的概念1
1.2计算机图形学的发展2
1.2.120世纪60年代3
1.2.220世纪70年代4
1.2.320世纪80年代5
1.2.420世纪90年代6
1.2.521世纪7
1.3计算机图形学与其他学科的关系7
1.4计算机图形学的应用9
1.5小结11
思考题11
第2章基础知识/12
2.1图形的显示12
2.2几何变换14
2.2.1模型变换15
2.2.2视点变换17
2.2.3投影变换19
2.2.4窗口变换21
2.3光栅化处理22
2.3.1简单图元生成22
2.3.2多边形填充24
2.3.3剔除25
2.3.4可见性判断26
2.4图形硬件28
2.5小结29
思考题29
第3章几何建模/30
3.1数学基础303.1.1几何形状的数学形式30
3.1.2几何性质32
3.1.3建模工具34
3.2自由曲线/曲面建模35
3.2.1平面三次多项式曲线35
3.2.2Bézier曲线/曲面36
3.2.3B样条曲线/曲面38
3.3细分曲面建模41
3.3.1CatmullClark细分曲面41
3.3.2DooSabin细分曲面43
3.3.3Loop细分曲面44
3.3.4Butterfly细分曲面45
3.4三维重建46
3.4.1被动式与主动式建模46
3.4.2基于图像的三维重建47
3.4.3基于视频的三维重建50
3.4.4基于激光测距的三维重建51
3.4.5基于Kinect的三维重建53
3.5其他建模方法54
3.5.1分形54
3.5.2基于粒子系统的建模55
3.5.3基于语言学的建模55
3.6几何数据结构56
3.6.1构造实体几何模型56
3.6.2边界模型57
3.7小结59
思考题59
〖1〗现代计算机图形学基础〖3〗〖3〗第4章数字几何处理/60
4.1几何基础60
4.1.1几何模型60
4.1.2几何性质62
4.2网格去噪64
4.2.1基本方法64
4.2.2Laplacian平滑65
4.3网格简化67
4.3.1顶点聚类68
4.3.2渐进式网格69
4.4网格参数化70
4.4.1数学模型71
4.4.2平面参数化72
4.4.3球面参数化76
4.4.4基域参数化77
4.5重新网格化77
4.5.1网格质量78
4.5.2渐进式重新网格化78
4.5.3重心Voronoi图填充重新网格化79
4.5.4基于参数化的重新网格化80
4.6网格编辑81
4.6.1自由编辑81
4.6.2带约束的编辑83
4.6.3编辑迁移84
4.7网格形变84
4.7.1基于参数化的网格形变84
4.7.2基于微分坐标的网格形变85
4.8小结86
思考题86
第5章真实感绘制/88
5.1光照88
5.2BRDF和着色91
5.2.1BRDF92
5.2.2着色94
5.3纹理映射99
5.3.1简单的纹理映射99
5.3.2环境映射102
5.3.3凹凸映射102
5.4光线跟踪绘制104
5.4.1基本原理104
5.4.2光线投射模型105
5.4.3光线跟踪模型105
5.4.4光线跟踪加速108
5.4.5光线跟踪的其他改进110
5.5辐射度绘制110
5.5.1基本原理111
5.5.2辐射度绘制模型111
5.5.3辐射度方程的数值计算112
5.6特殊效果绘制113
5.7小结115
思考题115
第6章非真实感绘制/116
6.1概述116
6.2基于笔画建模的绘制118
6.2.1笔画模型118
6.2.2油画风格化绘制119
6.2.3水彩画风格化绘制126
6.2.4素描风格化绘制126
6.3基于纹理合成的绘制127
6.3.1基于风格类比的纹理合成绘制方法128
6.3.2基于笔画的纹理合成绘制方法129
6.4基于图像滤波的绘制131
6.4.1基于流体场的双边滤波绘制131
6.4.2基于亮度的双边滤波绘制132
6.4.3基于纹理/结构分层的滤波绘制133
6.5视频非真实感绘制134
6.5.1基于帧间光流的笔画绘制135
6.5.2基于视频体的笔画绘制136
6.6基于深度学习的绘制137
6.6.1基于卷积神经网络的风格迁移137
6.6.2基于生成对抗网络的风格迁移139
6.7小结140
思考题140
第7章基于图形的影像处理/142
7.1影像抠图142
7.1.1蓝屏抠图144
7.1.2基于三色图的自然图像抠图145
7.1.3基于笔画的自然图像抠图147
7.1.4基于闪光的自然图像抠图149
7.1.5视频抠图149
7.2影像缩放150
7.2.1图像缝隙增删151
7.2.2图像网格变形153
7.2.3视频缩放方法154
7.3影像融合155
7.3.1泊松图像融合156
7.3.2基于均值坐标插值的图像融合156
7.3.3视频融合方法158
7.4影像拼接158
7.4.1尽可能单应变换的图像拼接159
7.4.2形状保持的半单应变换图像拼接160
7.4.3自适应混合变换图像拼接162
7.4.4视频拼接162
7.5影像编辑163
7.5.1颜色迁移164
7.5.2图像变形165
7.5.3编辑传播166
7.5.4视频去抖168
7.6小结170
思考题170
第8章计算摄像/171
8.1摄像学的发展171
8.1.1成像设备171
8.1.2成像原理174
8.1.3相机成像176
8.2数字摄像177
8.2.1去马赛克177
8.2.2白平衡179
8.2.3色调映射181
8.2.43A调整182
8.3计算摄像183
8.3.1计算成像编/解码184
8.3.2性能分析187
8.4计算光场成像187
8.4.1基于光场的重对焦成像188
8.4.2基于光圈编码的去散焦成像189
8.5计算光谱成像190
8.5.1传统光谱成像190
8.5.2基于掩膜分光镜的计算光谱成像191
8.5.3基于双相机压缩感知的计算光谱成像192
8.5.4基于成像机理的计算光谱复原194
8.6小结196
思考题196
第9章计算机动画/197
9.1动画制作197
9.1.1传统动画197
9.1.2计算机动画概述198
9.1.3动画制作流程199
9.2关键帧插值200
9.2.1形状保持的图像形变插值201
9.2.2形状保持的三维网格形变插值203
9.3物理模拟204
9.4运动捕捉206
9.4.1主动式运动捕捉207
9.4.2被动式运动捕捉208
9.4.3运动重定向208
9.5群体动画209
9.5.1FlockandBoid模型211
9.5.2社会力模型212
9.6小结213
思考题213
第10章基于GPU的图形计算/215
10.1GPU简介215
10.1.1组成结构215
10.1.2并行处理216
10.1.3GPU的发展217
10.2数值计算218
10.2.1计算模式218
10.2.2通用数值计算220
10.3GPU快速建模221
10.3.1GPU加速的NURBS建模221
10.3.2GPU加速的泊松三维重建223
10.4GPU快速绘制224
10.4.1GPU加速的光线跟踪绘制224
10.4.2GPU加速的辐射度绘制224
10.5GPU计算光谱成像226
10.6小结227
思考题228
参考文献/229
不仅可以作为高等院校计算机相关专业的“计算机图形学”课程教材,也可以作为计算机图形学相关科研工作者和工业界人员的参考用书
黄华,北京理工大学计算机学院教授,国家杰出青年基金和中国青年科技奖获得者,万人计划科技创新领军人才入选者。分别于1996、2001、2006年在西安交通大学获得工学学士、硕士、博士学位。主要研究图像与视频处理、计算机图形学。主持国家自然科学基金重点项目、国家重点研发计划项目等。