Games101学习笔记 Lecture04 Transformation Cont.

一、3D Transformations

用4×4的矩阵来表示三维变换在这里插入图片描述
计算的顺序和二维变换一样,先进行线性变换,再进行平移。

1. 缩放

在这里插入图片描述

2. 平移

在这里插入图片描述

3. 旋转(绕某个轴旋转)


绕X轴旋转时,X轴对应的行没有变化,Y轴和Z轴进行旋转
绕Y轴旋转的式子有所不一样的原因是,Y是通过Z叉乘X得到的,所以是反的

4. 绕任意轴旋转

通过简单轴旋转来进行复杂轴旋转
在这里插入图片描述

Rodrigues’ Rotation Formula

绕任意轴n(过原点),旋转α角度
在这里插入图片描述
如果是任意轴(起点不在原点),就先平移到过原点方向,再进行旋转
在这里插入图片描述
在这里插入图片描述

二、Viewing(观测) transformation

1. View(视图)/Camera transformation

① 什么是视图变换

MVP变换:

  • step1: model transformation
  • step2: view transformation
  • step3: projection transformation

② 如何做视图变换

  • Position
  • Look-at / gaze direction
  • Up direction
    在这里插入图片描述

③ 如何进行视图变换

  • 相机永远放在原点,永远看向-Z轴方向
    在这里插入图片描述
  • 将相机移动到原点位置,看向-Z轴方向
    在这里插入图片描述
    • 先做平移
      在这里插入图片描述

    • 再将g转到-Z轴方向,t转到Y轴方向,(g×t)转到X轴方向
      (先考虑逆变换会好算些,再逆过来就行)
      在这里插入图片描述
      why:因为旋转矩阵是正交矩阵,所以逆矩阵就是转置后的矩阵

在这里插入图片描述
物体跟相机一起移动,直到移动到原点(up at Y, look at -Z)

2. Projection(投影) transformation

在这里插入图片描述
在这里插入图片描述

① Orthographic(正交) projection

  • A simple way of understanding
    • 将相机放在原点,看向-Z轴,竖直方向Y轴;
    • 不考虑Z轴
    • 缩放并平移到[-1, 1]2矩形区域内
      在这里插入图片描述
  • In general
    • 将长方体平移、缩放为标准立方体
      在这里插入图片描述
    • 转换矩阵
      • 先平移到原点,再做缩放
        在这里插入图片描述

② Perspective(透视) projection

  • 最广泛的;近大远小;平行线不再平行,汇交到一个点

  • 数学知识:

    • (x, y, z, 1)和(kx, ky ,kz, k, k != 0) 表示同一个点(1, 0, 0)
  • 如何做正交投影

    • 先将棱台挤压成长方体
      • 近平面永远不变
      • 挤了之后Z轴不变
      • 中心点不变
      • 在这里插入图片描述
      • 通过相似三角形找到x,y,z的对应关系
      • 可以得到在这里插入图片描述
      • 在这里插入图片描述
      • 可以得到挤压物体的矩阵
      • 在这里插入图片描述
      • 在这里插入图片描述
      • 近平面和远平面的z值不会改变
      • 在这里插入图片描述
      • 第3行肯定为(0, 0, A, B)
      • 在这里插入图片描述
      • 在远平面上z值也不会改变
      • 在这里插入图片描述
      • 在这里插入图片描述
      • 得到最终的矩阵在这里插入图片描述
  • 再做一次正交投影

    • 在这里插入图片描述
  • 有时候会用角度范围 field-of-view (fovY) 和 宽高比 aspect ratio

在这里插入图片描述
如何将fovY和aspect转换到 l,r,b,t?
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值