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.
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.
Feature name | Built-in Render Pipeline | Universal Render Pipeline (URP) | High Definition Render Pipeline (HDRP) | Custom SRP |
---|---|---|---|---|
ShaderLab: Pass block | Yes | Yes | Yes | Yes |
Untuk mendefinisikan Pass biasa di ShaderLab, Anda menempatkan blok Pass
di dalam blok SubShader
.
Di dalam blok Pass
, Anda dapat:
PackageRequirements
. Ini membuat Unity hanya menjalankan Pass jika paket yang diperlukan dipasang. SitemapShaderLab: menentukan persyaratan paket.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. |
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.
}
}
}