Version: 6000.3
语言: 中文
内置渲染管线中的表面着色器和渲染路径
在内置渲染管线的表面着色器中设置光照模型

在内置渲染管线中创建表面着色器

按着这些次序:

  1. 添加一个CGPROGRAM块添加到SubShader着色器在 GPU 上运行的程序。更多信息
    请参阅术语表
    代码,而不是Pass块。Unity 在编译表面着色器内置渲染管线编写着色器的简化方法。更多信息
    请参阅术语表
    .
  2. 添加一个#pragma surface [surfaceFunction] [lightModel]命令。

表面着色器与HLSLPROGRAM块,但您可以在CGPROGRAM块。有关更多信息,请参阅 ShaderLab 参考中的着色器代码块

Shader "Example/Diffuse Simple" {
  SubShader {
    Tags { "RenderType" = "Opaque" }

    CGPROGRAM

    #pragma surface surf Lambert

    struct Input {
        float4 color : COLOR;
    };

    void surf (Input IN, inout SurfaceOutput o) {
        o.Albedo = 1;
    }

    ENDCG
  }
  Fallback "Diffuse"
}

下面是设置了两个光源的模型上的样子:

基本表面着色器示例。
基本表面着色器示例。
内置渲染管线中的表面着色器和渲染路径
在内置渲染管线的表面着色器中设置光照模型