Saya mencoba menerapkan grafik adegan dan di semua artikel yang saya temui ada pembicaraan tentang penyortiran objek. Jadi, Anda akan mengurutkan objek Anda dengan "bahan" misalnya. Sekarang sampai saya duduk dan mulai menerapkannya, saya agak menganggap ini sebagai hal yang wajar, karena itu masuk akal. Tapi sekarang saya bertanya-tanya, apa sebenarnya penyortiran berubah?
Di mesin saya, saya memiliki manajer untuk UBO, saya menggunakannya untuk menyimpan data yang akan dibagikan antar program, pada saat itu hanya melibatkan waktu, kamera dan matriks dan lampu proyeksi (saya tidak khawatir tentang pengelolaan lampu yang mempengaruhi yang menolak ATM).
Sekarang untuk setiap model saya harus mengubah model ke seragam matriks dunia, tidak ada penyortiran yang akan mengubah itu. Jadi apakah lompatan dari mengubah matriks ini ke juga menetapkan bahan untuk setiap objek yang buruk?
Saya samar-samar ingat membaca di suatu tempat bahwa setiap kali Anda mengubah sesuatu di dalam pipa, itu harus memerah dan itu dapat menyebabkan masalah kinerja. Tapi untuk setiap panggilan gambar saya membuat model ke matriks dunia, jadi apa artinya membuat khawatir tentang hal ini?
BTW apakah ada informasi tentang apakah mengganti seragam dan memanggil glBufferSubData lebih (atau kurang) mahal.
sumber
Jawaban:
Anda pasti ingin menyortir untuk mengumpulkan bahan. Jika Anda bisa, Anda juga bisa menggunakan instancing untuk menggabungkan geometri (misalnya Jika Anda memiliki nomor X objek yang sama).
Masih ada nilai dalam menyortir berdasarkan kedalaman juga. Anda harus mengurutkan kembali ke depan untuk objek transparan (mengabaikan beberapa teknik canggih yang menghilangkan kebutuhan itu, dalam keadaan terbatas).
Ada juga nilai dalam menyortir objek buram dari depan ke belakang, karena memungkinkan awal-Z untuk sangat mengurangi fragmen shader di atas layar adegan Anda.
sumber
Menyortir objek murni berdasarkan kedalaman memiliki nilai yang sangat besar, terutama pada arsitektur penguraian bining atau ubin.
Urutkan padatan dari depan ke belakang, transparansi dari belakang ke depan.
Saat melakukan rendering, hal-hal yang paling dekat dengan kamera dan solid akan di-render terlebih dahulu, dan hal lain yang menempati ruang yang sama akan ditolak oleh pemeriksaan buffer-z awal.
Jika arsitektur grafis memiliki semacam buffer z hirarki atau resolusi rendah, geometri dapat dimusnahkan bahkan sebelum apa pun diberikan.
sumber