课程大纲

课程大纲

计算机图形学基础

课程编码:B0912017Y 英文名称:Fundamentals of Computer Graphics 课时:38 学分:2.00 课程属性:专业课 主讲教师:高林等

中文介绍
本课程讲述计算机图形学领域的核心概念、基本原理和主要内容,涵盖计算机图形学基础知识、几何计算、绘制、动画模拟和三维重建等方面。课程设计兼顾基础与前沿,既包括计算机图形学的基本概念和经典算法,又涵盖当前的前沿研究进展。通过本课程的学习,希望学生能理解和掌握计算机图形学的基础概念,了解探讨计算机图形学的前沿热点,激发学生的科研兴趣,为未来从事图形学相关工作和科研打下坚实的基础。

英文介绍
This course covers the core concepts, fundamental principles, and main content of the field of computer graphics. Topics include basic knowledge of computer graphics, geometric computation, rendering, animation simulation, and 3D reconstruction. This course design balances fundamental and advanced topics, encompassing both basic concepts and classic algorithms in computer graphics as well as advanced research developments. Through this course, students are expected to understand and master the fundamental concepts of computer graphics, explore and discuss cutting-edge topics, and ignite their research interests, thereby laying a solid foundation for future work and research in graphics-related fields.

教学目的要求
本课程是计算机应用选修课,主要面向计算机科学与技术学院大二大三大四学生,主要讲授计算机图形学领域的主要概念、基本原理和基本技术。课程内容涉及几何计算、三维重建、渲染与动画模拟等。通过本课程的学习,希望学生能掌握计算机图形学的基本概念和经典算法,了解计算机图形学的前沿研究进展,通过课程实验设计对所学习的内容进行实践验证。

预修课程
数据结构 离散数学 线性代数 程序设计基础与实验等

主要内容

课堂教学为主,辅以讨论与实践,兼顾基础与前沿,学科基础与实践结合。在教学手段上,课程强调基础概念的理解和掌握,强调前沿热点的追踪和探讨,强调复杂系统的源码分析和理解;通过大作业的方式,让学生在课程结束时具备一定计算机图形学基本算法实现能力。

序号

授课内容

知识点

备注

第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次

数字几何处理概论

  1. 数字几何处理的发展历史
  2. 常见三维模型数据结构
  3. 世界坐标与局部坐标
  4. 物体的多边形表示
  5. 常见数据格式
  6. 几何模型的分类
  7. 点云的处理方法

 

第6次

网格光顺、简化、细分与检索

  1. 网格光顺方法
  2. 网格简化方法
  3. 常见细分格式与计算
  4. 三维网格检索方法

 

第7次

网格变形与建模

  1. 网格变形方法
  2. 拉普拉斯变形方法
  3. ARAP变形以及RIMD变形方法
  4. 基于包围盒的变形方法

 

第8次

网格简化

  1. 网格半边结构介绍与实践
  2. 网格简化概论、算法介绍与演示

实验3:网格简化算法实践

第9次

光线跟踪

1、光线投射与光线跟踪

2、光线的分类

3、光线与三角形求交,重心坐标

4、阴影产生与表示

5、反走样技术

 

第10次

辐射度与渲染方程

1、基本概念及定义

2、辐射度系统方程求解

3、形状因子计算

4、渲染方程

 

第11次

图形学中的人工智能编程

  1. Python基础
  2. 卷积操作和池化操作
  3. 基本神经网络结构
  4. 骨干神经网络结构

 

第12次

神经辐射场

1、神经辐射场定义

2、光线行进算法

3、神经辐射场前沿

 

第13次

阴影与纹理映射

  1. 阴影的概念
  2. 硬阴影和软阴影
  3. 平面阴影与曲面阴影
  4. 阴影图
  5. 阴影映射
  6. 图像纹理与几何纹理
  7. 二维与三维纹理映射
  8. 法向映射与凹凸映射
  9. 前置滤波,超采样,Mipmap

10、纹理填充,图像缩放映射

 

第14次

计算机动画

1、计算机动画基本概念

2、发展历史与基本技术

3、图形学技术应用,关键帧概念

4、物理仿真与流体动画

5、三维人脸重建方法

6、表情迁移合成

7、运动与关节,运动自由度

8、常用动作捕捉技术,动画合成

9、视点坐标系与相机定标

 

第15次

光线跟踪加速与光线跟踪算法实现

  1. 光线跟踪的加速方法的介绍
  2. 介绍常见的空间组织结构及具体代码实现

实验4:光线跟踪算法实现

第16次

虚拟现实

  1. VR与AR基本概念
  2. VR特征与立体视觉
  3. 场景的合成,VR应用和虚拟现实前沿

 

第17次

深度学习和几何处理的前沿交叉

  1. 基于点云的分割与分类方法
  2. 基于体素的几何建模方法
  3. 基于网格的分析与合成方法
  4. 基于隐式场的几何建模方法

 

