Forward rendering adalah proses penghitungan nilai cahaya untuk sebuah fragmen permukaan langsung dari input geometri dan informasi pencahayaan. Pembagian rendering yang ditangguhkan memroses menjadi dua langkah: pertama menghasilkan buffer layar-ruang yang berisi properti material (buffer geometri, atau buffer-G) yang dibangun dengan rasterisasi input geometri, dan kedua menghasilkan nilai cahaya untuk setiap piksel dengan menggabungkan G- penyangga dengan informasi pencahayaan.
Render yang ditangguhkan sering disajikan sebagai optimisasi render maju. Salah satu penjelasannya adalah bahwa pencahayaan cukup mahal dan jika Anda memiliki overdraw apa pun maka Anda adalah piksel pencahayaan yang tidak akan pernah terlihat di layar, sedangkan jika Anda menyimpan properti material ke dalam buffer-G dan cahaya setelahnya, Anda hanya menyalakan piksel yang akan sebenarnya muncul di layar. Apakah ini sebenarnya keuntungan dari ditangguhkan, mengingat bahwa Anda juga dapat melakukan pra-lintasan kedalaman dan kemudian melakukan lintasan render maju dengan uji kedalaman yang disetel ke D3D11_COMPARISON_EQUAL
atau GL_EQUAL
atau yang setara?
Render yang ditangguhkan juga memiliki potensi untuk menjadwalkan lebih baik pada GPU. Membagi satu warp / wavefront besar menjadi muka gelombang geometri yang lebih kecil dan kemudian muka gelombang pencahayaan yang lebih kecil kemudian meningkatkan hunian (lebih banyak muka gelombang dalam penerbangan secara bersamaan). Tetapi Anda juga berakhir dengan penggunaan bandwidth yang lebih banyak (menuliskan sejumlah besar saluran ke buffer-G, kemudian membacanya kembali saat pencahayaan). Jelas spesifik di sini sangat bergantung pada GPU Anda, tetapi apa prinsip umumnya?
Apakah ada pertimbangan kinerja praktis lain saat memutuskan antara pengalihan maju dan ditangguhkan? (Asumsikan bahwa kita dapat menggunakan variasi dari setiap teknik jika perlu: yaitu kita dapat membandingkan ubin maju dengan ubin yang ditangguhkan juga.)
sumber