Kadang-kadang, Anda ingin shaderProgram yang berjalan di GPU. More info
Lihat di Glossary yang sama untuk melakukan hal-hal yang berbeda dalam keadaan yang berbeda. Misalnya, Anda mungkin ingin mengkonfigurasi pengaturan yang berbeda untuk bahan yang berbeda, mendefinisikan fungsi untuk perangkat keras yang berbeda, atau secara dinamis mengubah perilaku naungan pada runtime. Anda mungkin juga ingin menghindari executing kode mahal komputasi ketika tidak diperlukan, seperti tekstur membaca, input simpul, interpolator, atau loop.
Anda dapat menggunakan kondisi untuk menentukan perilaku yang hanya dilakukan GPU dalam kondisi tertentu.
Untuk menggunakan kondisi di naungan Anda, Anda dapat menggunakan pendekatan berikut:
Tidak ada pendekatan "satu ukuran cocok untuk semua" untuk kondisional dalam naungan, dan Anda harus mempertimbangkan kelebihan dan kerugian dari setiap pendekatan untuk naungan yang diberikan, dalam proyek yang diberikan.
Ingat informasi berikut:
Secara umum, pendekatan terbaik adalah untuk meningkatkan kinerja aplikasi Anda dan dengan hati-hati mempertimbangkan kasus keputusan Anda. Misalnya, jika Anda mampu sedikit meningkatkan biaya GPU, mungkin yang terbaik untuk menggunakan percabangan dinamis untuk mencapai kinerja GPU yang baik dan mengurangi risiko memperkenalkan lebih banyak varian. Namun, jika kinerja GPU adalah perhatian utama bagi naungan ini dan Anda telah menyumbang biaya varian tambahan, Anda mungkin memilih untuk menggunakan varian.