此着色器的 Inspector 窗口包含以下元素:
表面选项 (Surface Options) 控制 URP 在屏幕上渲染材质的方式。
| 属性 | 描述 |
|---|---|
| Workflow Mode | 使用此下拉菜单可选择适合您的纹理的工作流程,包括金属 (Metallic) 和镜面反射 (Specular)。 完成选择后,检视面板其余部分的主要纹理选项即会遵循您选择的工作流程。有关金属 (Metallic) 或镜面反射 (Specular) 工作流程的信息,请参阅有关 Unity 标准内置着色器的手册页。 |
| Surface Type | 使用此下拉选单可以将不透明 (Opaque) 或透明 (Transparent) 表面类型应用于材质上。这决定了 URP 在哪个渲染通道中渲染材质。不透明表面类型总是完全可见(无论其背景是什么)。URP 首先渲染不透明材质。透明表面类型受其背景影响,它们可根据您选择的透明表面类型而有所不同。URP 在不透明对象之后的单独通道中渲染透明材质。如果选择透明,则会出现混合模式 (Blending Mode) 下拉选单。 |
| Blending Mode | 选择 Unity 在将材质与背景混合时如何计算透明材质的每个像素的颜色。有如下选项:
|
| Preserve Specular Lighting | 指示 Unity 是否在游戏对象上保留镜面高光。即使表面是透明的,此属性也会应用,这意味着只有反射光可见。 仅当表面类型 (Surface Type) 设置为透明 (Transparent) 且混合模式 (Blending Mode) 设置为 Alpha 或 Additive 时,才显示此属性。 |
| Render Face | 使用此下拉选单可确定要渲染几何体的哪些面。 Front Face 渲染几何体的正面并剔除背面。这是默认设置。 Back Face 渲染几何体的正面并剔除正面。 Both 使 URP 同时渲染几何体的正面和背面。这适用于小而扁平的对象,如树叶,因为这种情况下您可能希望两面都可见。 |
| Alpha Clipping | 使材质像镂空 (Cutout) 着色器一样。此属性用于创建在不透明区域和透明区域之间具有硬边的透明效果。例如,创建草叶。为实现此效果,URP 不会渲染低于指定阈值 (Threshold) 的 Alpha 值(该阈值会在启用 Alpha 裁剪 (Alpha Clipping) 时显示)。可以通过移动滑动条来设置阈值,滑动条接受 0 到 1 之间的值。高于阈值的所有值都是完全不透明的,而低于阈值的所有值都是不可见的。例如,阈值为 0.1 意味着 URP 不会渲染低于 0.1 的 Alpha 值。默认值为 0.5。 |
| Receive Shadows | 勾选此复选框允许其他对象在您的游戏对象上投射阴影。如果不勾选此复选框,游戏对象将不会接受阴影。 |
表面输入 (Surface Inputs) 用于描述表面本身。例如,可以使用这些属性使表面看起来湿润、干燥、粗糙或光滑。
注意:如果您习惯了 Unity 内置渲染管线中的标准着色器,这些选项与材质编辑器 (Material Editor) 中的主贴图 (Main Maps) 设置类似。
| 属性 | 描述 |
|---|---|
| Base Map | 向表面添加颜色,也称为漫射贴图。要将纹理指定给基础贴图 (Base Map) 设置,请单击旁边的对象选择器。这将打开资源浏览器 (Asset Browser),您可以从中选择项目中的纹理。或者,也可以使用颜色选取器。该设置旁边的颜色显示所指定纹理上的色调。要指定其他色调,可以单击此颜色样本。如果在表面选项 (Surface Options) 下选择了透明 (Transparent) 或 Alpha 裁剪 (Alpha Clipping),则材质将使用纹理的 Alpha 通道或颜色。 |
| Metallic / Specular Map | 在表面选项 (Surface Options) 中显示所选工作流程模式 (Workflow Mode) 的贴图输入。 对于金属贴图 (Metallic Map) 工作流程,贴图会从上面分配的基础贴图 (Base Map) 获取颜色。使用滑动条可以控制表面的金属化程度。1 表示完全金属性材质,如银或铜,0 表示完全介电材质,如塑料或木材。对于脏金属或腐蚀金属,通常可以使用 0 到 1 之间的值。 对于镜面贴图 (Specular Map) 设置,可单击旁边的对象选择器将纹理指定给贴图。这将打开资源浏览器 (Asset Browser),您可以从中选择项目中的纹理。或者,也可以使用颜色选取器。 对于两个流程,可以使用平滑度 (Smoothness) 滑动条控制高光在表面上的分布。0 表示广泛、粗糙的高光。1 表示小而锐利的高光,像玻璃一样。两者之间的值将产生半高光。例如,0.5 将产生类似塑料的光泽度。 使用源 (Source) 下拉菜单选择着色器对平滑度贴图进行采样的位置。选项为:Metallic Alpha(来自金属贴图的 Alpha 通道)和 Albedo Alpha(来自基础贴图的 Alpha 通道)。默认值为 Metallic Alpha。 如果所选源具有 Alpha 通道,则着色器会对通道进行采样,并将每个样本乘以平滑度值。 |
| Normal Map | 向表面添加法线贴图。使用法线贴图可以添加表面细节,如凸起、划痕和凹槽。要添加贴图,请单击旁边的对象选择器。法线贴图将拾取环境中的环境光照。 该设置旁边的浮点值是法线贴图效果的乘数。较低的值会降低法线贴图的效果。较高的值会产生更强的效果。 |
| Height Map | URP 实现了视差贴图技术,该技术使用高度贴图通过移动可见表面纹理的区域来实现表面级别的遮挡效果。要添加贴图,请单击旁边的对象选择器。 该设置旁边的浮点值是高度贴图效果的乘数。较低的值会降低高度贴图的效果。较高的值会产生更强的效果。 |
| Occlusion Map | 选择一个遮挡贴图。这用于模拟环境光和反射的阴影,使得光照看起来更逼真,因为到达对象角落和裂缝的光线会减少。要选择遮挡贴图,请单击旁边的对象选择器。 |
| Clear Coat | 选中此复选框可启用透明涂层 (Clear Coat) 功能。该功能会添加一个额外的材质层,在基础材质上模拟透明而薄的涂层。该功能对底层基础材质的颜色和平滑度值稍微有一些影响。透明涂层的折射率 (IOR) 为 1.5。 性能影响:渲染透明涂层的成本大约是渲染基础材质的两倍,因为每层都会计算一次光照。 Mask:此属性定义该效果的强度。0 - 无效果,1 - 最大效果。将遮罩值设置为 0 不会禁用该功能。 Smoothness:此属性定义高光在表面上的分布。0 呈现宽阔、粗糙的高光。1 呈现锐利的玻璃状高光。 Mask 属性左侧有 Clear Coat map 属性。通道具有以下映射: 红色:Mask 属性。 绿色:Smoothness 属性。 如果存在 Clear Coat 贴图,URP 会将贴图的像素值乘以 Mask 属性的值。 |
| Emission | 使表面看起来像在发光。启用此选项时,将出现发射贴图 (Emission Map) 和发射颜色 (Emission Color) 设置。 要指定发射贴图,请单击旁边的对象图片。这将打开资源浏览器 (Asset Browser),您可以从中选择项目中的纹理。 对于发射颜色,可以选择颜色选取器来指定颜色之上的色调。此设置可以超过 100% 白色,这对于像熔岩这样的效果很有用,它比白色更亮,同时仍然是另一种颜色。 如果尚未指定发射图片,则发射 (Emission) 设置仅使用已经在发射颜色中指定的色调。 如果不启用发射,URP 会将发射设置为黑色,且不计算发射。 |
| Tiling | 这是一个 2D 乘数值,可以根据 U 轴和 V 轴来缩放纹理以适应网格。这适用于地板和墙壁等表面。默认值为 1,表示不缩放。设置较高的值可以使纹理在网格上重复。设置较低的值可以拉伸纹理。请尝试不同的值,直至获得所需的效果。 |
| Offset | 表示在网格上定位纹理的 2D 偏移。要调整网格上的位置,请在 U 轴或 V 轴上移动纹理。 |
使用详细信息输入 (Detail Inputs) 设置可向表面添加额外的细节。
要求 (Requirement):GPU 支持 Shader Model 2.5 或更新版本。
| 属性 | 描述 |
|---|---|
| Mask | 选择一个纹理以定义 Unity 将细节贴图覆盖在表面输入 (Surface Inputs) 贴图上的哪个区域。该遮罩将使用选定纹理的 Alpha 通道。平铺 (Tiling) 和偏移 (Offset) 设置对该遮罩无效。 |
| Base Map | 选择包含表面细节的纹理。Unity 使用叠加模式将此贴图与表面基础贴图混合。 |
| Normal Map | 选择包含法线矢量数据的纹理。使用法线贴图 (Normal Map) 添加表面细节,如凸起、划痕和凹槽。 使用设置旁边的滑动条可更改贴图效果的强度。默认值为 1。 |
| Tiling | 使用此设置可沿 U 轴和 V 轴缩放网格上的基础贴图 (Base Map) 和法线贴图 (Normal Map),以便贴图最贴合网格。默认值为 1。选择一个大于 1 的值可使贴图在整个网格上重复出现。设置一个小于 1 的值将拉伸贴图。 |
| Offset | 让基础贴图和法线贴图在网格上沿 U 轴和 V 轴移动的偏移值。 |
Advanced 设置会影响渲染的底层计算。它们对表面没有明显的影响。
| 属性 | 描述 |
|---|---|
| Specular Highlights | 启用此选项可使材质在直接光照(例如方向光、点光源和聚光灯)下产生镜面高光。这意味着材质将反射这些光源的光泽。禁用此选项可省略这些高光计算,因此着色器渲染速度将加快。默认情况下会启用此功能。 |
| Environment Reflections | 使用距离最近的反射探针对反射进行采样,或者,如果已在光照 (Lighting) 窗口中设置了光照探针,则使用该光照探针进行采样。如果禁用此选项,则着色器计算次数会减少,但这也意味着表面没有反射。 |
| Enable GPU Instancing | 如果可能,使 URP 在一个批次中使用相同的几何体和材质来渲染网格。这样可以加快渲染速度。如果网格具有不同的材质或者硬件不支持 GPU 实例化,则 URP 无法在一个批次中渲染这些网格。 |
| Priority | 使用此滑动条可以确定材质基于时间顺序的渲染顺序。URP 首先渲染具有较小值的材质。此属性可用于使管线首先在一些材质之前渲染另一些材质,因此不必将重叠区域渲染两次,从而减少设备上的过度绘制。这类似于 Unity 内置渲染管线中的渲染队列。 |
此着色器使用通道打包,因此可以对金属、平滑和遮挡属性使用单个 RGBA 纹理。使用纹理打包时,只需将一个纹理加载到内存中,不必加载三个单独的纹理。在 Substance 或 Photoshop 之类的程序中编写纹理贴图时,可以按如下方式打包贴图:
Base Map
| 通道 | 属性 |
|---|---|
| 红色 | Metallic |
| 绿色 | Occlusion |
| 蓝色 | 无 |
| Alpha | 平滑度 |
Clear Coat Map
| 通道 | 属性 |
|---|---|
| 红色 | 遮罩 (Mask) |
| 绿色 | 平滑度 |
| 蓝色 | 无 |
| Alpha | 无 |