第六章:空间变化
本章需要掌握的四个知识点是Unityshader的四个基本坐标系。
1 模型空间
1.1 如何理解模型空间?
模型空间,你可以认为是你自己,针对模型空间不存在东南西北,只有上下左右。希望你能理解这句话。
他是独立的,是无法呗观测到的。但是你能想象得到的,计算机也能计算得到的。
我们可以理解为这是一个结节空间,一个不被 探测到的新世界。
1.2 模型空间坐标系怎么确定?
美工在制作模型的时候会赋给他他应有的上下左右。这时候你可能会问,明明是不可观测的,为什么美工能制作它呢?
这是因为...美工也是通过一种工具(比如3DMX,maya,c4d)等等,将这个模型从ram中取出,然后变换到世界空间,在变换到观察空间,然后通过这些工具的投影变换将它变换到裁剪空间才能看得到。然后对它进行修修改改比如用zbrush或者大佬捏皮去控制它的顶点数据和像素数据,从而能够制作模型。所以模型空间依旧不可视。
2 世界空间
模型空间仿佛是一个无法探测的黑洞。因为我们不在一个位面。我们需要通过某种方式将它转移到我们的世界。这个过程叫做世界变换。具体的手段叫做“矩阵变化”如果你有矩阵基础,就很容易理解,矩阵变换可以将某个图元从一个坐标系变换到另外一个坐标系。
2.1Unity里面将模型空间的顶点变换到世界空间过程是:
世界空间的顶点坐标 = 平移*旋转*缩放*模型空间的顶点坐标
3 观察空间
世界空间是和你处于一个次元了。但是就像宇宙无限大,这个世界空间也是无限大。所以我们需要一个参考点,这个参考点我们称为摄像机。它就是你的眼睛。它可以捕捉到模型的样貌,将这个模型相对于摄像机的这个坐标就是模型在观察空间的坐标。
它依旧存在于x,y,z,它是3维度的。值得注意的是,无论是模型空间,世界空间还是观察空间,模型依旧是只能被我们脑补,而不会被我们所看到。
因为我们所看到的知识电脑屏幕。电脑屏幕是3D的吗?不,它是2D的。
也就是它只有x,y没有z轴,没有深度。
你也看不到深度。
一个3转2的降维操作,被一个叫做“裁剪”的过程描述。这就是我们要讲的裁剪空间
4 裁剪空间
怎么裁剪?一种叫做投影的方式被使用在这个过程里面。就像你用手电筒照射一个人在墙上投影出一个2D的人影。
这个过程就叫做投影。具体的原理会在后面补充,在这一章里面,我们只讲,我们究竟是怎么一步一步的在电脑屏幕上看到模型的。