计算机图形学
  • 计算机图形学
  • 光栅化
    • 光栅化流程
    • 采样
    • 走样
    • 抗走样
    • 空间变换
    • 简单的相机变换
    • 3D旋转与复数表示
    • 深度和透明度
  • 几何建模
    • 几何介绍
    • 网格和流形
  • 材质与光线
    • 几何查询
    • 几何查询加速
    • 着色与阴影
Powered by GitBook
On this page
  • 变换的种类
  • 变换的不变性
  • 旋转
  • 2D旋转
  • 3D旋转
  • 旋转矩阵的转置等于其逆矩阵
  • 反射
  • 缩放
  • 负缩放
  • 非均匀缩放(轴对齐的)
  • 非均匀缩放
  • 切变
  • 线性变换的分解
  • 插值变换
  • 平移
  • 齐次坐标
  • 点和向量
  • 齐次坐标中的透视投影
  • 屏幕变换
  • 场景图
  • 组合变换时顺序很重要
  1. 光栅化

空间变换

Previous抗走样Next简单的相机变换

Last updated 4 months ago

空间变换:任何为每个点分配新位置的函数。关注常见的基于线性映射 (linear maps) 的空间变换,如旋转 (rotation)、缩放 (scaling) 等

一个线性是映射的:

线性变换是廉价/高效的操作,通常很容易求解(线性系统)。线性变换的组合还是线性的,多个矩阵的乘积是一个矩阵,能够给出变换的统一表示。

变换的种类

变换的不变性

一个变换是由它保留的不变性决定的:

旋转

旋转由三个基本特性决定:保持原点固定、保持距离、保持方向

前两个性质已表明旋转是线性的。

2D旋转

3D旋转

沿着x3坐标轴旋转,对x1和x2应用相同的转换,保持x3不变。

旋转矩阵的转置等于其逆矩阵

旋转矩阵将标准基映射到另一个正交基。

RTR=I, 或者 RT=R−1R^{T} R=I \text {, 或者 } R^{T}=R^{-1}RTR=I, 或者 RT=R−1

反射

不是所有的正交矩阵均能描述一个旋转,比如上面的矩阵代表了一个沿着y轴的反射,未能保持方向。

缩放

缩放是线性变换。

负缩放

非均匀缩放(轴对齐的)

非均匀缩放

切变

线性变换的分解

一般来说,没有唯一的方法可以将给定的线性变换分解成基本变换的组合。然而,存在很多有用的分解:

  • 奇异值分解,适合信号处理

  • LU分解,适合求解线性系统

  • 极性分解,适合空间变换

极性分解将任何矩阵A分解为正交矩阵Q和对称半正定矩阵P:A = QP

插值变换

平移

齐次坐标

源于透视的相关研究,一种为直线指定坐标的自然方式。

图像上的点是不能知道它的具体位置的,只能知道它属于哪一条线。

点和向量

齐次坐标中的透视投影

屏幕变换

光栅化过程中需要的最后一个变换:从观察平面到像素坐标的变换。假设我们想将z=1平面上的正方形[0,1]x[0,1]内的所有点绘制成WxH像素的图像。

场景图

对于一些复杂的场景(比如多个立方体),场景图可以帮助我们管理不同的变换。加入我们想通过变换一个单位立方体来创造一个立方体生物,但是很难指定具体的变换,相反地,我们可以利用底层的变换来进一步构建上层的变换:

场景图在有向图中存储相对变换,每条边(加上根)存储一个线性变换。变换的组合应用于节点。

组合变换时顺序很重要

基于某一点做旋转:

逆时针旋转
看起来就像一个切变