第18次

人工智能数字内容生产

  1. 人工智能的生成模型
  2. 人脸生成
  3. 3D内容生成

 

第19次

考试周

1、开卷

 

 

 

各次课程的教学目标、重点及难点具体包括:

第1课——图形学概论

教学目标:了解和掌握图形处理的基本流程,图形学与相关学科的联系与区别。

教学重点:了解图形学的产生和历史发展,在计算机科学与技术学科中的定位与作用,典型应用。并通过动手实验的方式,让学生们理解如何实现计算机图形学中的各种效果,了解计算机图形学的基本知识。

教学难点:计算机图形学课程内容涉及几何计算、绘制、动画模拟、三维重建与运动捕捉等。低年级的学生缺乏程序编码积累和相关知识积累较少,更缺乏软件工程的实践经验,如何在第一节课的教学中,引导学生们了解计算机图形学的发展史,并对计算机图形学产生兴趣,是第一次教学的难点。

第2课——图形学基本知识

教学目标:让学生熟练掌握常见几何变换的矩阵表达,变换的几何意义以及变换参数的求解。

教学重点:如何理解齐次坐标表示的变换矩阵的统一表示,视点坐标系确定方法及视点变换等基本知识。

教学难点:计算机图形学中的三维技术离不开对三维空间的观察与视点坐标系的理解,如何让学生理解三维空间的模型表示,使用已有的知识来理解并掌握空间变换概念和变换参数的自由度。

第3课——光栅图形学

教学目标:让学生了解和掌握光栅图形学的基本概念,能够实现基本的扫描转换,区域填充,以及简单多面体的隐藏线隐藏面的消除。

教学重点:从像素的意义,扫描转换实现过程、基本算法。

教学难点:如何让学生更好地了解复杂多边形填充的判断,大规模几何模型的可见性判断与剔除。

第4课——OpenGL和光栅图形学实践

教学目标:让学生了解OpenGL基本知识与使用介绍;了解基本图形技术直线与圆弧产生、平面多边形区域填充;使用OpenGL进行基本的几何变换。

教学重点:为了更好的让学生理解计算机图形学中的图形表示与实现,将向学生介绍OpenGL基本使用操作,并希望学生在课程结束后能够使用OpenGL完成模型的基本几何变换,通过动手实践来加深学生对计算机图形学的理解与学习。

教学难点:如何让学生更好地理解OpenGL实现原理、图形曲面的表示,并通过算法实际实现、多边形闭合区域的确定等效果。

第5课——数字几何处理概论

教学目标:让学生了解数字几何处理的发展历史,并熟练掌握基本的几何建模表示方法,了解物体多边形表示的数据结构和数据格式。

教学重点:常见三维建模方法与数据结构包括点云和网格,向同学介绍并理解世界坐标与局部坐标的区别。

教学难点:如何用点云数据进行建模和分析,如何对网格模型进行简化和细分,如何对网格进行变形建模并保持几何细节。

第6课——网格光顺、简化、细分与检索

教学目标:让学生们熟练掌握网格简化算法和细分算法,能够运用欧拉公式判定几何体的封闭性或有效性。

教学重点:掌握细分曲线与曲面,常见细分格式与计算、构造立体几何与边界表示、网格的变形与建模方法等基本知识。

教学难点:网格模型简化中的顶点删除、边压缩、面片收缩操作及其实现,非高斯噪声模型下的网格光滑算法。光场(LighField)网格模型的检索浏览。

第7课——网格变形与建模

教学目标:让学生们了解基本的网格变形方法,掌握这些网格变形方法在深度几何学习的方面的应用。

教学重点:网格变形中各种能量函数的作用,在变形过程中保持局部细节以及支持大尺度的变形。

教学难点:学生们对于网格变形和数值优化方面的了解普遍较少,几乎没有相应的实践经验,这对于学生理解ARAP算法流程及其能量项的构造,ACAP、RIMD等变形表示支持大尺度变形的原因,这些变形表示和深度学习的结合算法带来了挑战。

第8课——网格简化

教学目标:让学生了解三角网格的半边数据结构和三角网格简化算法。

教学重点:针对三角网格的半边数据结构的构造,网格简化的顶点删除、边压缩、面片收缩三种基本操作,两种基本的网格简化算法的流程和实现。

教学难点:三角网格模型结构不规则,学生处理起来具有一定难度,渐进式网格模型的构造算法。

第9课——光线跟踪

教学目标:让学生熟练掌握光照模型及计算方法,了解颜色模型,能够完成简单模型的着色和简单几何场景的光线跟踪算法。

教学重点:光线与三角形求交算法,蒙特卡洛采样方法,光线追踪递归算法,反走样方法。

教学难点:学生对于渲染算法接触较少,光线投射与光线跟踪的概念和具体算法的实现对其有一定难度。

第10课——辐射度与渲染方程

