都知道要渲染出一个物体,需要经历空间变换,模型坐标(通常由美术决定)----->世界坐标----->观察空间(相机位置决定)------------>裁剪空间(相机类型和参数决定)------->投影
unity提供了一系列的矩阵来帮助用户进行坐标空间变换,这里列个表记录下:
1:模型空间 2:世界空间 3:观察空间 4:裁剪空间
UNITY_MATRIX_MVP:将坐标或者方向从1到4
UNITY_MATRIX_MV:将坐标或者方向从1到3
UNITY_MATRIX_VP:将坐标或者方向从2到4
UNITY_MATRIX_V:将坐标或者方向从2到3
UNITY_MATRIX_P:将坐标或者方向从3到4
unity_ObjectToWorld:将顶点或者方向从1到2
unity_WorldToObject:unity_ObjectToWorld的逆矩阵,用于将顶点方向从2到1
重点讲下
UNITY_MATRIX_IT_MV:专门用于将法线从模型空间变换到观察空间,为UNITY_MATRIX_MV的逆转置矩阵,如果UNITY_MATRIX_MV为正交矩阵(意味着只有旋转操作),那么UNITY_MATRIX_MV就等于UNITY_MATRIX_IT_MV,如果有统一缩放操作,UNITY_MATRIX_IT_MV=(1/k)*UNITY_MATRIX_MV ,k为缩放系数((为什么不