前言
计算机图形学的教学内容由建模与渲染两部分组成。按照原理编写算法,按照算法生成效果。本书中讲到的三维物体模型和渲染效果全部使用C++编程实现。为了帮助教师更好地使用《计算机图形学基础教程(Visual C++版)》(第3版)(以下简称主教材),编写了此书。
主教材分为10章。第1章为导论,介绍计算机图形学的应用领域、计算机图形学的发展历史、计算机图形学研究的热点技术等。第2章为MFC绘图基础,介绍MFC的绘图函数使用方法以及双缓冲动画技术。第3章为基本图形的扫描转换,讲解直线、圆和椭圆的扫描转换算法以及反走样技术。第4章为多边形填充,讲解多边形(特别是三角形)填充算法、区域填充算法。第5章为二维变换与裁剪,讲解二维几何变换和二维图形裁剪技术。第6章为三维变换与投影,讲解三维变换和投影变换。第7章为自由曲线与曲面,讲解Bezier曲线曲面与B样条曲线曲面建模技术。第8章为建模与消隐,讲解多面体与曲面体的建模技术,以及可见面判定技术。第9章为光照模型,讲解简单光照模型、基于物理的光照模型。第10章为纹理映射,讲解函数纹理、图像纹理和凹凸纹理映射技术。主教材的第3~7章为基础内容。本书重点内容为第8~10章。教材中讲授的原理使用Visual Studio 2010编程实现。为了帮助读者掌握微软基类库绘图方法,第2章给出了MFC基本绘图函数的说明。
推荐教师使用案例化教学法授课,以任务为导向编程实现每个算法的效果。建议的教学主线如下。
(1) 三维建模(包括平面体、曲面体以及自由曲面体),在第7、8章讲解。
(2) 透视投影: 为了绘制真实感图形,对三维模型进行透视投影获得二维图像,在第6章讲解。
(3) 三维几何变换: 让三维模型动起来,便于从不同方向观察三维物体,在第6章讲解。
(4) 填充三角形: 将物体的网格模型细分为三角形网格,使用光滑着色模式填充三角形面元,在第4章讲解。
(5) 消隐: 循环表面绘制三维物体的投影,确定哪些表面可见或者部分可见,在第8章讲解。
(6) 光照和纹理: 根据视点位置、光源位置计算三维物体表面上每个点的颜色。为模型添加纹理、阴影,绘制像照片一样真实的三维物体,在第9、10章讲解。
三维模型可以选择球体、立方体或者茶壶。简单模型是立方体、球体、圆柱、圆锥、圆环等模型。复杂模型主要是Utah茶壶的建模和自定义的三维曲面物体。初步教学效果是绘制简单模型的线框模型动画,并添加基本的Gouraud光照和Phong光照。期望的最佳教学效果是绘制Utah茶壶,或者用自由曲面建模的光滑物体的纹理光照效果。
本书给出各章的知识点,详细讲解每章的教学目标、重点难点。为了帮助教师更好地提高教学效果,每章都给出一个教学程序,并在最后给出课外作业的布置建议。
孔令德2024年12月
