贴花主节点
贴花是使用 HDRP 贴花着色器 (HDRP Decal Shader) 的材质。可以使用贴花 Shader Graph 创作可投影或放置到场景中的贴花。贴花主节点 (Decal Master Node) 与标准贴花着色器相似,不同之处在于不能使用此版本来创作在透明材质上投影的贴花。
创建和编辑贴花材质
在 Project 视图中选择 Shader Graph 主节点时,无法在 Inspector 中编辑任何属性。贴花材质使用 Shader Graph 主节点,因此你需要使用特定的过程来创建和编辑使用该节点的材质。有关如何执行此操作的更多信息,请参阅创建和编辑 HDRP Shader Graph。
将该节点应用于材质时,Surface Options 和 Exposed Properties 在材质的 Inspector 中变为可编辑状态。
属性
主节点有一些属性,每种材质也有一些属性。主节点属性位于 Shader Graph 本身内部,分为两部分:
- 主节点输入端口:此部分包含主节点本身上的 Shader Graph 输入端口。您可以将这些端口连接到其他节点的输出端,或者在某些情况下,将您自己的值添加到这些端口。
主节点设置菜单:此部分包含可用于自定义主节点并显示更多输入端口的设置。
材质属性位于使用此着色器的材质的 Inspector 窗口中。
贴花主节点输入端口
)
下表描述了贴花主节点上的输入端口,包括用于每个端口的属性类型和着色器阶段。如需了解着色器阶段的更多信息,请参阅着色器阶段。
| 属性 | 类型 | 阶段 | 描述 |
|---|---|---|---|
| Position | 矢量 3 | 顶点 | 设置每个顶点的材质的对象空间位置。 |
| BaseColor | 矢量 3 | 片元 | 设置材质的颜色。要分配图像,请将采样的 Texture2D 连接到该主节点。 |
| BaseColor Opacity | Float | 片元 | 设置材质的不透明度。0 表示完全透明,1 表示完全不透明。 |
| Normal | 矢量 3 | 片元 | 设置材质的法线值。分配的法线应该在切线空间中。 |
| Normal Opacity | Float | 片元 | 设置材质法线的混合因子。贴花可以修改贴花投射到的材质的法线。值为 0 表示贴花不影响其投影到的表面的法线。值为 1 表示贴花完全覆盖表面法线。 |
| Metallic | Float | 片元 | 定义材质外观的金属度(即材质看起来的光泽程度以及材质外观基于周围环境颜色的程度)。0 表示完全非金属性,而 1 表示 Unity 通过此设置可以达到的最大金属性外观级别。 |
| Ambient Occlusion | Float | 片元 | 漫射全局光照的强度的乘数。将此值设置为 0 可移除所有全局光照。 |
| Smoothness | Float | 片元 | 设置主要镜面高光的外观。照射到光滑表面的每条光线都将以可预测且一致的角度反弹。对于像镜子一样反射光线的完美光滑表面,应将此属性设置为值 1。对于较粗糙的表面,请将此属性设置为较低的值。 |
| MAOS Opacity | Float | 片元 | 设置 Metallic、Ambient Occlusion 和 Smoothness 不透明度值。 |
| Emission | 矢量 3 | 片元 | 设置材质的发光颜色值。分配的 RGB 值应在 0-255 之间。强度值应在 -10 到 10 的范围内。 Emission 仅适用于不透明贴花着色器 (Opaque Decal Shader)。 |
主节点设置菜单
要查看这些属性,请单击主节点右上角的齿轮。
)
| 属性 | 描述 |
|---|---|
| Precision | 选择着色器处理的计算精度。较低的精度计算速度更快,但是会引起一些问题,例如镜面高光的强度不正确。 • Inherit:使用全局精度设置。这是最高精度的设置,因此使用此值不会导致任何精度问题,但是着色器计算速度比其他值要慢。 • Float:使用单精度浮点指令。此选项使每次计算的资源消耗减少,从而加快计算速度。 • Half:使用半精度浮点指令。这是速度最快的精度级别,意味着使用该精度级别的计算需要的处理资源最少。此精度设置最有可能导致问题,例如量化(条带)瑕疵和强度削波。对于贴花着色器,Half 精度目前正处于实验阶段。 |
| Affects BaseColor | 启用或禁用 BaseColor 属性的效果。 |
| Affects Normal | 启用或禁用 Normal 属性的效果。 |
| Affects Metal | 启用或禁用 Metal 属性的效果。 |
| Affects Ambient Occlusion | 启用或禁用 Ambient Occlusion 属性的效果。 |
| Affects Smoothness | 启用或禁用 Smoothness 属性的效果。 |
| Affects Emission | 启用或禁用 Emission 属性的效果。 |
| Support LOD CrossFace | 指示在对纹理进行采样的过程中从接收网格的一个 LOD 级别移到另一个 LOD 级别时是否发生抖动。仅适用于贴花网格。 |
| Override ShaderGUI | 允许覆盖此 Shader Graph 使用的 ShaderGUI。如果为 true,则会显示 ShaderGUI 属性,该属性允许指定要使用的 ShaderGUI。 |
| - ShaderGUI | 要使用的 ShaderGUI 类的全名,包括类路径。 |
Material Properties
从贴花主节点创建贴花材质时,除了在 Shader Graph 的 Blackboard 中显示的属性之外,还可以使用以下属性。
Surface Options
这些属性用于设置当 HDRP 将贴花渲染到场景中时贴花投影到的材质的受影响属性。
| 属性 | 描述 |
|---|---|
| Affect BaseColor | 启用此复选框可让该贴花使用 baseColor 属性。否则,贴花没有 baseColor 效果。无论是启用还是禁用此属性,HDRP 都会使用基色的 Alpha 通道作为其他属性的不透明度。 |
| Affect Normal | 启用此复选框可让贴花使用 normal 属性。否则,贴花不会修改接收材质的法线。 |
| Affect Metal | 启用此复选框可让贴花使用其 Mask Map 的金属性属性。否则,贴花没有金属效果。使用 Mask Map 的红色通道。 仅当启用 HDRP 资源中的 Metal and Ambient Occlusion properties 复选框时,才显示此属性。 |
| Affect Ambient Occlusion | 启用此复选框可让贴花使用其 Mask Map 的环境光遮挡属性。否则,贴花没有环境光遮挡效果。使用 Mask Map 的绿色通道。 仅当启用 HDRP 资源中的 Metal and Ambient Occlusion properties 复选框时,才显示此属性。 |
| Affect Smoothness | 启用此复选框可让贴花使用其 Mask Map 的平滑度属性。否则,贴花没有平滑度效果。使用 Mask Map 的 Alpha 通道。 |
| Affect Emissive | 启用此复选框可以使该贴花发光。启用后,此材质将显示为自发光状态,并充当可见光源。此属性不适用于透明的接收材质。 |
Sorting Inputs
这些属性用于更改贴花的渲染行为。
| 属性 | 描述 |
|---|---|
| Draw Order | 控制 HDRP 在场景中绘制贴花的顺序。HDRP 首先绘制具有较低绘制顺序值的贴花,因此会在具有较低值的贴花之上绘制具有较高值的贴花。此功能适用于投影在不透明和透明表面上的贴花。 注意:此属性仅适用于贴花投影器 (Decal Projector) 创建的贴花,对网格贴花无效。此外,如果多个贴花材质具有相同的 Draw Order 值,则 HDRP 渲染这些材质的顺序将取决于您创建材质的顺序。HDRP 会渲染先创建的贴图材质,然后再渲染随后创建的具有相同 Draw Order 值的贴图材质。 |
| Mesh Decal Depth Bias | HDRP 应用于贴花网格的深度偏差,用于防止该网格与其他网格重叠。负值会在任何重叠的网格前面绘制贴花,而正值会使贴花偏移并在后面绘制贴花。此属性仅影响使用网格渲染器直接附加到游戏对象的贴花材质,因此贴花投影器 (Decal Projector) 不使用此属性。 |