Version: 6000.3
语言: 中文
URP中着色器图的全屏主堆栈参考
在 Unity 中编程

URP的着色器图参考中的全屏主堆栈

全屏主堆栈在 图表设置(Graph Settings) 窗口中有各种属性,用于控制全屏的整体外观着色器在 GPU 上运行的程序。更多信息
请参阅术语表
.

表面选项

财产 描述
允许覆盖材质(Allow Override Material) 在材质的 表面选项(Surface Options) 中公开 图表设置(Graph Settings) 属性。注意:你只能公开在图表设置中启用的属性。如果启用其中一个属性,则无法在检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
在材质的表面选项下。
混合模式(Blend Mode) 指定 Unity 渲染全屏着色器时要使用的混合模式。每个选项都有一个等效的BlendMode操作。注意:当您写入Blit“位块传输”的简写术语。blit作是将数据块从内存中的一个位置传输到另一个位置的过程。
请参阅术语表
shader,请禁用此属性以避免不良效果。
    阿尔法 使用着色器的 alpha 值来控制其不透明度。BlendMode操作:Blend SrcAlpha OneMinusSrcAlpha
    预乘 将透明着色器的 RGB 值乘以其 Alpha 值,然后将与 Alpha 类似的效果应用于着色器。BlendMode操作:Blend One OneMinusSrcAlpha
    添加剂 添加全屏着色器的颜色值和相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表
一起输出。BlendMode操作:Blend One One
     将全屏着色器的颜色与摄像机输出的颜色相乘。BlendMode操作:Blend DstColor Zero
    习惯 手动设置混合方程的每个参数。有关更多信息,请参阅自定义混合模式。
深度测试 指定此着色器用于执行深度测试的函数。
    禁用 不执行深度测试。
    从不 深度测试永远不会通过。
     如果像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
请参阅术语表
的深度值小于深度缓冲区 保存图像中每个像素的 z 值深度的内存存储,其中 z 值是投影平面中每个呈现像素的深度。更多信息
请参阅术语表
.
    平等 如果像素的深度值等于存储在深度缓冲区中的值,则深度测试通过。
    不相等 如果像素的深度值小于或等于存储在深度缓冲区中的值,则深度测试通过。这会将测试的像素呈现在其他像素的前面。
     如果像素的深度值大于存储在深度缓冲区中的值,则深度测试通过。
    不相等 如果像素的深度值不等于存储在深度缓冲区中的值,则深度测试通过。
    大平等 如果像素的深度值大于或等于存储在深度缓冲区中的值,则深度测试通过。
    总是 深度测试始终通过,并且 Unity 不会将像素的深度值与其存储在深度缓冲区中的值进行比较。
深度写入 指示 Unity 是否将深度值写入游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
使用此着色器。启用此属性可将深度值写入深度缓冲区并使用深度片段块。
深度写入模式 在 Unity 将深度值传递给深度缓冲区之前确定深度值的输入格式。此属性确定您可以在 Fragment 上下文中使用的 Depth 块。当您启用 Depth Write 时,将显示此属性。
    线性眼 将深度值转换为缩放到世界空间的值。这个新值表示从摄像机的近平面到远平面的深度(以米为单位)。
    线性01 使用介于 0 和 1 之间的线性深度值范围。
     不转换深度缓冲区值。将此设置与非线性深度值一起使用,或者直接从深度缓冲区对深度值进行采样时使用。
启用模板 此属性使你能够控制所有模具字段。有关启用此属性时可用的选项的信息,请参阅模具属性
自定义编辑器 GUI 接受继承的 C# 类的全名FullscreenShaderGUI. 有关如何使用自定义编辑器的信息,请参阅ShaderLab:分配自定义编辑器

自定义混合模式(Custom Blend Mode)

使用“自定义混合”模式创建与“曲面选项”中可用的混合模式不同的混合模式。若要显示这些选项,请将“混合模式”设置为“自定义”。“自定义混合模式”属性指定要用于此全屏着色器的 alpha 和颜色通道的混合作。

