Setiap kali Anda membangun proyek Anda, Editor Unity mengkompilasi semua naungan yang Anda buat: setiap varian shaderProgram yang berjalan di GPU. More info
Lihat di Glossary yang diperlukan, untuk setiap API grafis yang diperlukan.
Ketika Anda bekerja di Editor Unity, Editor tidak mengumpulkan semuanya di muka. Ini karena membandingkan setiap varian untuk setiap API grafis dapat mengambil waktu yang sangat lama.
Sebagai gantinya, Editor Unity melakukan ini:
Library/ShaderCache
.kompilasi Shader dilakukan menggunakan proses yang disebut UnityShaderCompiler
. Beberapa proses UnityShaderCompiler
dapat dimulai (hanya satu per inti CPU di mesin Anda), sehingga pada pemain membangun kompilasi warna waktu dapat dilakukan sejajar. Meskipun Editor tidak mengkompensasi naungan, proses kompiler tidak melakukan apa-apa dan tidak mengkonsumsi sumber daya komputer.
Folder cache naungan dapat menjadi cukup besar, jika Anda memiliki banyak naungan yang berubah sering. Aman untuk menghapus folder ini; itu hanya menyebabkan Unity untuk mengulangi varian naungan.
Pada pemain membangun waktu, semua varian naungan "tidak dikompilasi" dikompilasi, sehingga mereka berada dalam data game bahkan jika editor tidak terjadi untuk menggunakannya.
Platform yang berbeda menggunakan kompiler naungan yang berbeda untuk kompilasi program warna sebagai berikut:
Anda dapat mengkonfigurasi berbagai pengaturan kompilasi naungan menggunakan pragma directives.
kompilasi Shader melibatkan beberapa langkah. Salah satu langkah pertama adalah preprocessing. Selama langkah ini, program yang disebut preprocessor menyiapkan kode sumber naungan untuk kompiler.
Dalam versi sebelumnya Unity, Editor menggunakan preprocessor yang disediakan oleh compiler naungan untuk platform saat ini. Sekarang, Unity menggunakan preprocessor sendiri, juga disebut Caching Shader Preprocessor.
The Caching Shader Preprocessor dioptimalkan untuk impor dan kompilasi warna yang lebih cepat. Ini bekerja dengan caching data preprocessing menengah, sehingga Editor hanya perlu parse termasuk file ketika konten mereka berubah, yang membuat membandingkan beberapa varian dari naungan yang sama lebih efisien.
Untuk informasi rinci tentang perbedaan antara Preprocessor Caching Shader dan perilaku sebelumnya, lihat forum Unity: .
Sementara membangun permainan, Unity dapat mendeteksi bahwa beberapa varian naungan internal tidak digunakan oleh permainan, dan mengecualikan (“strip”) mereka dari membangun data. Untuk informasi lebih lanjut, lihat Varietas ShaderSebuah verion dari program naungan yang Unity menghasilkan sesuai dengan kombinasi khusus kata kunci naungan dan status mereka. Objek Shader dapat mengandung beberapa varian naungan. More info
Lihat di Glossary.