全屏主栈在图形设置窗口中具有多种属性,这些属性控制着全屏 着色器在 GPU 上运行的程序。 更多信息
参见 术语表 的整体外观。
属性 | 描述 |
---|---|
允许覆盖材质 | 在材质的“表面选项”中公开图形设置属性。注意:您只能公开在“图形设置”中启用的属性。如果您启用了这些属性之一,则无法在材质的“表面选项”下的 检查器一个 Unity 窗口,显示有关当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息 参见 术语表 中禁用它。 |
混合模式 | 指定 Unity 渲染全屏着色器时使用的混合模式。每个选项都有一个等效的 BlendMode 操作。注意:当您写入 Blit“位块传输”的简称。Blit 操作是将内存中的一块数据传输到另一块数据的过程。参见 术语表 着色器时,禁用此属性以避免不希望的效果。 |
Alpha | 使用着色器的 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 将其传递给深度缓冲区之前。此属性确定您可以在片段上下文中使用哪个深度块。启用“深度写入”时会出现此属性。 |
线性眼 | 将深度值转换为按世界空间缩放的值。此新值表示从相机的近平面到远平面的深度(以米为单位)。 |
线性01 | 使用 0 到 1 之间的线性深度值范围。 |
原始 | 不转换深度缓冲区值。将此设置与非线性深度值一起使用,或者当您直接从深度缓冲区采样深度值时使用。 |
启用模板 | 此属性使您可以控制所有模板字段。有关启用此属性后可用的选项的信息,请参阅 模板属性。 |
自定义编辑器 GUI | 接受继承 FullscreenShaderGUI 的 C# 类 的完整名称。有关如何使用自定义编辑器的信息,请参阅 ShaderLab:分配自定义编辑器。 |
使用“自定义”混合模式创建不同于 表面选项 中提供的混合模式的混合模式。要显示这些选项,请将“混合模式”设置为“自定义”。自定义混合模式属性指定用于此全屏着色器的 alpha 和颜色通道的混合操作。
在混合模式属性中,“Src”(源)是指全屏着色器本身。“Dst”(目标)是指 场景一个场景包含游戏环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您放置环境、障碍物和装饰物,本质上是以分段的方式设计和构建您的游戏。 更多信息
参见 术语表 相机原始输出,此着色器不会影响它。混合操作将源内容应用于目标内容以产生渲染结果。
有关混合方程的更多信息,请参阅 ShaderLab 命令:Blend。
确定 Unity 用于红色、绿色和蓝色通道 (RGB) 的混合方程。每个设置定义方程的一部分。
属性 | 描述 |
---|---|
源颜色 | 设置源颜色的混合模式。 |
目标颜色 | 设置目标颜色的混合模式。 |
颜色操作 | 确定在混合过程中如何组合源颜色和目标颜色。有关这些选项的信息,请参阅 ShaderLab 命令:BlendOp |
确定 Unity 用于 alpha 通道的混合方程。每个设置定义方程的一部分。
属性 | 描述 |
---|---|
源 | 设置源 alpha 的混合模式。有关这些选项的信息,请参阅 有效参数值。 |
目标 | 设置目标 alpha 的混合模式。有关这些选项的信息,请参阅 有效参数值。 |
Alpha 混合操作 | 确定在混合过程中如何组合源 alpha 和目标 alpha。有关这些选项的更多信息,请参阅 ShaderLab 命令:BlendOp |
这些属性会影响此全屏 Shader Graph 如何使用 模板缓冲区一个内存存储器,它保存每个像素的 8 位值。在 Unity 中,您可以使用模板缓冲区来标记像素,然后只渲染通过模板操作的像素。 更多信息
参见 术语表。有关模板缓冲区的更多信息,请参阅 SL-Stencil。
属性 | 描述 |
---|---|
参考 | 确定此着色器对所有模板操作使用的模板参考值。 |
读取掩码 | 确定此着色器在模板测试期间可以读取哪些位。 |
写入掩码 | 确定此着色器在模板测试期间可以写入哪些位。 |
比较 | 确定此着色器在模板测试期间使用的比较函数。 |
禁用 | 不执行模板测试。 |
从不 | 模板测试从不通过。 |
小于 | 如果像素的深度值小于存储在深度缓冲区中的值,则模板测试通过。 |
等于 | 如果像素的深度值等于存储在深度缓冲区中的值,则模板测试通过。 |
小于或等于 | 如果像素的深度值小于或等于深度缓冲区值,则模板测试通过。这将渲染测试像素,使其位于其他像素之前。 |
大于 | 如果像素的深度值大于存储在深度缓冲区中的值,则模板测试通过。 |
不等于 | 如果像素的深度值不等于存储在深度缓冲区中的值,则模板测试通过。 |
大于或等于 | 如果像素的深度值大于或等于存储在深度缓冲区中的值,则模板测试通过。 |
总是 | 模板测试始终通过,Unity 不会将像素的深度值与存储在深度缓冲区中的值进行比较。 |
通过 | 确定模板测试成功时此着色器执行的操作。 有关此属性选项的更多信息,请参阅 通过和失败选项。 |
失败 | 确定模板测试失败时此着色器执行的操作。 有关此属性选项的更多信息,请参阅 通过和失败选项。 |
深度失败 | 确定深度测试失败时此着色器执行的操作。如果深度测试“比较”值为“从不”或“禁用”,则此选项无效。 有关此属性选项的更多信息,请参阅 通过和失败选项。 |
选项 | 描述 |
---|---|
保持 | 不更改模板缓冲区的当前内容。 |
零 | 将值 0 写入模板缓冲区。 |
替换 | 将**引用**值写入缓冲区。 |
递增饱和 | 将值 1 加到缓冲区中的当前值。值 255 仍为 255。 |
递减饱和 | 从缓冲区中的当前值减去值 1。值 0 仍为 0。 |
反转 | 执行按位非运算。这意味着它将缓冲区中当前值的全部位取反。 例如,十进制值 59 在二进制中为 0011 1011。非运算将每个位反转为 1100 0100,这是十进制值 196。 |
递增循环 | 将值 1 加到缓冲区中的当前值。值 255 变成 0。 |
递减循环 | 从缓冲区中的当前值减去值 1。值 0 变成 255。 |