Variable Rate Shading adalah fitur perangkat keras yang diperkenalkan dengan GPU NVIDIA Turing dan diekspos melalui ekstensi GL_NV_shading_rate_image.
Variable Rate Shading memungkinkan perangkat keras untuk membuat bayangan primitif pada frekuensi yang berbeda dari kecepatan rasterisasi. Pengguna dapat memilih di antara berbagai tingkat, termasuk tanpa bayangan, resolusi normal, resolusi setengah, dan resolusi seperempat. Jika rendering menggunakan multi sampling, tingkat bayangan dapat ditingkatkan untuk memungkinkan beberapa sampel dalam primitif yang sama untuk diberi bayangan. Ini dapat mengurangi aliasing yang dihasilkan shader. Tingkat bayangan ditentukan untuk blok piksel dengan tingkat konstan dalam setiap blok.
Sampel memungkinkan pengguna memilih tingkat bayangan yang telah ditentukan sebelumnya. Mencentang "visualizeShadingRate" akan menampilkan gambar berkode warna dari tingkat bayangan per piksel.
Dimungkinkan untuk memvariasikan tingkat bayangan per segitiga di shader titik; dalam sampel, semua objek hijau dipilih untuk tingkat bayangan penuh. Ini dapat dinonaktifkan dari menu.
Karena pengurangan tingkat bayangan tidak terlalu kentara, sampel memungkinkan rendering pada resolusi yang lebih rendah dan "memperbesar" melalui pengaturan "penskalaan framebuffer".
Idealnya, kloning repositori ini dan repositori nvpro-samples menarik lainnya ke dalam subdirektori umum. Anda akan selalu membutuhkan nvpro_core. Nvpro_core dicari sebagai subdirektori sampel, atau satu direktori ke atas.
Jika Anda tertarik pada beberapa sampel, Anda dapat menggunakan build_all CMake sebagai titik masuk; itu juga akan memberi Anda opsi untuk mengaktifkan/menonaktifkan masing-masing sampel saat membuat solusi.