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