[Unity Shader] [图形渲染]Shader数学基础18-内置变量
在Unity中,Shader(着色器)是进行图形渲染的核心组件之一。Unity为Shader提供了大量的内置变量,这些变量不仅帮助我们方便地进行光照计算、变换矩阵应用等操作,还可以直接获取摄像机的各种参数信息。理解这些内置变量的作用与使用方法,对于优化和调试Shader代码至关重要。
1. Unity的内置矩阵
1.1 变换矩阵概述
Unity提供了多个内置矩阵,用于执行各种几何变换(如模型变换、视图变换、投影变换等)。这些变换矩阵通常是float4x4
类型的矩阵。常见的内置变换矩阵有:
- UNITY_MATRIX_MVP:从模型空间到裁剪空间的变换矩阵。它是模型矩阵、视图矩阵和投影矩阵的乘积。
- UNITY_MATRIX_M:模型空间到世界空间的变换矩阵。
- UNITY_MATRIX_V:从世界空间到视图空间的变换矩阵。
- UNITY_MATRIX_P:投影空间的变换矩阵。
这些矩阵的作用是将模型中的顶点、法线等信息从一个空间转换到另一个空间。它们通常在顶点着色器中用于对顶点进行变换。
1.2 UNITY_MATRIX_MV
和正交矩阵
UNITY_MATRIX_MV
是一个组合矩阵