US2S1L10——坐标空间的变换

重要知识回顾

  1. 渲染管线(流水线)的基本概念是将数据分阶段的变为屏幕图像的过程
  2. 渲染管线中的顶点阶段光栅化阶段会对数据进行处理
    其中最重要的一部分数据处理工作就是坐标转换、顶点变换等等
  3. 线性代数中的矩阵相关知识,主要就是帮助我们来完成变换的
    我们可以通过平移 旋转 缩放矩阵来完成对点或向量的变换

坐标空间

坐标空间是一个用于描述和定位物体位置的数学概念。
它一般由一个基础参照物(原点)和轴线(相互垂直的轴线)组成。

常见的坐标空间包括二维平面坐标空间和三维空间

在三维空间中,通常决定一个原点 (0,0,0)(0,0,0) 并使用三个坐标轴(通常是x轴、y轴和z轴)来描述点的位置。
例如,在三维坐标空间中,一个点可以通过其x、y和z坐标来确定其在空间中的位置。

关于Unity中坐标系的知识点,我们在Unity基础中的坐标系中已经学习过了

为什么有很多不同的坐标空间

我们在Unity基础中讲解的坐标系相关知识中提到了:

  • 世界坐标系
  • 物体坐标系
  • 屏幕坐标系

等等

这些就是各种不同的坐标空间,之所以存在这么多不同的坐标空间
主要是因为不同的问题需要不同的坐标系来描述和解决特定的空间问题,帮助我们更方便的完成需求

坐标空间的变换

在Shader开发中为了方便我们制作模型,使用模型,渲染模型,也存在很多不同的坐标空间
比如:模型空间、世界空间、观察空间、裁剪空间、屏幕空间
我们这里的坐标空间的变换主要是指
在渲染管线中的,我们需要将坐标数据,在这几种空间当中进行变换计算(利用矩阵相关知识)

举例:
在设计模型时,使用的是模型空间(所有的顶点、法线等等相关数据都是基于模型空间坐标系的)
当我们将模型导入到Unity后,最终能够被我们在屏幕上看到,这里面的就经历了我们看不到的坐标空间变换
模型空间 → 世界空间 → 观察空间 → 裁剪空间 → 屏幕空间

因此在这一阶段,我们主要学习的就是如何进行坐标空间的变换

image