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