SPOC学校专有课程
计算机图形学
分享
spContent=IEEE 对计算机图形学的定义为:Computer graphicsis the art or science of producing graphical images with the aid of computer。国际标准化组织 ISO 将计算机图形学定义为:计算机图形学是一门研究通过计算机将数据转换成图形,并在专门显示设备上显示的原理方法和技术的学科。它是建立在传统的图学理论、应用数学及计算机科学基础上的一门学科。总而言之计算机图形学是研究怎样利用计算机来显示、生成和处理图形的原理、方法和技术的一门学科,这里的图形是指二维或三维图形的处理。通过本课程学习,期达到以下目标: 1、让学生学习到经典的图形学理论和最新研究方向; 2、让学生了解最新的基于GPU的可编程渲染管线 3、带领学生学习较新的图形编程API完成实验(源课程基于OpenGL和GLSL,课堂演示用webGL和GLSL,作业和项目不限) 4、让大家感觉渲染影片、开发游戏引擎、实现虚拟现实应用、进行科学计算可视化并非遥不可及。
—— 课程团队
课程概述

Why to study:

计算机图形学是计算机科学与技术、软件工程、数字媒体技术等专业的必修课或专业选修课。

计算机图形学相关的应用广泛:主要包括计算机辅助设计、虚拟现实、训练模拟、数据可视化与数字娱乐,它是打造“元宇宙”的基础科学和技术。


What to study:

本课程主要讨论计算机图形学中的基本理论与算法,而不是基于其上建立的面向应用的工具软件的设计和使用。

课堂讲授是本课程的主要教学方式,并且要求学生完成相应的作业和编程项目。

本课程的主要内容包括主要是包括变换,齐次坐标系,摄像机投影模型,二维与三维裁剪方法、隐藏面消除、光照着色模型、光线跟踪模型等的渲染技术;其次是网格造型,曲线曲面与计算,分型,粒子系统等几何造型技术; 以及比较基础的交互和动画技术。

为了学生课下实践的需要,基于图形API的开发技术也会在本课程中加以介绍(如openGL/webGL等)。


目标:

学生通过学习,可以了解和掌握计算机图形学的基本原理,主要技术和发展方向,并通过小型应用开发增强学生提出问题,分析问题、设计解决方案和系统编程实现的专业能力,为今后从事相关工作打下扎实基础。


源课程特点:

课程有管线视角理论体系完整编程框架先进三个特点:

第一,管线视角的图形学,按照图形渲染管线的三个概念阶段,即应用程序阶段、几何阶段、光栅化阶段来组织课程内容,将整个课程内容划分为五篇:基础篇、应用程序、几何阶段、光栅化阶段、高级话题。

第二,构建完整的理论体系,将传统理论和图形新发展结合起来,既包括朴素的软光栅、经典的造型技术,也包括真实感图形学的光照、纹理、阴影等内容,在这些内容中不仅体现经典的算法,还包括一些新的算法如实时光线追踪、法线贴图、实时动态阴影等。

第三,搭建先进实用的编程框架,基于可编程管线进行图形编程,采用主流的图形标准OpenGL,并用采用其着色器语言OpenGL Shading Language(简称GLSL)进行着色器的编写(Shader的编写思想与Unity3D相通)。这个图形编程框架充分利用了日趋强大的GPU的计算能力,和目前工业界的实际做法完全相通。设置了从在一个窗口中绘制多边形到粒子系统、延迟渲染的多个进阶实验,逐步提高学生的图形编程能力。

源课程实验将提供配套代码的下载链接。

https://github.com/wanlin405/Computer-Graphics

为了使对计算机图形学感兴趣的同学们拥有更好的学习体验,本次我们的计算机图形学课程将添加了光栅渲染器和PBR渲染器的演示。

授课目标

1、让学生学习计算机图形学理论基础知识;

2、让学生了解基于GPU的可编程渲染流水线架构;

3、让学生基于较新的底层图形编程接口完成某3D图形项目开发,提高实践能力;

4、让大家感觉渲染影片、开发游戏引擎、实现虚拟现实应用、进行科学计算可视化并非遥不可及。

成绩要求

学习方法及要求:

1.课前预习线上视频等资料

2.课堂讲解重难点,讨论答疑和练习

3.课后完成线上作业

4. 期末提交课程报告及项目(文档,可执行代码和源码)


课程大纲
预备知识

1、数学知识:基本几何,线性代数为主,其次微积分和概率统计

2、编程基础:程序设计基础,数据结构和算法设计


参考资料

1.交互式计算机图形学(第八版) (英文版)(美)爱德华 安杰尔,戴夫 斯赖纳 著。-北京:电子工业出版社,2020.8 ,ISBN:978-7-121-39398-3(注:第七版有中文翻译版)

2. Fundamentals of Computer Graphics(5th Edition);   Steve Marschner , Peter Shirley.  2015(注:第二版有中文翻译版)

3. GAMES101: 现代计算机图形学入门https://sites.cs.ucsb.edu/~lingqi/teaching/games101.html

4. Computer Graphics with openGL(fourth version) , Donald Hearn M.Pauline Baker , 2014(有中文翻译版,蔡士杰等译,电子工业出版社)

5. Computer Graphics: Principles and Practice(Third Edition), Join F. Hughes.2014(有中文翻译版,彭群生等译,北京机械工业出版社)

6. Real-Time Rendering (4th Edition); Tomas Akenine-Mo¨ller , Eric Haines , Naty Hoffman .2018









常见问题

1.课程期末是考试还是考察?
回答:是考察形式,提交课程报告和项目代码。

2.学习课程的先修知识有哪些?

回答:至少有线性代数基础,有编程基础,修学过数据结构和算法设计。