图形编程技术

已有 1043人学习

开始学习

课程概述

我为什么要学习这门课?

你想“看透”计算机三维世界背后的秘密吗?你想成为一个虚拟世界的缔造者吗?你想征服看似深奥的图形编程技术吗?你想迈步进入三维技术的殿堂,在游戏、虚拟现实、三维仿真、电影特效等行业大展宏图吗?那么,从这门课程开始吧。

这门课的主题是什么?

这门课程将深入浅出地告诉你一个三维世界是如何一步步地变换、处理、并最终显示在我们的计算机屏幕上的。课程将以图形界的工业标准---OpenGL图形库为学习对象,以图形流水线为主线来系统讲解最重要的图形概念、原理、算法和OpenGL编程技能。

学习这门课可以获得什么?

你的脑海中将有一条清晰的图形流水线,你对关键的图形概念将有系统理解,并具有基本的图形开发技能。这将使你跨过图形领域中最艰难的一段门槛,你将可以充满信心地入行(入三维图形之行)了。

本课程的学习可为你今后进一步学习或从事计算机图形学、计算机辅助设计、虚拟现实、游戏设计与开发等相关行业奠定良好的技术基础并培养动手实践能力。

这门课有什么特色和亮点?

图形编程学习的最大难度在于我们要学习的不仅仅是一个个图形库函数的使用方法,而是要对整条图形流水线有深刻的理解。只有理解了图形流水线,才可能真正掌握图形编程的要诀。因此,在教学内容组织上,本门课程将以图形流水线为主线来讲解OpenGL编程技术,其内容包括:变换、光照、片元处理、缓冲区、纹理以及shader编程等。

本课程教学的最大特色在于,不仅仅是讲述具体的函数使用技巧,而是要以一个个图形概念为中心进行学习:首先理解概念,之后讲解代码;然后,再透过代码,返回去消化概念。由此将理论算法与代码进行紧密对接。课程中包含了很多演示动画和例子程序,将以最直观、易懂的方式让同学明白图形显示的相关概念和原理。


授课目标

为学生建立起完整的图形流水线构架,并围绕图形流水线,讲解大量的基础图形概念、原理及算法。同时,所有这些概念的讲授,都将结合OpenGL图形开发库的使用来进行,使学生不仅理解原理,还能掌握实际编程技能。由原理来引出编程,同时又通过编程来加深对原理的理解。

第2章 OpenGL编程简介
2.1OpenGL的功能及其两种学习路线
2.2OpenGL相关的库
2.3OpenGL基本语法与学习资源
2.4 OpenGLStarter程序问题解答(1)
2.4 OpenGLStarter程序问题解答(2)
引子---内容提要与课程学习要求
内容提要与课程学习要求
第1章 计算机图形学与图形流水线
1.1计算机图形学的概念及主要研究内容
1.2图形与图像的差别
1.3图形流水线总览
1.4图形开发库
1.5何为GPU ?
1.6GPU中图形流水线的发展及shader编程
1.7GPU的应用及未来
1.8 作业1-freeglut配置
第3章 变换的秘密
3.1变换的四个步骤
3.2(1)三种几何变换
3.2(2)平移、旋转、缩放----都是矩阵
3.2(3)用堆栈来管理矩阵
3.2(4)模型变换与视点变换
3.2(5)全局变换与局部变换
3.3投影变换
3.4为什么图像变形了?----视口变换
3.5三维几何空间中的坐标系与单位
3.6本章要点总结及思考
第4章 光照
4.1(1) 光照明模型及三种基本光照成分
4.1(2) Phong光照明模型
4.1(3) Blinn光照明模型
4.1(4) Phong等简单光照明模型的局限性
4.2(1) OpenGL中的光照参数设置
4.2(2) 几种光照模式
4.2(3) 两个问题
4.3光照计算发生在图形流水线的哪个阶段?
4.4(1)常数明暗处理与Gouraud 明暗处理
4.4(2)Phong明暗处理
4.5图形流水线三个阶段的进一步理解
第5章 帧缓冲区与片元运算
5.1何为“帧”缓冲区(Frame buffer)?
5.2颜色缓冲区
5.3深度缓冲区与Z-buffer消隐算法
5.4OpenGL中关于深度缓冲的函数
5.5模板缓冲区
5.6(1)四种片元测试
5.6(2)混合(Blending)
5.6(3)多边形偏移功能
5.6(4)雾效与片元运算小结
第6章 纹理
6.1 纹理的概念
6.2凹凸纹理映射(Bump mapping)
6.3位移纹理映射(Displacement mapping)
6.4纹理映射关系的确定
6.5纹理映射在图形流水线中的实现
6.6在OpenGL中实现纹理映射的四个步骤
6.7如何获取纹理数据
6.8纹理过滤
6.9MipMap方法
6.10 自动生成纹理坐标
6.11环境映射-本章小结
第7章 顶点数组
7.1OpenGL中绘制图元的基本方法及其弱点
7.2顶点数组(Vertex array)
第8章 Vertex shader与Fragment shader
8.1VS和FS可以做什么?
8.2OpenGL中使用VS、FS的步骤
8.3VS与FS间的数据流
8.4VS/FS的输入与输出变量
8.5GLSL的基本语法
8.6用VS实现逐顶点的光照计算(Gouraud shading)
8.7用FS实现逐像素的光照计算(Phong shading)、卡通风格的光照
8.8在VS、FS中使用纹理
第9章 回顾、总结与补充
回顾、总结与补充
教学团队
杨刚

杨刚

副教授