Tampilan Urutan Rasterizer
Tampilan berurutan rasterizer (ROV) memungkinkan kode shader piksel menandai pengikatan UAV dengan deklarasi yang mengubah persyaratan normal untuk urutan hasil alur grafis untuk UAV. Ini memungkinkan algoritma Order Independent Transparency (OIT) berfungsi, yang memberikan hasil penyajian yang jauh lebih baik ketika beberapa objek transparan sejalan satu sama lain dalam tampilan.
Gambaran Umum
Alur grafis standar mungkin mengalami masalah dalam menyusun beberapa tekstur yang berisi transparansi dengan benar. Objek seperti pagar kawat, asap, api, vegetasi, dan kaca berwarna menggunakan transparansi untuk mendapatkan efek yang diinginkan. Masalah muncul ketika beberapa tekstur yang mengandung transparansi sejalan satu sama lain (asap di depan pagar di depan bangunan kaca yang berisi vegetasi, sebagai contoh). Rasterizer ordered views (ROV) memungkinkan algoritma OIT yang mendasar untuk menggunakan fitur perangkat keras untuk mencoba menyelesaikan urutan transparansi dengan benar. Transparansi ditangani oleh shader piksel.
Tampilan berurutan rasterizer (ROV) memungkinkan kode shader piksel menandai pengikatan UAV dengan deklarasi yang mengubah persyaratan normal untuk urutan hasil alur grafis untuk UAV.
ROV menjamin urutan akses UAV untuk setiap sepasang pemanggilan piksel shader yang tumpang tindih. Dalam hal ini "tumpang tindih" berarti bahwa pemanggilan dihasilkan oleh panggilan gambar yang sama dan berbagi koordinat piksel yang sama saat dalam mode eksekusi frekuensi piksel, dan piksel dan koordinat sampel yang sama dalam mode frekuensi sampel.
Urutan di mana akses ROV yang tumpang tindih dari pemanggilan piksel shader dijalankan identik dengan urutan pengiriman geometri. Ini berarti bahwa, untuk pemanggilan shader piksel yang tumpang tindih, penulisan ROV yang dilakukan oleh pemanggilan shader piksel harus tersedia untuk dibaca oleh pemanggilan berikutnya dan tidak boleh memengaruhi bacaan oleh pemanggilan sebelumnya. Pembacaan ROV yang dilakukan oleh pemanggilan shader piksel harus mencerminkan tulisan dengan pemanggilan sebelumnya dan tidak boleh mencerminkan tulisan dengan pemanggilan berikutnya. Ini penting untuk UAV karena secara eksplisit dihilangkan dari jaminan output-invariance yang biasanya ditetapkan oleh urutan tetap hasil alur grafis.
Detail implementasi
Tampilan urutan rasterizer (ROV) dideklarasikan dengan objek High Level Shader Language (HLSL) baru berikut, dan hanya tersedia untuk shader piksel:
RasterizerOrderedBuffer
RasterizerOrderedByteAddressBuffer
RasterizerOrderedStructuredBuffer
RasterizerOrderedTexture1D
RasterizerOrderedTexture1DArray
RasterizerOrderedTexture2D
RasterizerOrderedTexture2DArray
RasterizerOrderedTexture3D
Gunakan objek ini dengan cara yang sama seperti objek UAV lainnya (seperti RWBuffer
dll.).
Ringkasan API
ROV adalah konstruksi khusus HLSL yang menerapkan semantik perilaku yang berbeda untuk UAV. Semua API yang relevan dengan UAV juga relevan dengan ROV. Perhatikan bahwa metode, struktur, dan kelas pembantu berikut mereferensikan rasterizer:
- D3D11_RASTERIZER_DESC2 : struktur yang memegang deskripsi rasterizer, mencatat kelas pembantu CD3D12_RASTERIZER_DESC2 untuk membuat deskripsi rasterizer.
-
D3D11_FEATURE_DATA_D3D11_OPTIONS2 : struktur yang memegang boolean
ROVsSupported
, menunjukkan dukungan. - ID3D11Device::CheckFeatureSupport : metode untuk mengakses fitur yang didukung.
Topik terkait