前言 计算机图形学是研究如何利用计算机算法来表示、生成、处理和显示图形的学科,主要包括三维模型的线框图和光照图绘制。本书引导读者使用样条曲面建立物体的线框模型和表面模型。物体的线框模型是表面模型的骨架,使用三维几何变换让物体运动起来,使用透视投影让物体符合视觉习惯,使用消隐算法让模型看起来像真的,通过添加材质、设定光源、映射纹理让模型绘制为像照片一样的图形。 本书具有以下特点。 1. 算法原理案例化 计算机图形学原理众多、算法复杂。作为山西省教学名师和国家级一流本科课程的负责人,笔者在二十多年的计算机图形学教学实践中,使用MFC平台严格按照本书讲解的算法自主开发了BCGL(博创研究所计算机图形学资源库,曾荣获山西省教学成果一等奖),实现了本书所有算法都基于案例开发进行讲解。 2. 算法内容的系统化 本书的主线是生成真实感图形,先用直线构造线框模型,再对模型施加几何变换、透视投影、表面消隐、设置材质、设置光源、绑定纹理,最后在双缓冲环境下建立真实感图形的三维动画。 自2008年以来,笔者编写的《计算机图形学基础教程》由于通俗易懂,深受广大师生的欢迎。在广泛听取一线教师的意见和建议后,在强化计算机图形学基础知识的同时,尽量降低本书的学习门槛。具体如下。 (1) 简化模型。几何模型仅使用立方体与球体模型,前者数据结构简单,方便描述顶点和小面的关系,后者的点法向量可用该点的位置向量替代,便于讲解光照。 (2) 缩短篇幅。为了便于一部分基础较好的读者进一步学习计算机图形学知识,本书提供了用MFC绘制二维图形方法(提供了13个例程)和分形几何学(提供了11个例程)的拓展阅读内容,有兴趣的读者可以扫描前言中的二维码后下载阅读。 (3) 缩短学时。本书重点讲解线框模型动画和简单的光照模型,适合32~48学时的教学。 本书提供了40个计算机图形学基础算法的视频讲解,读者可通过扫码进行观看。目前,C++仍是图形开发的主流语言,因此视频中展示的算法均使用Visual Studio 2017版的MFC应用程序框架进行实现。我们可将本书提供的算法视为一个货架,微课视频视为货架上的货物,这样就可很方便地更换为用QT、C#等语言实现的产品。下一步,我们会在不改变算法的前提下,开发出基于不同编程语言的计算机图形学算法微课,感兴趣的读者敬请关注。 本书由孔令德和康凤娥共同编写,其中康凤娥编写第1~6章,孔令德编写第7~8章并进行整体筹划和统稿工作。 热切希望计算机图形领域的专家不吝赐教,并期待与广大计算机图形学同行进行交流。希望本书的出版对读者有所帮助,读者可以直接联系编者获得课件、源程序以及学习指导。 编者2021年8月