ShaderLab: menetapkan nilai LOD ke SubShader
ShaderLab: menetapkan nama ke Pass

ShaderLab: mendefinisikan Pass

Untuk mendefinisikan Pass di ShaderLabBahasa Unity untuk mendefinisikan struktur benda-benda Shader. More info
Lihat di Glossary
, gunakan blok Pass. Halaman ini berisi informasi tentang menggunakan blok Pass. 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 Dasar objek Shader.

Overview

A Pass adalah elemen fundamental dari objek Shader. Ini berisi instruksi untuk mengatur keadaan GPU, dan program naungan yang berjalan di GPU.

Objek Shader sederhana mungkin hanya mengandung satu Pass, tetapi lebih banyak warna yang kompleks dapat mengandung beberapa Passes. Anda dapat menggunakan Passes terpisah untuk menentukan bagian dari objek Shader Anda yang bekerja berbeda; misalnya, bagian yang memerlukan perubahan pada state render, program naungan yang berbeda, atau tag Pass LightMode yang berbeda.

Note: Dalam render pipa berdasarkan Render PipelineRangkaian 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
Alkitab, Anda dapat menggunakan RenderStateBlock untuk mengubah state render pada GPU, tanpa memerlukan Pass terpisah.

Kompatibilitas pipa Render

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

Menggunakan blok Pass

Untuk mendefinisikan Pass biasa di ShaderLab, Anda menempatkan blok Pass di dalam blok SubShader.

Di dalam blok Pass, Anda dapat:

Anda juga dapat mendefinisikan dua jenis khusus Pass, menggunakan perintah UsePass atau GrabPass. Untuk informasi pada perintah tersebut, lihat Perintah ShaderLab: Login atau Perintah ShaderLab: Login.

Signature Function
Pass
{
<optional: name>
<optional: tags>
<optional: commands>
<optional: shader code>
}%
Tentukan Pass.

Examples

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

Shader "Examples/SinglePass"
{
    SubShader
    {
        Pass
        {                
              Name "ExamplePassName"
              Tags { "ExampleTagKey" = "ExampleTagValue" }

              // ShaderLab commands go here.

              // HLSL code goes here.
        }
    }
}
ShaderLab: menetapkan nilai LOD ke SubShader
ShaderLab: menetapkan nama ke Pass