ShaderLab: menetapkan editor kustom
ShaderLab: menetapkan tag ke SubShader

ShaderLab: mendefinisikan SubShader

Untuk mendefinisikan SubShader di ShaderLabBahasa Unity untuk mendefinisikan struktur benda-benda Shader. More info
Lihat di Glossary
, Anda menggunakan blok SubShader. Halaman ini berisi informasi tentang menggunakan blok SubShader.

Untuk informasi tentang bagaimana objek ShaderProgram yang berjalan di GPU. More info
Lihat di Glossary
bekerja, dan hubungan antara Shader objectsContoh kelas Shader, objek Shader adalah wadah untuk program naungan dan instruksi GPU, dan informasi yang memberi tahu Unity bagaimana menggunakannya. Gunakan mereka dengan bahan untuk menentukan penampilan adegan Anda. More info
Lihat di Glossary
, SubShaders dan Passes, lihat Perkenalan objek Shader.

Overview

Objek Shader mengandung satu atau lebih SubShaders. SubShaders memungkinkan Anda mendefinisikan pengaturan GPU yang berbeda dan program naungan untuk perangkat keras yang berbeda, render pipelinesRangkaian operasi yang mengambil isi dari Adegan, dan menampilkannya di layar. Unity memungkinkan Anda memilih dari pipa render yang dibangun sebelumnya, atau menulis sendiri. More info
Lihat di Glossary
, dan pengaturan runtime. Beberapa benda Shader hanya mengandung SubShader tunggal; yang lain mengandung beberapa SubShader untuk mendukung berbagai konfigurasi yang berbeda.

Kompatibilitas pipa Render

Feature name Built-in Render Pipeline Universal Render Pipeline (URP) High Definition Render Pipeline (HDRP) Custom SRP
ShaderLab: SubShader block Yes Yes Yes Yes

Menggunakan blok SubShader

Di ShaderLab, Anda mendefinisikan SubShader dengan menempatkan blok SubShader di dalam blok Shader.

Di dalam blok SubShader, Anda dapat:

Signature Function
SubShader
{
<optional: LOD>
<optional: tags>
<optional: commands>
<One or more Pass definitions>
}%
Defines a SubShader.

Anda dapat mendefinisikan sebanyak yang Anda sukai dalam SubShader.

Examples

Kode contoh ini menunjukkan sintaks untuk menciptakan objek Shader yang mengandung SubShader tunggal, yang pada gilirannya mengandung satu Pass.

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.
        }
    }
}
ShaderLab: menetapkan editor kustom
ShaderLab: menetapkan tag ke SubShader