GAMES101 lecture1-4 笔记 基础

GAMES101 lecture1-4 笔记 基础

  • 课程介绍
  • 线代基础
    • 向量
  • Transformation
    • 定义相关(2D)
    • 3D Rotation
    • View Transformation
    • Projection Transformation

课程介绍

101课程分四个部分:

  • Rasterirzation 光栅化
  • Geometry 几何
  • Ray Tracing 光线追踪
  • Animation/Simulation 动态模拟(动画)

其中光栅化部分介绍了许多前置知识,所以占用篇幅较大。

线代基础

向量

基础的定义不多说,主要集中在点乘和叉乘,值得注意的有:

以向量a,b为例 点乘 Dot 叉乘 Cross
结果类型 数值 向量
数值大小 ∣ a ⃗ ∣ ∣ b ⃗ ∣ c o s α \mid\vec{a}\mid\mid\vec{b}\mid cosα a b cosα ∣ a ⃗ ∣ ∣ b ⃗ ∣ s i n α \mid\vec{a}\mid\mid\vec{b}\mid sinα a b sinα
计算公式 x1x2+y1y2+z1z2 (y1z2-y2z1, x1z2-x2z1, x1y2-x2y1)
几何意义 投影 求垂线(x,y求z)
常用作用 判断两个向量是否接近 判断任意一点是否在三角形外

GAMES101 lecture1-4 笔记 基础_第1张图片
还有值得注意的一点是:正交矩阵的逆矩阵等于其转置矩阵

Transformation

定义相关(2D)

  • Scale 规模大小
    GAMES101 lecture1-4 笔记 基础_第2张图片

  • Rotation 旋转
    GAMES101 lecture1-4 笔记 基础_第3张图片

  • Shear
    GAMES101 lecture1-4 笔记 基础_第4张图片

  • Homogenous 齐次坐标
    GAMES101 lecture1-4 笔记 基础_第5张图片
    齐次坐标有一个性质:加了一维(1)之后所有数同乘同除一个常数代表的空间中的点是不变的,比如(1,0,0,1)和(2,0,0,2)是一样的。
    注意仿射方程中是先变形再位移

3D Rotation

GAMES101 lecture1-4 笔记 基础_第6张图片
绕y轴转有一些不同,是因为不能通过x轴叉乘z轴得到y轴,要反过来。
也经常这样表示:
GAMES101 lecture1-4 笔记 基础_第7张图片
如果是绕任一直线旋转:
GAMES101 lecture1-4 笔记 基础_第8张图片
推导没太看懂

View Transformation

MVP:

  • Find a good place and arrange people (model transformation)
  • Find a good “angle” to put the camera (view transformation)
  • Cheese! (projection transformation)

摄像机由三个东西定义:

  • 位置
  • 朝向(look-at directio)
  • 向上的方向(确定是正的还是歪的)

分两步:

  • 把相机移到正确的位置
  • 旋转使得朝向和向上的方向正确
    直接计算如何将当前观察方向g和上方向t转成-z和y有点难,所以先反求从x,y,z到当前角度的旋转,再利用旋转矩阵是正交矩阵因而逆矩阵等于转置矩阵这一特点简单的获得旋转的矩阵。
    GAMES101 lecture1-4 笔记 基础_第9张图片

Projection Transformation

分为Orthographics projection和Perspective projection

  • Orthographics projection
    无近大远小,处理上就是移到中心位置再去掉z轴/z值,使得物体(object)投影在plane上 GAMES101 lecture1-4 笔记 基础_第10张图片
  • Perspective projection
    近大远小。
    转换时分为两步:
    1、压缩成cuboid,转成orthographics的样子
    2、进行orthographics projection
    前者先利用相似三角形确定转换矩阵的前两行,然后利用近表面任一点不变和远平面上z轴上的点不变得到第三行,最终转换矩阵为:
    { n 0 0 0 0 n 0 0 0 0 n + f 0 0 0 0 − n f } (2) \left\{ \begin{matrix} n & 0 & 0 & 0 \\ 0 & n & 0 & 0 \\ 0 & 0 & n+f & 0 \\ 0 & 0 & 0 & -nf \\ \end{matrix} \right\} \tag{2} n0000n0000n+f0000nf(2)
    其中相机到n是近平面的距离,f是到远平面的距离
    具体处理上可能给出n,f和fovY(下表面到上表面的角度),然后利用tan可得height(t,b),然后利用aspect系数(宽/高)可得宽,从而获得l,r。

你可能感兴趣的:(GAMES101,笔记,图形学)