1. 变换矩阵
1. UNITY_MATRIX_MVP
1. 描述:当前的模型观察投影矩阵
2. 对象:顶点/方向矢量
3. 功能:模型空间 → 裁剪空间
4. 注意:
2. UNITY_MATRIX_MV
1. 描述:当前的模型观察矩阵
2. 对象:顶点/方向矢量
3. 功能:模型空间 → 观察空间
4. 注意:此时尚未裁剪
3. UNITY_MATRIX_V
1. 描述:当前的观察矩阵
2. 对象:顶点/方向矢量
3. 功能:世界空间 → 观察空间
4. 注意:
4. UNITY_MATRIX_P
1. 描述:当前的投影矩阵
2. 对象:顶点/方向矢量
3. 功能:观察空间 → 裁剪空间
4. 注意:
5. UNITY_MATRIX_VP
1. 描述:当前的观察投影矩阵
2. 对象:顶点/方向矢量
3. 功能:世界空间 → 裁剪空间
4. 注意:
6. UNITY_MATRIX_T_MV
1. 描述:UNITY_MATRIX_MV的转置矩阵
2. 对象:
3. 功能:
4. 注意:
7. UNITY_MATRIX_IT_MV
1. 描述:UNITY_MATRIX_MV的逆转置矩阵,
2. 对象:法线
3. 功能:模型空间 → 观察空间
4. 注意:专用于将法线从模型空间变换到观察控件,也可用于得到UNITY_MATRIX_MV的逆矩阵
8. _Object2World
1. 描述:当前的模型矩阵
2. 对象:顶点/方向矢量
3. 功能:模型空间 → 世界空间
4. 注意:
9. _World2Object
1. 描述:_Object2World的逆矩阵
2. 对象:顶点/方向矢量
3. 功能:模型空间 → 世界空间
4. 注意:
2. 屏幕参数
1. _WorldSpaceCameraPos
1. 描述:该摄像机在世界空间中的位置
2. 对象:float3
3. 注意:
2. _ProjectionParams
1. 描述:x=1.0(或-1,0,如果正在使用一个反转的投影矩阵进行渲染),y=Near,z=Far,w=1.0+1.0/Far,其中 Near 和 Far 分别是近裁剪平面和远裁剪平面和摄像机的距离。
2. 对象:float4
3. 注意:
3. _ScreenParams
1. 描述:x=width, y=height,z=1.0+1.0/width, w=1.0+1.0/height,其中 width 和 height 分别是改摄像机的渲染目标(render target)的像素文本和高度
2. 对象:float4
3. 注意:
4. _ZBufferParams
1. 描述:x=1-Far/Near, y=Far/Near,z=x/Far, w=y/Far,该变量用于线性化Z缓存中的深度值
2. 对象:float4
3. 注意:
5. unity_OrthoParams
1. 描述:x=width, y=height,z没有定义,w=1.0(该摄像机是正交摄像机)或w= 0.0(该摄像机是透视摄像机),其中 width 和 height 是正交投影摄像机的宽度和高度
2. 对象:float4
3. 注意:
6. unity_CameraProjection
1. 描述:该摄像机的投影矩阵
2. 对象:float4x4
3. 功能:
4. 注意:
7. unity_CameraInvProjection
1. 描述:该摄像机的投影矩阵的逆矩阵
2. 对象:float4x4
3. 注意:
8. unity_CameraWorldClipPlanes[6]
1. 描述:该摄像机的6个裁剪平面在世界空间下的等式,按如下顺序:左、右、下、上、近、远裁剪平面
2. 对象:float4
3. 注意: