GAMES101学习笔记(一):Overview 计算机图形学概述
文章目录
- 关于计算机图形学
- 本课程讨论的话题
- 光栅化
- 曲线和网格
- 光线追踪
- 动画/仿真
- 课程大纲
- CG vs CV
- 图形学的依赖学科
- 线性代数回顾
课程资源:GAMES101-现代计算机图形学入门-闫令琪
Lec1 ~ Lec2 学习笔记:
Lecture 01 :Overview of Computer Graphics 计算机图形学概述
Lecture 02 :Review of Linear Algebra 线性代数回顾
关于计算机图形学
1. 什么是计算机图形学?
What is Computer Graphics?
The use of computerts to synthesize and manipulate visual information.
计算机图形学即使用计算机合成和操作视觉信息
2. 为什么要学计算机图形学?
Why study Computer Graphics?
- 应用 Application
计算机图形学在生活中的广泛应用- Video Games 电子游戏
- Movies 电影
- Animations 动画
- Design 设计
- Visualization 可视化
- Virtual Reality 虚拟现实
- Augmented Reality 增强现实
- Digital Illustration 数字插画
- Simulation 模拟
- Graphical User Interfaces 图形用户接口GUI
- Typography 字体
- 基础学习的困难 Fundanmental Intellectual Challenges
计算机图形学增强我们对现实世界的认识和理解,推动发展新型的计算和显示方法。- Creates and interacts with realistic virtual world.
- requires understanding of all aspects of physical world.
- new computing methods, display, technologies.
- 技术挑战Technical Challenges
通过计算机图形学解决技术挑战。- Math of (perspective) projections, curves, surfaces.
- Physics of lighting and shading. 物理光照着色
- Representing operating shapes in 3D. 展示/操作3D物体
- Animation / simulation 动画和仿真
3D graphics software programming and hardware(图形学API)
本课程讨论的话题
GAMES101着重于图形学原理,不涉及具体的调用API编程。 OpenGL学习笔记
光栅化
曲线和网格
光线追踪
动画/仿真
课程大纲
Lecture 01 :Overview of Computer Graphics ——计算机图形学概述
Lecture 02 :Review of Linear Algebra ——线性代数回顾
Lecture 03 :Transformation ——变换(二维与三维)
Lecture 04 :Transformation ——变换(模型、视图、投影)
Lecture 05 :Rasterization 1 (Triangles) ——光栅化(三角形的离散化)
Lecture 06 :Rasterization 2 (Antialiasing and Z-Buffering) ——光栅化(抗锯齿和深度测试)
Lecture 07 :Shading 1 (Illumination, Shading and Graphics Pipeline) ——着色(光照与基本着色模型)
Lecture 08 :Shading 2 (Shading, Pipeline and Texture Mapping) ——着色(着色频率、图形管线、纹理映射)
Lecture 09 :Shading 3 (Texture Mapping Cont.) ——着色(插值、高级纹理映射)
Lecture 10 :Geometry 1 (Introduction) ——几何(基本表示方法)
Lecture 11 :Geometry 2 (Curves and Surfaces) ——几何(曲线与曲面)
Lecture 12 :Geometry 3 ——几何(网格处理)、阴影图
Lecture 13 :Ray Tracing 1 ——光线追踪(基本原理)
Lecture 14 :Ray Tracing 2 ——光线追踪(加速结构)
Lecture 15 :Ray Tracing 3 ——光线追踪(辐射度量学、渲染方程与全局光照)
Lecture 16 :Ray Tracing 4 ——光线追踪(蒙特卡洛积分与路径追踪)
Lecture 17 :Materials and Appearances ——材质与外观
Lecture 18 :Advanced Topics in Rendering ——高级光线传播与复杂外观建模
Lecture 19 :Cameras, Lenses and Light Fields ——相机与透镜
Lecture 20 :Color and Perception ——光场、颜色与感知
Lecture 21 :Animation ——动画与模拟(基本概念、质点弹簧系统、运动学)
Lecture 22 :Animation Cont. ——动画与模拟(求解常微分方程,刚体与流体)
CG vs CV
计算机图形学与计算机视觉
学科之间结合更加紧密,边界逐渐模糊
图形学的依赖学科
基础数学:线性代数,微积分,统计学
基础物理:光学,力学
其他:信号处理,数值分析
以及一点审美
线性代数回顾
课程参考: GAMES001: 图形学中的数学
视频参考: [3Blue1Brown]线性代数的本质
(图形学上默认以列向量表示,矩阵左乘)
- 向量的定义 Vectors
- 向量的标准化 Vector Normalization
- 向量求和 Vector Addition
- 向量坐标表示 Cartesian Coordinates 笛卡尔坐标
- 向量的点乘 Dot (scalar) Product 点积/数量积
Find angle between two vectors
用于得到两个向量夹角余弦,反余弦得到夹角。
Finding projection of one vector on another
用于找到一个向量在另一个向量上的投影。
在图形学中,用数量积判断前后/相同方向。
- 向量的叉乘 Cross (vector) Product 叉积/向量积
这节课都是右手坐标系,OpenGL是左手坐标系
图形学中,用向量积判定左右/内外。
判断左右——利用叉乘结果的正负
判断内外——P点一直在三条边的左边/右边
- 正交基和坐标系 Orthonormal bases and coordinate frames
通过向量运算将向量分解到正交坐标系中 - 矩阵相关知识 Matrix / Matrices
- 齐次坐标 homogenous coordinate