ShaderLab 内置值

Unity 为着色器提供 少量内置值:当前对象变换矩阵、时间等类似值。

使用 ShaderLab 中的内置值就像使用其他任何属性一样,唯一的区别在于您不必在某处进行声明 - 它们都是“内置的”。

可编程着色器中使用它们需要包含UnityCG.cginc文档

变换

float4x4 UNITY_MATRIX_MVP
当前模型*视图*投影矩阵 (model*view*projection matrix)
float4x4 UNITY_MATRIX_MV
当前模型*视图矩阵 (model*view matrix)
float4x4 UNITY_MATRIX_V
当前视图矩阵 (view matrix)。
float4x4 UNITY_MATRIX_P
当前投影矩阵 (projection matrix)
float4x4 UNITY_MATRIX_VP
当前视图*投影矩阵 (view*projection matrix)
float4x4 UNITY_MATRIX_T_MV
模型*视图矩阵 (model*view matrix) 的转置
float4x4 UNITY_MATRIX_IT_MV
模型*视图矩阵 (model*view matrix) 的逆转置
float4x4 UNITY_MATRIX_TEXTURE0UNITY_MATRIX_TEXTURE3
纹理变换矩阵
float4x4 _Object2World
当前模型矩阵
float4x4 _World2Object
当前世界坐标矩阵的逆转置
float3 _WorldSpaceCameraPos
相机的世界坐标空间位置
float4 unity_Scale
xyz 组件未使用;.w 包含等比缩放对象的缩放。

光照

在普通的 ShaderLab 中,通过结尾追加零访问以下属性:例如光源的模型*光颜色是 _ModelLightColor0。在 Cg 着色器中,它们显示为单元素阵列,所以 Cg 中相同的是 _ModelLightColor[0]

名称类型
_ModelLightColorfloat4材质的主要*光色
_SpecularLightColorfloat4材质的高光*光色
_ObjectSpaceLightPosfloat4光源在对象空间中的位置。w 组件针对方向灯是 0,针对其他灯是 1
_Light2Worldfloat4x4光到世界坐标 (World) 空间矩阵
_World2Lightfloat4x4世界坐标到光 (Light) 空间矩阵
_Object2Lightfloat4x4对象到光 (Light) 空间矩阵

种类

Page last updated: 2013-06-25