UnityShader中的数学(矩阵)

PS:本文章摘取自《UnityShader入门精要》一书。

对于UnityShader中的数学,矢量,标量什么的在之前的文章中已经有过介绍这里就不在叙述,这里重点的说一下矩阵,矩阵是什么东西,什么时候要用到矩阵,矩阵的存在能帮我们解决什么问题,下面就解释这些:


Shader中使用的矩阵有平移矩阵,旋转举证,缩放矩阵,其中平移矩阵和旋转矩阵比较好理解简单一点,从名字中就能看出每个矩阵的功能,使用来执行平移,旋转和缩放的,还有在进行坐标的转换时都会用到矩阵,想了解矩阵的可以直接百度搜索,这里主要介绍在UnityShader中是怎么用矩阵来实现我们想要的效果的,对于UnityShader 中的矩阵使用没有了底层的东西,Unity全都封装好了供给我们使用,但是还是建议大家去看看矩阵的底层实现,因为我这里对矩阵只能说是自己会,但是理解还是不是很深,所以就不写出来了,下面写出UnityShader中使用矩阵的方法:

UNITY_MATRIX_MVP       把模型空间坐标转换为裁剪空间坐标

UNITY_MATRIX_MV       把模型空间坐标转换为观察空间坐标

UNITY_MATRIX_V       把世界空间坐标转换为观察空间坐标

UNITY_MATRIX_P       把观察空间坐标转换为裁剪空间坐标

UNITY_MATRIX_VP       把世界空间坐标转换为裁剪空间坐标

UNITY_MATRIX_T_MV       UNITY_MATRIX_MVP的转置矩阵

UNITY_MATRIX_IT_MV       把法线从模型空间坐标转换到观察空间坐标 UNITY_MATRIX_MVP的逆转置矩阵,逆矩阵

_Object2World       模型矩阵,把模型空间坐标转换到世界空间坐标

_World2Object       _Object2World的逆矩阵,把世界空间坐标转换到模型空间坐标


以上的东西很可能看起来有点蒙,先记住,在之后的文章中会一点一点的用到,上面写出的就是UnityShader中使用矩阵进行坐标空间的转换,为了方便之后的计算,所有的坐标都必须保持在同一坐标空间先进行,所以上面的东西很重要,在之后的脚本中会经常使用。 

猜你喜欢

转载自blog.csdn.net/qq_38186269/article/details/82692385