简单光照着色器 (Simple Lit Shader)
此着色器用于性能需求比逼真性需求更重要的情况。此着色器对光照使用简单的近似算法。因为此着色器不考虑物理正确性和能量守恒定律,所以其渲染速度很快。
在 Editor 中使用简单光照着色器
要选择和使用此着色器,请执行以下操作:
- 在项目中,创建或查找要使用此着色器的材质。选择 Material。随后将打开 Material Inspector 窗口。
- 单击 Shader,然后选择 Universal Render Pipeline > Simple Lit。
UI 概述
此着色器的 Inspector 窗口包含以下元素:
Surface Options
Surface Options 控制材质在屏幕上的渲染方式。
属性 | 描述 |
---|---|
Surface Type | 使用此下拉选单可以将 Opaque 或 Transparent 表面类型应用于材质。这决定了 URP 渲染材质的渲染通道。Opaque 表面类型总是完全可见(无论其背景是什么)。URP 首先渲染不透明材质。Transparent 表面类型受其背景影响,它们可根据您选择的透明表面类型而有所不同。URP 在不透明对象之后的单独通道中渲染透明材质。如果选择 Transparent,则会出现 Blending Mode 下拉选单。 |
Blending Mode | 使用此下拉选单可以确定 URP 如何通过将材质与背景像素混合来计算透明材质的每个像素的颜色。 Alpha 使用材质的 Alpha 值来更改对象的透明度。0 表示完全透明。1 表示完全不透明,但在透明渲染过程中仍然会渲染材质。对于您希望完全可见但随着时间的推移也会逐渐消失的视觉效果(例如云),这非常有用。 Premultiply 对材质应用与 Alpha 类似的效果,但保留反射和高光,即使表面是透明的情况下也是如此。这意味着只有反射光可见。例如,想象一下透明玻璃。 Additive 在另一个表面之上给材质添加额外的一层。这对全息图很有用。 Multiply 将材质的颜色与表面的背景颜色相乘。这会产生更暗的效果,就像透过彩色玻璃观看一样。 |
Render Face | 使用此下拉选单可以确定要渲染几何体的哪些边。 Front Face 渲染几何体的正面并剔除背面。这是默认设置。 Back Face 渲染几何体的正面并剔除正面。 Both 使 URP 渲染几何体的正面和背面。这适用于小而扁平的对象,如树叶,因为这种情况下您可能希望两面都可见。 |
Alpha Clipping | 使材质像镂空着色器一样。此属性用于创建在不透明区域和透明区域之间具有硬边的透明效果。例如,创建草叶。为实现此效果,URP 不会渲染低于指定 Threshold(阈值)的 Alpha 值(该阈值会在启用 Alpha Clipping 时显示)。您可以通过移动滑动条来设置 Threshold,滑动条接受 0 到 1 之间的值。高于阈值的所有值都是完全不透明的,而低于阈值的所有值都是不可见的。例如,阈值为 0.1 意味着 URP 不会渲染低于 0.1 的 Alpha 值。默认值为 0.5。 |
Surface Inputs
Surface Inputs 用于描述表面本身。例如,可以使用这些属性使表面看起来湿润、干燥、粗糙或光滑。
属性 | 描述 |
---|---|
Base Map | 向表面添加颜色,也称为漫射贴图。要将纹理指定给 Base Map 设置,请单击旁边的对象选择器。这将打开资源浏览器 (Asset Browser),您可以从中选择项目中的纹理。或者,也可以使用拾色器。该设置旁边的颜色显示所指定纹理上的色调。要指定其他色调,可以单击此颜色样本。如果在 Surface Options 下选择了 Transparent 或 Alpha Clipping,则材质将使用纹理的 Alpha 通道或颜色。 |
Specular Map | 控制直接光照(例如方向光、点光源和聚光灯)的镜面高光颜色。要将纹理指定给 Specular Map 设置,请单击旁边的对象选择器。这将打开资源浏览器 (Asset Browser),您可以从中选择项目中的纹理。或者,也可以使用拾色器。 在 Source 中,可以选择项目中的一个纹理作为平滑度的源。默认情况下,源是此纹理的 Alpha 通道。 可以使用 Smoothness 滑动条控制表面上的高光分布。0 表示广泛、粗糙的高光。1 表示小而锐利的高光,像玻璃一样。两者之间的值将产生半高光。例如,0.5 将产生类似塑料的光泽度。 |
Normal 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 轴上移动纹理。 |
Advanced
Advanced 设置会影响渲染的底层计算。它们对表面没有明显的影响。
属性 | 描述 |
---|---|
Specular Highlights | 启用此属性可使材质具有直接光照(例如方向光、点光源和聚光灯)的镜面高光。这意味着材质将反射这些光源的光泽。禁用此选项可省略这些高光计算,因此着色器渲染速度将加快。默认情况下会启用此功能。 |
Enable GPU Instancing | 如果可能,使 URP 在一个批次中使用相同的几何体和材质来渲染网格。这样可以加快渲染速度。如果网格具有不同的材质或者硬件不支持 GPU 实例化,则 URP 无法在一个批次中渲染这些网格。 |
Sorting Priority | 使用此滑动条可以确定材质基于时间顺序的渲染顺序。URP 首先渲染具有较小值的材质。此属性可用于使管线首先在一些材质之前渲染另一些材质,因此不必将重叠区域渲染两次,从而减少设备上的过度绘制。这类似于 Unity 内置渲染管线中的渲染队列。 |