Unity矩阵说明

      在游戏开发中,有些高级话题往往需要和矩阵扯上关系,例如阴影,迷雾,高级shader,发射等。这里简单说明下:

      1.矩阵虽然可能确实非常复杂,但对于学习应用的人来说,大可以把它理解成和加减乘除一样的一种运算,只不过它专门用于坐标转化。例如4*4矩阵,可以表达任何

三维空间中的旋转平移缩放。而Uniyt中的四元数,其实也是类似的功能,只不过简化了运算。

     Unity矩阵说明_第1张图片

如果觉得看不懂,那就不要管了。反正就是那么回事吧。

        2.然后理解下空间的概念。首先是世界空间,这个很简单,就是你所在的这个大世界的空间,有一个坐标原点。然后就是视图空间,或者叫观察空间,就是以某一个人或者视点作为原点的空间。比如摄像头空间,其实应该就是视图空间。那么这个用来干嘛的呢?假设你是一个太阳,那么你照射物体,会有阴影,那么这个时候,以太阳作为原点的空间,进行各种计算是不是会方便些呢?答案是肯定的。所以你会发现很多时候,都会计算某一个视点的视图空间。

        视图空间的推导过程俺就不多说了,有兴趣的自己去看,http://www.cnblogs.com/graphics/archive/2012/07/12/2476413.html,总之就是你可以计算出一个矩阵,将世界坐标转成视图空间坐标。摄像头的世界坐标可以是各种各样,但视图空间里它就是原点。

        转化过程的物理意义就是:将摄像头放到原点,同时将转向调整成和世界坐标的朝向一致。

        3.有了这个矩阵后,我们就可以将世界坐标变成视图坐标了,还没结束呢,因为我们平时看的是在屏幕上啊,实际上是一个2d坐标系,那么怎么把3d坐标变成2d呢,这个就相当于投影,,我们需要来看一个新概念,叫投影矩阵。它的作用就是将3d

你可能感兴趣的:(Unity矩阵说明)