Unity提供了一些内置变量来让我们访问当前正在渲染的摄像机的参数信息。这些参数对应了摄像机上的Camera组件中的属性值。
Unity5.2内置的摄像机和屏幕参数
变量名 | 类型 | 描述 |
_WorldSpaceCameraPos | float3 | 该摄像机在世界空间中的位置 |
_ProjectionParams | float4 | x=1.0(或-1.0,如果正在使用一个翻转的投影矩阵进行渲染),y=Near, z=Far, w=1.0+1.0/Far,其中Near和Far分别是近裁剪平面和远裁剪平面离摄像机的距离。 |
_ScreenParams | float4 | x=width, y=height, z=1.0+1.0/width, w=1.0+1.0/height, 其中width和height分别是该摄像机的渲染目标(render target)的像素宽度和高度。 |
_ZBufferParams | float4 | x=1-Far/Near, y=Far/Near, z=x/Far, w=y/Far, 该变量用于线性化Z缓存中的深度值。 |
unity_OrthoParams | float4 | x=width, y=height, z没有定义,w=1.0(该摄像机是正交摄像机)或w=0.0(该摄像机是透视摄像机),其中width和height是正交摄像机的宽度和高度。 |
unity_CameraProjection | float4x4 | 该摄像机的摄影矩阵 |
unity_CameraInvProjection | float4x4 | 该摄像机的摄像矩阵的逆矩阵 |
unity_CameraWorldClipPlanes[6] | float4 | 该摄像机的6个裁剪平面在世界空间下的等式,按如下顺序:左、右、下、上、近、远裁剪平面。 |