Shader入门精要(四) 数学基础

最常使用到的就是矢量和矩阵(数学的分支之一——线性代数)

笛卡尔坐标系

大部分的计算位置、距离和角度等变量都是在笛卡尔坐标系下进行的。

二维笛卡尔坐标系

  • 一个特殊的位置,原点,它是整个坐标系的中心
  • 两条过原点相互垂直的矢量,x轴和y轴。

image-20211203134455788

不同的渲染方式,坐标系不同

image-20211203134650147

三维笛卡尔坐标系

  • 三个坐标轴相互垂直,长度为1,这样的基矢量被称为标准正交基
  • 这三个坐标轴被称为是基矢量

image-20211203134755628

左手坐标系和右手坐标系

在二维笛卡尔坐标系中,我们可以通过旋转将任何的坐标系重合,也就是说所有的二维笛卡尔坐标系都是等价的。

但对于三维坐标系,有时不能靠这种旋转来使2个不同朝向的坐标系重合。

左手坐标系

image-20211203135647988

右手坐标系

image-20211203135727456

Unity的坐标系

  • 在模型空间和世界空间中,使用左手坐标系
  • 观察空间,使用右手坐标系,z轴坐标的减少意味着场景深度的增加

image-20211203140041620

练习

  1. 右手坐标系

点和矢量

矩阵

矩阵变换

坐标空间

法线变换