教学目标:让学生理解辐射度的基本概念与定义,辐射度系统方程求解;形状因子计算;辐射度量学;双向反射分布函数;渲染方程的基本概念。

教学重点:如何对辐射度系统方程的求解;了解辐射度量学中的各种物理量的定义,双向反射分布函数的定义,渲染方程的构成。

教学难点:如何对计算复杂场景下的辐射度;不同物理量之间的区别;如何理解双向分布反射函数和渲染方程。

第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在实际生活中的应用;了解虚拟现实技术的发展现状,关键技术,例如相机定标与视点定位技术与场景的合成,以及元宇宙的相关应用。

教学难点:如何建立虚拟世界与现实世界之间的关联,怎样在虚拟世界中模拟现实世界中的感知。

第17课——深度学习和几何处理的前沿交叉(前沿专题1)

教学目标:让学生了解一些常用的三维几何表示,前沿的关于复杂三维模型表示方法,三维变形技术在一般三维模型中的应用,以及深度学习在智能化几何建模中的应用和前沿探索。

教学重点:了解计算机图形学的前沿进展,对计算机图形学顶会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(考试)

课程思政
在计算机诞生后,早期的数据表达以文字的形式为主,继而出现黑白图形,并逐步过渡至彩色图像。然而,人类对于世界的认知是三维的,因此如何在计算机中有效地表达、处理以及显示三维信息成为重要研究问题,计算机图形学也在二十世纪应运而生。人机之间要进行高效的视觉交流离不开图形学的研究发展。过去几十年来,计算机图形学的发展深深地影响了中国工业和科技领域,改变了人们的生活。
近年来随着我国制造业转型进入工业4.0,利用信息化技术促进产业变革已成为重点核心。计算机图形学作为计算机辅助设计核心之一在第四次工业革命中显得尤为重要。习总书记强调,“我们要顺应第四次工业革命发展趋势,共同把握数字化、网络化、智能化发展机遇”。而实现智能制造就要提高创新设计能力,就离不开智能3D建模,神经渲染,虚拟现实等关键计算机图形学技术的应用和发展。因此培养具备图形学研究能力的科研人员、图形系统工程师是加强中国智能制造的关键必要条件,也是《计算机图形学》课程开设直面的核心目的之一。
计算的目的是洞察事物的本质,不是获得数字,而图形图像往往比单纯数字具有更强的洞察力。自从开设以来,《计算机图形学》秉承着科教融合理念和实践精神,教授学生理解掌握图形学核心概念和方法,使学生了解前沿研究领域和最新研究成果,并具备一定的编程能力。课程内容涵盖几何计算、绘制、动画模拟、三维重建与运动捕捉等,也结合人工智能大数据等热点拓宽学生知识,加强动手能力。

教材
1.计算机图形学基础教程,孙家广, 胡事民著,清华大学出版社,2009

参考文献
1. 计算机图形学教程(修订版) 唐荣锡等著, 科学出版社,2000年
2. Computer Graphics with OpenGL (4th edition),Donald Hearn, M. Pauline Baker, and Warren R.Carithers, Prentice Hall, 2011

课程教师信息
1、教师简介
高林,现任中国科学院计算技术研究所博士生导师\研究员, 研究方向为计算机图形学、深度几何学习等。于清华大学毕业,获得工学博士学位(导师:胡事民院士),曾在德国亚琛工业大学进行公派访问研究(合作导师:Leif Kobbelt 教授)。
研究工作主要围绕着如何表达与分析计算机图形学中的几何数据,提高几何处理算法的效果和智能性开展研究。通过引入数据驱动建立数据先验的研究思路,实现了数字几何处理方法智能性的提升。提出了可表示大尺度旋转的几何特征与网格深度生成网络,这些工作搭设了数字几何与深度学习的桥梁并提供了有力工具。基于这些,解决了网格变形传播必须依赖交互的难题,并开发了可以生成精细几何模型的深度生成网络。还从优化交互的角度出发来提高计算机图形学算法的智能性,包括研发了智能人脸画板等工作。在ACM SIGGRAPH\TOG,IEEE TPAMI,IEEE TVCG等计算机图形学顶尖刊物和会议上发表论文百余篇,相关研究工作入选ESI高被引论文,并得到图灵奖得主Geoffrey Hinton教授和斯坦福大学Leonidas Guibas教授等著名学者的引用,部分成果在腾讯公司得到应用。还获得了亚洲图形学会青年学者奖,共青团中央全国向上向善好青年,CCF技术发明一等奖等,并入选国家优青、北京市杰青、英国皇家学会牛顿高级学者、中国科协青年人才托举工程。
2、教师教学经历
2017-2024年连续8年在中国科学院大学怀柔校区开讲计算机图形学的研究生课程,主讲课时每学期在30学时,连续6年学生评教为优秀。2021-2024年在中国科学院大学玉泉路校区讲授计算机图形学的本科生课程,主讲课时36学时,学生评教为优秀。

其它说明