Version: 6000.3
语言: 中文
HLSL 编译指示需要命令引用
色彩和高动态范围 (HDR)

内置着色器变量参考

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 缓冲区值。
  • x:1 - far/near–1 + far/near如果UNITY_REVERSED_Z设置为 1。
    有关
    UNITY_REVERSED_Z,请参阅基于平台功能的分支
  • y:far/near1如果UNITY_REVERSED_Z设置为 1。
    有关
    UNITY_REVERSED_Z,请参阅基于平台功能的分支
  • z:x / far
  • w:y / far
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 通道标签

前向渲染一种渲染路径,用于在一个或多个通道中渲染每个对象,具体取决于影响对象的光源。光源本身也因前向渲染而异,具体取决于其设置和强度。更多信息
请参阅术语表
(ForwardBaseForwardAdd通行证类型):

名字 类型 价值
_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] 世界到阴影矩阵。一个矩阵用于聚光源,最多四个矩阵用于定向光级联。

球面谐波系数(由环境和光探头使用)用于ForwardBaseDeferred通行证类型。它们包含要由世界空间法线评估的三阶 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 模式,zw 适用于线性模式。

各种

名字 类型 价值
unity_LODFade 浮点4 使用LODGroup时的细节级别淡入淡出。x 是淡入淡出 (0..1),y 是淡入淡出量化到 16 个级别,zw 未使用。
_TextureSampleAdd 浮点4 Unity 仅根据所使用的纹理是否为 Alpha8 格式(值设置为 (1,1,1,0))或非(值设置为 (0,0,0,0))自动设置 UI
HLSL 编译指示需要命令引用
色彩和高动态范围 (HDR)