GAMES101 lecture1-4 笔记 基础

课程介绍

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)
常用作用判断两个向量是否接近判断任意一点是否在三角形外

在这里插入图片描述
还有值得注意的一点是:正交矩阵的逆矩阵等于其转置矩阵

Transformation

定义相关(2D)

  • Scale 规模大小
    在这里插入图片描述

  • Rotation 旋转
    在这里插入图片描述

  • Shear
    在这里插入图片描述

  • Homogenous 齐次坐标
    在这里插入图片描述
    齐次坐标有一个性质:加了一维(1)之后所有数同乘同除一个常数代表的空间中的点是不变的,比如(1,0,0,1)和(2,0,0,2)是一样的。
    注意仿射方程中是先变形再位移

3D Rotation

在这里插入图片描述
绕y轴转有一些不同,是因为不能通过x轴叉乘z轴得到y轴,要反过来。
也经常这样表示:
在这里插入图片描述
如果是绕任一直线旋转:
在这里插入图片描述
推导没太看懂

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到当前角度的旋转,再利用旋转矩阵是正交矩阵因而逆矩阵等于转置矩阵这一特点简单的获得旋转的矩阵。
    在这里插入图片描述

Projection Transformation

分为Orthographics projection和Perspective projection

  • Orthographics projection
    无近大远小,处理上就是移到中心位置再去掉z轴/z值,使得物体(object)投影在plane上 在这里插入图片描述
  • 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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值