版本:Unity 6 (6000.0)
语言:英语
创建着色器文件
在自定义着色器中添加着色器通道

在自定义着色器中添加子着色器

一个 着色器在 GPU 上运行的程序。 更多信息
参见 术语表
对象包含一个或多个子着色器。子着色器允许您为不同的硬件、渲染管线一系列操作,将场景的内容显示在屏幕上。Unity 允许您从预制渲染管线中选择,或编写自己的渲染管线。 更多信息
参见 术语表
和运行时设置定义不同的 GPU 设置和着色器程序。一些 着色器对象着色器类的实例,着色器对象是着色器程序和 GPU 指令的容器,以及告知 Unity 如何使用它们的的信息。将它们与材质一起使用来确定场景的外观。 更多信息
参见 术语表
仅包含一个子着色器;其他则包含多个子着色器以支持一系列不同的配置。

有关着色器对象的工作原理以及着色器对象、子着色器和通道之间的关系的信息,请参见 着色器对象简介

ShaderLabUnity 用于定义着色器对象结构的语言。 更多信息
参见 术语表
中,您可以通过将 SubShader 块放在 Shader 块内来定义子着色器。

示例

此示例代码演示了创建包含单个子着色器的着色器对象的语法,该子着色器又包含单个通道。

Shader "Examples/SinglePass"
{
    SubShader
    {
        Tags { "ExampleSubShaderTagKey" = "ExampleSubShaderTagValue" }
        LOD 100

         // ShaderLab commands that apply to the whole SubShader go here. 

        Pass
        {                
              Name "ExamplePassName"
              Tags { "ExamplePassTagKey" = "ExamplePassTagValue" }

              // ShaderLab commands that apply to this Pass go here.

              // HLSL code goes here.
        }
    }
}

其他资源

创建着色器文件
在自定义着色器中添加着色器通道