无光照主节点
无光照主节点 (Unlit Master node) 使着色器表面看起来无光照,这意味着表面不受光源影响。该节点为着色器提供的属性比标准无光照着色器更多。这是一个 Shader Graph 主节点,因此意味着在 Project 视图中选择该节点时,无法在 Inspector 中编辑任何属性。但是,将该节点应用于材质时,Surface Options 和 Exposed Properties 在 Inspector 中变为可编辑状态。
创建和编辑无光照材质
无光照材质使用 Shader Graph 主节点,这意味着您需要使用特定的方法来创建和编辑使用该节点的材质。有关如何执行此操作的更多信息,请参阅使用 Shader Graph 自定义 HDRP 材质。从 Shader Graph 创建材质时,在 Blackboard 中显示的属性将显示在 Exposed Properties 部分中。
属性
主节点有一些属性,使用主节点的材质也有一些属性。材质属性位于使用此着色器的材质的 Inspector 中,而主节点属性位于 Shader Graph 内本身的以下两个部分中:
- 主节点输入端口:主节点本身的 Shader Graph 输入端口,您可以将这些端口连接到其他节点的输出端,或者在某些情况下,将您自己的值添加到这些端口。
- 主节点设置菜单:此部分的设置可用于自定义主节点并显示更多输入端口。
无光照主节点输入端口
![]() |
![]() |
---|---|
默认 | 已启用 ShadowMatte |
下表描述了无光照主节点上的输入端口,包括用于每个端口的属性类型和着色器阶段。如需了解着色器阶段的更多信息,请参阅着色器阶段。
属性 | 类型 | 阶段 | 描述 |
---|---|---|---|
Position | 矢量 3 | 顶点 | 定义每个顶点的材质的绝对对象空间位置。 |
Color | 矢量 3 | 片元 | 定义材质的颜色。要分配图像,请将采样 Texture2D 连接到该主节点。 |
Alpha | 矢量 1 | 片元 | 定义材质的 Alpha 值。用于透明度和/或 Alpha 裁剪。期望范围 0 - 1。 |
AlphaClipThreshold | 矢量 1 | 片元 | 设置 HDRP 用于确定是否应渲染材质每个像素的 Alpha 值阈值。如果像素的 Alpha 值等于或高于此阈值,则 HDRP 会渲染该像素。如果低于此阈值,则 HDRP 不会渲染该像素。仅当启用 Alpha Clipping 设置时,才会显示此端口。 |
Emission | 矢量 3 | 片元 | 定义材质的发光颜色值。期望正值。 |
Shadow Tint | 矢量 4 | 片元 | 定义具有 Alpha 值的阴影颜色值。仅在启用 Shadow Matte 时才启用。请参阅主节点设置菜单 |
无光照主节点设置菜单
要查看这些属性,请单击主节点右上角的齿轮图标。
属性 | 描述 |
---|---|
Precision | 选择着色器处理的计算精度。较低的精度计算速度更快,但是会引起一些问题,例如镜面高光的强度不正确。 • Inherit:使用全局精度设置。这是最高精度的设置,因此使用此值不会导致任何精度问题,但是着色器计算速度比其他值要慢。 • Float:使用单精度浮点指令。此选项使每次计算的资源消耗减少,从而加快计算速度。 • Half:使用半精度浮点指令。这是速度最快的精度级别,意味着使用该精度级别的计算需要的处理资源最少。此精度设置最有可能导致问题,例如量化(条带)瑕疵和强度削波。对于无光照着色器,Half 精度目前正处于实验阶段。 |
Surface Type | • Opaque:使材质的表面不透明。 • Transparent:使材质的表面透明。 |
Rendering Pass | 使用下拉选单设置 HDRP 处理此材质使用的渲染通道。 • Before Refraction:在折射通道之前绘制游戏对象。这意味着 HDRP 在处理折射时包含此材质。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 • Default:根据 Surface Type,在默认的不透明或透明渲染通道中绘制游戏对象。 • Low Resolution:在前向透明通道后以半分辨率绘制游戏对象。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 • After post-process:仅适用于无光照材质。在执行所有后期处理效果之后绘制游戏对象。 |
Blending Mode | 使用此下拉选单可以确定 HDRP 如何通过将材质与背景像素混合来计算透明材质的每个像素的颜色。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 • Alpha:使用材质的 Alpha 值来更改对象的透明度。0 表示完全透明。1 表示完全不透明,但在透明渲染过程中仍然会渲染材质。对于您希望完全可见但随着时间的推移也会逐渐消失的视觉效果(例如云),这非常有用。 • Additive:将材质的 RGB 值添加到背景颜色。材质的 Alpha 通道可调节强度。值 0 表示不进行任何添加,值为 1 表示将材质颜色的 100% 添加到背景颜色。 • Premultiply:假设您已经将材质的 RGB 值乘以 Alpha 通道。当过滤图像或构建不同的层时,这可以提供比 Alpha 混合更好的结果。 |
Sorting Priority | 允许更改重叠的透明表面的渲染顺序。 |
Receive Fog | 启用此复选框可以允许雾效影响透明表面。禁用后,HDRP 在计算场景中的雾效时不会考虑此材质。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 |
Distortion | 启用或禁用着色器失真。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 |
Depth Write | 启用此复选框可以使 HDRP 为使用该材质的透明游戏对象写入深度值。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 |
Cull Mode | 使用下拉选单选择对于使用该材质的透明游戏对象需要剔除哪个面。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 • Front:剔除几何体的正面。 • Back:剔除几何体的背面。 |
DepthTest | 渲染对象时,Unity 使用 DepthTest 来检查该对象是否位于另一个对象后面。Unity 为了做到这一点,会测试给定对象像素的 Z 值并与 Z 缓冲区中存储的值进行比较。默认情况下,DepthTest 设置为 Less Equal,允许原始对象出现在测试参考对象的前面。使用下拉选单可选择用于深度测试的比较函数。每个比较函数会更改着色器的渲染方式。要显示此选项,请从 Surface Type 下拉选单中选择 Transparent。 • Disabled:不执行 ZTest。 • Never:ZTest 始终不通过。 • Less:如果像素的 Z 值小于存储的值,则 ZTest 通过。 • Equal:如果像素的 Z 值等于存储的值,则 ZTest 通过。 • Less Equal:如果像素的 Z 值小于或等于 Z 缓冲区值,则 ZTest 通过。这会将测试的像素渲染到另一个像素的前面。 • Greater:如果像素的 Z 值大于存储的值,则 ZTest 通过。 • Not Equal:如果像素的 Z 值不等于存储的值,则 ZTest 通过。 • Greater Equal:如果像素的 Z 值大于或等于存储的值,则 ZTest 通过。 • Always:ZTest 始终通过,不会与存储的值进行比较。 |
Double Sided | 是否应在几何体的两面渲染着色器。 |
Alpha Clipping | 启用或禁用 Alpha 裁剪。此属性可以控制着色器的行为是否像镂空着色器 (Cutout Shader) 一样。镂空着色器是一种具有不透明和透明部分的着色器类型。 |
Shadow Matte | 着色器是否接受阴影。 |
Override ShaderGUI | 允许覆盖此 Shader Graph 使用的 ShaderGUI。如果为 true ,则会显示 ShaderGUI 属性,该属性允许指定要使用的 ShaderGUI。 |
- ShaderGUI | 要使用的 ShaderGUI 类的全名,包括类路径。 |
Material Inspector
这些属性位于 Inspector 的 Exposed Properties 部分中,与在 Shader Graph 的 Blackboard 中显示的属性一起列出。如果将 Override ShaderGUI 设置为 true
,则不会显示 Material Properties 部分,而是显示您指定的 ShaderGUI。
属性 | 描述 |
---|---|
Enable GPU Instancing | 启用此设置可以指示 HDRP 在一个批次中使用相同的几何体和材质来渲染网格(如果可能)。这样可以加快渲染速度。如果网格具有不同的材质或者硬件不支持 GPU 实例化,则 HDRP 无法在一个批次中渲染这些网格。例如,如果游戏对象具有基于对象轴心的动画,则不能对它们进行静态批处理,但 GPU 可以实例化它们。 |
Double Sided Global Illumination | 启用时,光照贴图会在计算全局光照时考虑几何体的两面。背面不会渲染或添加到光照贴图,但是在从其他对象查看时会被视为有效。使用渐进光照贴图时,背面将使用与正面相同的发射和反照率来反射光。 |