第一讲:
计算机图形学中的三大基础内容
建模、动画、绘制
第二讲:
什么是图形应用系统?它们有哪些共同构成?
- 输入设备:接收用户输入
- 输出设备:呈现内容
- 计算/处理设备:接收输入并计算以输出
图形学中的计算/处理设备主要有?
CPU、GPU
图形平台的两类模式是?各自特点?
立即模式
OpenGL, Direct3D等早期固定管线
场景数据由应用提供和维护
独立于图形硬件的接口
高性能
保留模式
- WPF
- OpenGL等现代基于着色器(Shader)的可编程管线
- 更高层次的抽象
- 场景数据维护
- 易于复杂设计实现
- 性能损失
OpenGL 是什么?它有哪些特点?
OpenGL是一个专业的、功能强大的3D图形接口。通过使用OpenGL,用户可以方便、高效地绘制出多种3D图形视觉效果,如光照、纹理、半透明、阴影和材质等。其特点有:
- 工业标准
- 跨平台性
- 易用性
- 出色的编程特性
- 详细的文档。
什么是图形管线?
相互连接的一系列数据处理单元,前一单元的输出将作为后 一单元的输入
. OpenGL 固定管线有哪些特点?
管线中的功能模块可以通过参数进行配置,各功能模块中的算法固定
OpenGL 固定管线程序结构?
- 初始化管线
- 指定显示窗口/视图(大小、位置)
- 设置照相机
- 设置光源
- 加载模型数据(几何数据、纹理数据…)
- 设置事件响应函数
- 开始事件循环
OpenGL 基本绘制图元有哪些?
点、线、三角形、多边形
第三讲:
向量在图形学中有哪些主要应用?
表示方向、偏移、空间位置
内积(点积) $x·y = x{1}y{1}+x{2}y{2}+x{3}y{3}$(代数定义),$x·y = ||x|| ||y|| cos(a)$(几何定义),结果为标量
叉积,结果为新向量
二维变换:平移、旋转、缩放矩阵
二维形状的三角化
第四讲:
了解人视觉系统的基本构成
- 眼睛: 信号接收
- 视神经:信号传递
- 视觉皮层:信号处理
颜色感知基本过程
- 入射光光谱
- 眼睛接收
- 视网膜/视神经计算三色响应值
- 大脑感知颜色
RGB 颜色模型:定义及其特点
通过组合红、绿、蓝三元色得到不同颜色,在显示器、电视机以及相机等设备中广泛使用。所能表示的颜色有一定范围,不适合描述主观感知。
了解颜色空间的基本定义及其特点
定义一个X, Y, Z坐标系,每一颜色对应三维空间内的一个 点,该三维空间称为颜色空间。
CIE-XYZ颜色空间: 使用“虚拟/想象”的三原色,无法生产对应的实际光源以再现所有可见光,对图像的编码和计算将变得低效且不实用。
二维图像表示
掌握二维图像的基本操作:线性滤波的定义、计算方法及其应用范围
计算函数是对像素的加权和
第五讲:
掌握纹理映射的基本概念
- 纹理映射只是改变表面外观而不改变其几何
- 纹理映射使用图像建模表面外观
纹理图有哪几种类型?
- 二维图像(外部图像)
- 过程式纹理(代码生成)
纹理映射中的两大关键问题是?
- 纹理坐标函数的设计
- 反走样
了解纹理坐标函数的定义及其功能
- 保障高质量纹理映射效果的关键
- 对于一些表面,如平面或参数曲面,容易定义
- 对于复杂表面,通常并不容易得到,需要仔细设计
纹理空间
一般为包含纹理图像的矩形区域, 通常表示为单位正方形
纹理坐标有哪几种计算方式?
- 几何计算方式(表面空间点)
- 顶点插值方式(三角形网格,顶点插值)
什么是走样问题?纹理映射中的走样问题主要有那两类?
- 图像空间中的一个像素对应纹理空间中的多个像素
- 图像空间中的多个像素对应纹理空间中的一个像素
Mipmap
OpenGL中纹理映射主要步骤
读取纹理图像 • 申请纹理资源 • 绑定纹理资源 • 传入纹理图像 • 设置纹理参数 • 指定纹理坐标 • 设置纹理环境
第六讲:
掌握一次、二次、三次 Bezier 曲线的构造方法及其数学特性
了解如何在 OpenGL 中绘制 Bezier 曲线
第七讲:
了解 OpenGL 中绘制 B 样条曲线的过程
13:节点数
knots:节点数组
3:stride大小,跨越几个点
controlPoints:控制顶点数组
4:B-Spline阶数
第八讲:
掌握三维模型变换:旋转、平移以及缩放的矩阵形式及其推导过程
视点变换函数
gluLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ,upX, upY, upZ)
第一组
eyex, eyey, eyez
相机在世界坐标的位置
第二组centerx, centery, centerz
相机镜头对准的物体在世界坐标的位置
第三组upx, upy, upz
相机向上的方向在世界坐标中的方向
你把相机想象成为你自己的脑袋:
第一组数据就是脑袋的位置
第二组数据就是眼睛看的物体的位置
第三组就是头顶朝向的方向(因为你可以歪着头看同一个物体)。三维投影变换
视口变换:
第九讲:
略
第十讲:
Phong光照模型
OpenGL中的光照计算
漫反射
第十一讲:
光线跟踪算法
辐射度算法
全局光照明: