Walk-Throughs Kode D3D12
Bagian ini menyediakan kode untuk skenario sampel. Banyak panduan memberikan detail tentang pengodean apa yang diperlukan untuk ditambahkan ke sampel dasar, untuk menghindari pengulangan kode komponen dasar untuk setiap skenario.
Untuk komponen paling dasar, lihat bagian Membuat Komponen Direct3D 12 Dasar . Panduan berikut menjelaskan skenario yang lebih canggih.
Di bagian ini
Topik | Deskripsi |
---|---|
D2D menggunakan D3D11on12 |
Sampel D3D1211on12 menunjukkan cara merender konten D2D melalui konten D3D12 dengan berbagi sumber daya antara perangkat berbasis 11 dan perangkat berbasis 12. |
Simulasi gravitasi n-body multi-engine |
Sampel D3D12nBodyGravity menunjukkan cara melakukan pekerjaan komputasi secara asinkron. Sampel memutar sejumlah utas masing-masing dengan antrean perintah komputasi dan menjadwalkan pekerjaan komputasi pada GPU yang melakukan simulasi gravitasi n-body. Setiap utas beroperasi pada dua buffer yang penuh dengan posisi dan data kecepatan. Dengan setiap perulangan, shader komputasi membaca posisi saat ini dan data kecepatan dari satu buffer dan menulis iterasi berikutnya ke buffer lain. Ketika iterasi selesai, shader komputasi menukar buffer mana yang merupakan SRV untuk membaca data posisi/kecepatan dan yang merupakan UAV untuk menulis pembaruan posisi/kecepatan dengan mengubah status sumber daya pada setiap buffer. |
Kueri predikasi |
Sampel D3D12PredicationQueries menunjukkan oklusi pemusnahan menggunakan tumpukan dan predikasi kueri DirectX 12. Panduan ini menjelaskan kode tambahan yang diperlukan untuk memperluas sampel HelloConstBuffer untuk menangani kueri predikasi. |
Pengindeksan Dinamis menggunakan HLSL 5.1 |
Sampel D3D12DynamicIndexing menunjukkan beberapa fitur HLSL baru yang tersedia di Model Shader 5.1 - terutama pengindeksan dinamis dan array yang tidak terbatas - untuk merender jala yang sama beberapa kali, setiap kali merendernya dengan bahan yang dipilih secara dinamis. Dengan pengindeksan dinamis, shader sekarang dapat mengindeks ke dalam array tanpa mengetahui nilai indeks pada waktu kompilasi. Ketika dikombinasikan dengan array yang tidak terbatas, ini menambahkan tingkat tidak langsung dan fleksibilitas lain untuk penulis shader dan alur seni. |
Gambar tidak langsung dan pemisahan GPU |
Sampel D3D12ExecuteIndirect menunjukkan cara menggunakan perintah tidak langsung untuk menggambar konten. Ini juga menunjukkan bagaimana perintah ini dapat dimanipulasi pada GPU dalam shader komputasi sebelum dikeluarkan. |