计算机图形学基础
课程编码:B0912017Y 英文名称:Fundamentals of Computer Graphics 课时:38 学分:2.00 课程属性:专业课 主讲教师:高林等
课堂教学为主,辅以讨论与实践,兼顾基础与前沿,学科基础与实践结合。在教学手段上,课程强调基础概念的理解和掌握,强调前沿热点的追踪和探讨,强调复杂系统的源码分析和理解;通过大作业的方式,让学生在课程结束时具备一定计算机图形学基本算法实现能力。
| 序号 | 授课内容 | 知识点 | 备注 |
| 第1次 | 图形学概论 | 1、计算机图形学课程基本信息 2、图形处理的基本流程及应用 3、图形与图像,计算机视觉,模式识别等的关系 4、计算机图形学的历史和展望 5、课程大纲介绍:第2-18周的课程内容概览 |
|
| 第2次 | 图形学基本知识 | 1、常见颜色空间及转换 2、齐次坐标定义,投影表示,变换的级联与复合 3、三维空间的观察与视点坐标系 4、三维变换基本流程及变换表示 |
|
| 第3次 | 光栅图形学 | 1、像素与光栅扫描 2、显示系统结构 3、图形可见性,隐藏线与隐藏面 4、图像空间与物体空间的消隐 5、Z-Buffer; 遮挡剔除 6、图形与交互 |
|
| 第4次 | OpenGL和光栅图形学实践 | 1、OpenGL基本知识与使用介绍 2、基本图形技术直线与圆弧产生 3、平面多边形区域填充 4、使用OpenGL进行基本的几何变换 | 实验1:基本图形技术(直线与圆弧产生/平面多边形区域填充,二选一) 实验2:使用OpenGL显示三维模型 |
| 第5次 | 数字几何处理概论 |
|
|
| 第6次 | 网格光顺、简化、细分与检索 |
|
|
| 第7次 | 网格变形与建模 |
|
|
| 第8次 | 网格简化 |
| 实验3:网格简化算法实践 |
| 第9次 | 光线跟踪 | 1、光线投射与光线跟踪 2、光线的分类 3、光线与三角形求交,重心坐标 4、阴影产生与表示 5、反走样技术 |
|
| 第10次 | 辐射度与渲染方程 | 1、基本概念及定义 2、辐射度系统方程求解 3、形状因子计算 4、渲染方程 |
|
| 第11次 | 图形学中的人工智能编程 |
|
|
| 第12次 | 神经辐射场 | 1、神经辐射场定义 2、光线行进算法 3、神经辐射场前沿 |
|
| 第13次 | 阴影与纹理映射 |
10、纹理填充,图像缩放映射 |
|
| 第14次 | 计算机动画 | 1、计算机动画基本概念 2、发展历史与基本技术 3、图形学技术应用,关键帧概念 4、物理仿真与流体动画 5、三维人脸重建方法 6、表情迁移合成 7、运动与关节,运动自由度 8、常用动作捕捉技术,动画合成 9、视点坐标系与相机定标 |
|
| 第15次 | 光线跟踪加速与光线跟踪算法实现 |
| 实验4:光线跟踪算法实现 |
| 第16次 | 虚拟现实 |
|
|
| 第17次 | 深度学习和几何处理的前沿交叉 |
|
|
| 第18次 | 人工智能数字内容生产 |
|
|
| 第19次 | 考试周 | 1、开卷 |
|
各次课程的教学目标、重点及难点具体包括:
第1课——图形学概论
教学目标:了解和掌握图形处理的基本流程,图形学与相关学科的联系与区别。
教学重点:了解图形学的产生和历史发展,在计算机科学与技术学科中的定位与作用,典型应用。并通过动手实验的方式,让学生们理解如何实现计算机图形学中的各种效果,了解计算机图形学的基本知识。
教学难点:计算机图形学课程内容涉及几何计算、绘制、动画模拟、三维重建与运动捕捉等。低年级的学生缺乏程序编码积累和相关知识积累较少,更缺乏软件工程的实践经验,如何在第一节课的教学中,引导学生们了解计算机图形学的发展史,并对计算机图形学产生兴趣,是第一次教学的难点。
第2课——图形学基本知识
教学目标:让学生熟练掌握常见几何变换的矩阵表达,变换的几何意义以及变换参数的求解。
教学重点:如何理解齐次坐标表示的变换矩阵的统一表示,视点坐标系确定方法及视点变换等基本知识。
教学难点:计算机图形学中的三维技术离不开对三维空间的观察与视点坐标系的理解,如何让学生理解三维空间的模型表示,使用已有的知识来理解并掌握空间变换概念和变换参数的自由度。
第3课——光栅图形学
教学目标:让学生了解和掌握光栅图形学的基本概念,能够实现基本的扫描转换,区域填充,以及简单多面体的隐藏线隐藏面的消除。
教学重点:从像素的意义,扫描转换实现过程、基本算法。
教学难点:如何让学生更好地了解复杂多边形填充的判断,大规模几何模型的可见性判断与剔除。
第4课——OpenGL和光栅图形学实践
教学目标:让学生了解OpenGL基本知识与使用介绍;了解基本图形技术直线与圆弧产生、平面多边形区域填充;使用OpenGL进行基本的几何变换。
教学重点:为了更好的让学生理解计算机图形学中的图形表示与实现,将向学生介绍OpenGL基本使用操作,并希望学生在课程结束后能够使用OpenGL完成模型的基本几何变换,通过动手实践来加深学生对计算机图形学的理解与学习。
教学难点:如何让学生更好地理解OpenGL实现原理、图形曲面的表示,并通过算法实际实现、多边形闭合区域的确定等效果。
第5课——数字几何处理概论
教学目标:让学生了解数字几何处理的发展历史,并熟练掌握基本的几何建模表示方法,了解物体多边形表示的数据结构和数据格式。
教学重点:常见三维建模方法与数据结构包括点云和网格,向同学介绍并理解世界坐标与局部坐标的区别。
教学难点:如何用点云数据进行建模和分析,如何对网格模型进行简化和细分,如何对网格进行变形建模并保持几何细节。
第6课——网格光顺、简化、细分与检索
教学目标:让学生们熟练掌握网格简化算法和细分算法,能够运用欧拉公式判定几何体的封闭性或有效性。
教学重点:掌握细分曲线与曲面,常见细分格式与计算、构造立体几何与边界表示、网格的变形与建模方法等基本知识。
教学难点:网格模型简化中的顶点删除、边压缩、面片收缩操作及其实现,非高斯噪声模型下的网格光滑算法。光场(LighField)网格模型的检索浏览。
第7课——网格变形与建模
教学目标:让学生们了解基本的网格变形方法,掌握这些网格变形方法在深度几何学习的方面的应用。
教学重点:网格变形中各种能量函数的作用,在变形过程中保持局部细节以及支持大尺度的变形。
教学难点:学生们对于网格变形和数值优化方面的了解普遍较少,几乎没有相应的实践经验,这对于学生理解ARAP算法流程及其能量项的构造,ACAP、RIMD等变形表示支持大尺度变形的原因,这些变形表示和深度学习的结合算法带来了挑战。
第8课——网格简化
教学目标:让学生了解三角网格的半边数据结构和三角网格简化算法。
教学重点:针对三角网格的半边数据结构的构造,网格简化的顶点删除、边压缩、面片收缩三种基本操作,两种基本的网格简化算法的流程和实现。
教学难点:三角网格模型结构不规则,学生处理起来具有一定难度,渐进式网格模型的构造算法。
第9课——光线跟踪
教学目标:让学生熟练掌握光照模型及计算方法,了解颜色模型,能够完成简单模型的着色和简单几何场景的光线跟踪算法。
教学重点:光线与三角形求交算法,蒙特卡洛采样方法,光线追踪递归算法,反走样方法。
教学难点:学生对于渲染算法接触较少,光线投射与光线跟踪的概念和具体算法的实现对其有一定难度。
教学目标:让学生理解辐射度的基本概念与定义,辐射度系统方程求解;形状因子计算;辐射度量学;双向反射分布函数;渲染方程的基本概念。
教学重点:如何对辐射度系统方程的求解;了解辐射度量学中的各种物理量的定义,双向反射分布函数的定义,渲染方程的构成。
教学难点:如何对计算复杂场景下的辐射度;不同物理量之间的区别;如何理解双向分布反射函数和渲染方程。
第11课——图形学中的人工智能编程
教学目标:让学生掌握人工智能的基本操作,包括卷积和池化操作,以及基本的网络结构,如全连接神经网络和卷积神经网络;掌握图形学中的神经网络算子,如三维卷积和池化操作;了解一些骨干神经网络结构。
教学重点:针对神经网络的基本操作,明白计算方式和其中的原理,并能够通过代码简单实现。
教学难点:对于没有神经网络基础的学生,理解二维卷积和三维卷积的算法原理,学习并理解基本和骨干神经网络结构具有一定的难度。
第12课——神经辐射场
教学目标:让学生了解神经辐射场,掌握基本网络结构和光线行进算法;了解神经辐射场的前沿。
教学重点:神经辐射场的网络结构及设计原理;光线行进算法;神经辐射场的前沿探索。
教学难点:掌握光线行进算法;神经辐射场相关拓展工作涉及到几何变形和渲染的其他知识。
第13课——阴影与纹理映射
教学目标:让学生了解阴影的概念,阴影的分类,对于不同的曲面如何实现阴影效果;让学生理解纹理映射方式、基本的纹理合成算法、三维模型参数化算法、带纹理的三维模型的渲染方法,了解体纹理、凹凸贴图、移位贴图的基本概念。
教学重点:阴影的概念、硬阴影和软阴影、平面阴影、曲面阴影、阴影图、阴影映射;两种基本的阴影绘制方法阴影域(Shadow Volume)和阴影图(Shadow Map)算法以及各自的优缺点;柏林噪音(Perlin Noise)在纹理合成方面的应用,纹理映射坐标的生成方法也即三维模型的参数化方法。
教学难点:如何加快阴影算法,对于阴影图算法中的由于精度问题出现的变形和干涉现象如何进行处理;人工制造的纹理如果直接进行渲染,可能会出现一些瑕疵,如何通过滤波等方式来消除这些问题。
第14课——计算机动画
教学目标:让学生了解关于计算机动画的基本概念、发展历史与基本技术;图形学技术应用,关键帧概念;让学生理解三维人脸重建方法,表情迁移合成;三维人体运动与关节,运动自由度;常用动作捕捉技术,动画合成;视点坐标系与相机定标。
教学重点:计算机动画的基本概念和发展历史;了解计算机动画制作的基本流程规范;常用的计算机3D动画的制作软件,例如3D Max, Maya等;流体动画和物理仿真基础;制作计算机动画的关键技术;关键帧方法以及插值方法。
教学难点:计算机动画的制作离不开计算机三维技术的理解,如何让学生们了解计算机动画的制作流程,使用已有的知识来理解并了解相关的计算机动画的制作软件;流体动画和物理仿真涉及到数学物理方程的相关知识;如何保证动画关键帧之间的相关性;如何保证动画合成的连贯性以及合理性。
第15课——光线跟踪加速与光线跟踪算法实现
教学目标:让学生了解光线追踪算法的主要时间开销来源,以及如何构造相应的数据结构对其进行加速。
教学重点:光线投射与光线跟踪定义,算法结构与流程;光线跟踪的加速方法、介绍常见的空间组织结构,包括八叉树,空间二分树,KD树等数据结构,并介绍具体代码实现。
教学难点:光线跟踪算法要求综合能力,涉及因素多,计算量大。如何让学生更好地了解光线跟踪算法及其加速方法,并通过代码实现。
第16课——虚拟现实
教学目标:让学生理解 VR与AR基本概念;VR特征与立体视觉;相机定标与视点定位关键技术;场景的合成,VR应用;动态环境建模技术;实时三维图形生成技术;应用系统开发工具;三维世界实时理解与分析;定位技术的概念与分类;虚拟交互的主要方式。
教学重点:VR/AR的重要性,VR/AR在实际生活中的应用;了解虚拟现实技术的发展现状,关键技术,例如相机定标与视点定位技术与场景的合成,以及元宇宙的相关应用。
教学难点:如何建立虚拟世界与现实世界之间的关联,怎样在虚拟世界中模拟现实世界中的感知。
教学目标:让学生了解一些常用的三维几何表示,前沿的关于复杂三维模型表示方法,三维变形技术在一般三维模型中的应用,以及深度学习在智能化几何建模中的应用和前沿探索。
教学重点:了解计算机图形学的前沿进展,对计算机图形学顶会SIGGRAPH的最新成果有更直观的认识;了解对基于常见三维几何表示的神经网络。
教学难点:如何学习和了解最新的前沿知识,学习基于不同几何表示的深度神经网络,并利用网络完成分割、分类、几何建模等任务。
第18课——人工智能数字内容生产(前沿专题2)
教学目标:让学生了解人工智能生成模型的基本概念,人脸生成相关研究进展,以及3D内容生成方向的前沿工作。
教学重点:了解目前人工智能领域前沿的生成模型,介绍生成模型的概念、基本原理和常见的生成模型结构,以及其在人脸合成与编辑方向的研究进展;了解3D数字内容生产的前沿进展。
教学难点:如何学习和了解最新的前沿知识,并理解深度学习在智能图像合成和几何建模中的应用。
| 章节/学时分配 | 讲课 | 习题课 | 实验课 | 上机课 | 讨论课 | 其它 |
| 第1课/2学时 | 2 | |||||
| 第2课/2学时 | 2 | |||||
| 第3课/2学时 | 2 | |||||
| 第4课/2学时 | 2 | |||||
| 第5课/2学时 | 2 | |||||
| 第6课/2学时 | 2 | |||||
| 第7课/2学时 | 2 | |||||
| 第8课/2学时 | 1 | 1 | ||||
| 第9课/2学时 | 2 | |||||
| 第10课/2学时 | 2 | |||||
| 第11课/2学时 | 2 | |||||
| 第12课/2学时 | 2 | |||||
| 第13课/2学时 | 2 | |||||
| 第14课/2学时 | 2 | |||||
| 第15课/2学时 | 1 | 1 | ||||
| 第16课/2学时 | 2 | |||||
| 第17课/2学时 | 2 | |||||
| 第18课/2学时 | 2 | |||||
| 第19课/2学时 | 2(考试) |