在混合模式属性中, Src (源) 引用全屏着色器本身。Dst (目标) 引用场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
相机的原始输出,此着色器不会影响。混合作将源内容应用于目标内容以生成渲染结果。

有关混合方程的更多信息,请参阅 ShaderLab 命令:混合

颜色混合模式(Color Blend Mode)

确定 Unity 用于红色、绿色和蓝色通道 (RGB) 的混合方程。每个设置定义了等式的一部分。

财产 描述
Src 颜色 设置源颜色的混合模式。
Dst 颜色 设置目标颜色的混合模式。
颜色作 确定如何在混合过程中组合源颜色和目标颜色。有关这些选项的信息,请参阅 ShaderLab 命令:BlendOp

Alpha混合模式

确定 Unity 用于 alpha 通道的混合方程。每个设置定义了等式的一部分。

财产 描述
来源 设置源 Alpha 的混合模式。有关这些选项的信息,请参阅有效参数值
夏令时 设置目标 Alpha 的混合模式。有关这些选项的信息,请参阅有效参数值
混合作Alpha 确定如何在混合过程中组合源 Alpha 和目标 Alpha。有关这些选项的更多信息,请参阅 ShaderLab 命令:BlendOp

模具属性

这些属性会影响此全屏着色器图表如何使用模具缓冲区 保存每像素值 8 位的内存存储。在 Unity 中,可以使用模具缓冲区来标记像素,然后仅呈现为通过模具作的像素。更多信息
请参阅术语表
.有关模具缓冲区的详细信息,请参阅 SL-Stencil

财产 描述
参考 确定此着色器用于所有模具作的模具参考值。
读取掩码 确定此着色器在模具测试期间可以读取哪些位。
写掩码 确定此着色器在模具测试期间可以写入哪些位。
比较 确定此着色器在模具测试期间使用的比较函数。
    禁用 不执行模板测试。
    从不 模板测试永远不会通过。
     如果像素的深度值小于存储在深度缓冲区中的值,则模具测试通过。
    平等 如果像素的深度值等于存储在深度缓冲区中的值,则模具测试通过。
    不相等 如果像素的深度值小于或等于深度缓冲区值,则模具测试通过。这会将测试的像素呈现在其他像素的前面。
     如果像素的深度值大于存储在深度缓冲区中的值,则模具测试通过。
    不相等 如果像素的深度值不等于存储在深度缓冲区中的值,则模具测试通过。
    大平等 如果像素的深度值大于或等于存储在深度缓冲区中的值,则模具测试通过。
    总是 模具测试始终通过,并且 Unity 不会将像素的深度值与它存储在深度缓冲区中的值进行比较。
通过 确定此着色器在模具测试成功时执行的作。
有关此属性选项的详细信息,请参阅通过和失败选项
失败 确定此着色器在模具测试失败时执行的作。
有关此属性选项的详细信息,请参阅通过和失败选项
深度失败 确定此着色器在深度测试失败时执行的作。如果深度测试的“比较”值为“从不”“已禁用”,则此选项无效。
有关此属性选项的详细信息,请参阅通过和失败选项

通过和失败选项

选择 描述
保持 不更改模具缓冲区的当前内容。
将值 0 写入模具缓冲区。
取代 Reference 值写入缓冲区。
增量饱和 将值 1 添加到缓冲区中的当前值。值 255 仍为 255。
递减饱和 从缓冲区中的当前值中减去值 1。值 0 仍为 0。
转化 执行按位 NOT 运算。这意味着它否定缓冲区中当前值的所有位。
例如,十进制值 59 是二进制的 0011 1011。NOT作将每个位反转为 1100 0100,即十进制值 196。
增量包装 将值 1 添加到缓冲区中的当前值。值 255 变为 0。
递减包装 从缓冲区中的当前值中减去值 1。值 0 变为 255。
URP中着色器图的全屏主堆栈参考
在 Unity 中编程