本文是 Games101-现代计算机图形学入门 第三第四节课的笔记,相关视频在下方。

本文同时参考了《Unity Shader 入门精要》的第四章,作者公开了第四章的 PDF,可以在下面下载到。

candycat1992/Unity_Shaders_Book

闫老师的推导十分简洁易懂,我也尽量把过程补充到文章中,读者看了我相信肯定也能跟着思路把变换公式推导出来。

在读本文的过程中,也推荐参考上面提到的视频和 pdf 互相参考,本文是视频中推导的详细笔记,冯乐乐的 pdf 中虽然没有投影变换的推导,但是在很多地方都把理论讲的十分清晰,例如必要的数学基础和各种图形学概念的讲解。

线性变换

$$ \begin{array}{l}x^{\prime}=a x+b y \\ y^{\prime}=c x+d y\end{array} $$

如果我们可以把变换写成这样一种形式,矩阵乘以输入坐标等于输出坐标,这样可以叫做线性变换。

$$ \left[\begin{array}{l}x^{\prime} \\ y^{\prime}\end{array}\right]=\left[\begin{array}{ll}a & b \\ c & d\end{array}\right]\left[\begin{array}{l}x \\ y\end{array}\right] $$

$$ \mathbf{x}^{\prime}=\mathbf{M} \mathbf{x} $$

Scale Matrix

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7980791e-d4d5-459e-92a7-dc873238b93d/Untitled.png

$$ \begin{array}{l}x^{\prime}=s x \\ y^{\prime}=s y\end{array} $$

其变换矩阵: