包含此页的版本:
不含此页的版本:
Unity 的内置包含文件包含全局变量,用于着色器在 GPU 上运行的程序。更多信息
请参阅术语表:例如当前对象的变换矩阵、光源参数、当前时间等。您可以在着色器程序中使用它们,就像任何其他变量一样,但如果您包含相关的包含文件,则不必声明它们。
有关包含文件的详细信息,请参阅内置包含文件。
所有这些矩阵都是float4x4类型,并且是列主要。
| 名字 | 价值 |
|---|---|
| UNITY_MATRIX_MVP | 当前模型 * 视图 * 投影矩阵。 |
| UNITY_MATRIX_MV | 当前模型 * 视图矩阵。 |
| UNITY_MATRIX_V | 当前视图矩阵。 |
| UNITY_MATRIX_P | 电流投影矩阵。 |
| UNITY_MATRIX_VP | 当前视图 * 投影矩阵。 |
| UNITY_MATRIX_T_MV | 模型 * 视图矩阵的转置。 |
| UNITY_MATRIX_IT_MV | 模型 * 视图矩阵的逆转置。 |
| unity_ObjectToWorld | 当前模型矩阵。 |
| unity_WorldToObject | 当前世界矩阵的倒数。 |
这些变量将对应于相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表那就是渲染。例如,在阴影贴图渲染期间,它们仍将引用摄像机组件值,而不是用于阴影贴图投影的“虚拟摄像机”。
| 名字 | 类型 | 价值 |
|---|---|---|
| _WorldSpaceCameraPos | 浮点3 | 摄像机的世界空间位置。 |
| _ProjectionParams | 浮点4 |
x为 1.0(如果当前使用翻转投影矩阵进行渲染,则为 –1.0),y是相机的近平面,z是相机的远平面,并且w是 1/FarPlane。 |
| _ScreenParams | 浮点4 |
x是相机目标纹理的宽度像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息请参阅术语表, y是相机目标纹理的高度(以像素为单位),z是 1.0 + 1.0/width,并且w是 1.0 + 1.0/高度。 |
| _ZBufferParams | 浮点4 | 用于线性化 Z 缓冲区值。 |
| unity_OrthoParams | 浮点4 |
x是正交相机的宽度,y是正交相机的高度,z未使用,并且w当相机为正交时为 1.0,当透视时为 0.0。 |
| unity_CameraProjection | 浮点4x4 | 摄像机的投影矩阵。 |
| unity_CameraInvProjection | 浮点4x4 | 相机投影矩阵的倒数。 |
| unity_CameraWorldClipPlanes[6] | 浮点4 | 相机视锥体平面世界空间方程,按以下顺序排列:左、右、下、上、近、远。 |
时间以秒为单位,由项目的 时间(Time) 设置中的 时间乘数(Time multiplier) 缩放。没有提供对未缩放时间的访问的内置变量。
| 名字 | 类型 | 价值 |
|---|---|---|
| _时间 | 浮点4 | 自关卡加载以来的时间(t/20、t、t*2、t*3),用于为着色器内的事物设置动画。 |
| _SinTime | 浮点4 | 时间正弦:(t/8、t/4、t/2、t)。 |
| _CosTime | 浮点4 | 时间余弦:(t/8,t/4,t/2,t)。 |
| unity_DeltaTime | 浮点4 | 增量时间:(dt、1/dt、smoothDt、1/smoothDt)。 |
光源参数以不同的方式传递给着色器,具体取决于渲染路径渲染管线用于渲染图形的技术。选择不同的渲染路径会影响照明和着色的计算方式。某些渲染路径比其他路径更适合不同的平台和硬件。更多信息
请参阅术语表被使用,
以及着色器中使用的 LightMode 通道标签。
前向渲染一种渲染路径,用于在一个或多个通道中渲染每个对象,具体取决于影响对象的光源。光源本身也因前向渲染而异,具体取决于其设置和强度。更多信息
请参阅术语表 (ForwardBase和ForwardAdd通行证类型):
| 名字 | 类型 | 价值 |
|---|---|---|
| _LightColor0(在 UnityLightingCommon.cginc 中声明) | 固定4 | 浅色。 |
| _WorldSpaceLightPos0 | 浮点4 | 定向光源:(世界空间方向,0)。其他光源:(世界空间位置,1)。 |
| unity_WorldToLight(在 AutoLight.cginc 中声明) | 浮点4x4 | 世界到光的矩阵。用于对 cookie 和衰减纹理进行采样。 |
| unity_4LightPosX0、unity_4LightPosY0、unity_4LightPosZ0 | 浮点4 | (仅限 ForwardBase 通道)前四个非重要点光源的世界空间位置。 |
| unity_4LightAtten0 | 浮点4 | (仅限 ForwardBase 通道)前四个非重要点光源的衰减因子。 |
| unity_LightColor | 半场4[4] | (仅限 ForwardBase 通道)前四个非重要点光源的颜色。 |
| unity_WorldToShadow | 浮点4x4[4] | 世界到阴影矩阵。一个矩阵用于聚光源,最多四个矩阵用于定向光级联。 |
延迟着色,用于光照通道着色器(全部在 UnityDeferredLibrary.cginc 中声明):
| 名字 | 类型 | 价值 |
|---|---|---|
| _LightColor | 浮点4 | 浅色。 |
| unity_WorldToLight | 浮点4x4 | 世界到光的矩阵。用于对 cookie 和衰减纹理进行采样。 |
| unity_WorldToShadow | 浮点4x4[4] | 世界到阴影矩阵。一个矩阵用于聚光源,最多四个矩阵用于定向光级联。 |
球面谐波系数(由环境和光探头使用)用于ForwardBase和Deferred通行证类型。它们包含要由世界空间法线评估的三阶 SH(参见ShadeSH9来自 UnityCG.cginc)。
变量都是half4类型,unity_SHAr和类似的名字。
顶点光照渲染 (Vertex通行证类型):
最多可设置 8 盏灯Vertex通行证类型;总是从最亮的开始排序。所以如果你想要
要同时渲染受两个光源影响的对象,只需在数组中获取前两个条目。如果少于 8 个
影响对象的光源,其余的灯光将将其颜色设置为黑色。
| 名字 | 类型 | 价值 |
|---|---|---|
| unity_LightColor | 半场4[8] | 浅色。 |
| unity_LightPosition | 浮点4[8] | 视空间灯光位置。(-direction,0) 表示定向光;(position,1) 表示点光源或聚光源。 |
| unity_LightAtten | 半场4[8] | 光衰减系数。x 为 cos(spotAngle/2) 或 –1 表示非聚光灯;y 为 1/cos(spotAngle/4) 或 1 表示非聚光灯;z 是二次衰减;w 是平方光范围。 |
| unity_SpotDirection | 浮点4[8] | 视空间聚光灯位置;(0,0,1,0) 表示非聚光灯。 |
| 名字 | 类型 | 价值 |
|---|---|---|
| unity_Lightmap | 纹理2D | 包含lightmap:预渲染的纹理,包含光源对场景中静态对象的效果。光照贴图覆盖在场景几何体之上,以创建光照效果。更多信息 请参阅术语表信息。 |
| unity_LightmapST | 浮点4[8] | 将UV信息缩放并平移到正确的范围,以对光照贴图纹理进行采样。 |
| 名字 | 类型 | 价值 |
|---|---|---|
| unity_AmbientSky | 固定4 | 渐变环境照明案例中的天空环境照明颜色。 |
| unity_AmbientEquator | 固定4 | 渐变环境照明案例中的赤道环境照明颜色。 |
| unity_AmbientGround | 固定4 | 渐变环境照明案例中的地面环境照明颜色。 |
| unity_IndirectSpecColor | 固定4 | 如果您使用天空盒(skybox) 一种特殊类型的材质,用于表示天空。通常是六面的。更多信息 请参阅术语表,这是天空盒的平均颜色,Unity 使用 DC环境探头中球谐波数据的分量。否则这是黑色的。 |
| UNITY_LIGHTMODEL_AMBIENT | 固定4 | 环境光照颜色(渐变环境情况下的天空颜色)。旧变量。 |
| unity_FogColor | 固定4 | 雾色。 |
| unity_FogParams | 浮点4 | 雾计算参数:(density / sqrt(ln(2)), density / ln(2), –1/(end-start), end/(end-start))。x 适用于 Exp2 雾模式,y 适用于 Exp 模式,z 和 w 适用于线性模式。 |
| 名字 | 类型 | 价值 |
|---|---|---|
| unity_LODFade | 浮点4 | 使用LODGroup时的细节级别淡入淡出。x 是淡入淡出 (0..1),y 是淡入淡出量化到 16 个级别,z 和 w 未使用。 |
| _TextureSampleAdd | 浮点4 | Unity 仅根据所使用的纹理是否为 Alpha8 格式(值设置为 (1,1,1,0))或非(值设置为 (0,0,0,0))自动设置 UI。 |