Saya sudah melakukan banyak proyek hobi kecil menggunakan DirectX 9 tapi sekarang saatnya untuk pindah ke DirectX 11 sekarang.
Saya punya buku Frank Luna'a tentang pemrograman 3D menggunakan DirectX 10 tetapi tidak ada pada DirectX 11. Saya percaya mereka sangat mirip, tetapi bertanya-tanya apakah ada yang bisa menyebutkan perbedaan utama pada tingkat kode yang saya harus perhatikan ( atau arahkan ke sumber yang ada).
Jawaban:
Dokumentasi SDK memiliki bagian tentang migrasi ke 11 yang mencakup dari 9 dan 10. Ada juga halaman fitur D3D11 .
Salah satu perubahan terbesar dalam hal bentuk API antara 10 dan 11 adalah bahwa 11 memindahkan banyak metode dari perangkat itu sendiri ke antarmuka baru yang disebut konteks perangkat (
ID3D11DeviceContext
khusus), untuk mendukung fitur multi-threading baru.Namun, begitu Anda menyadari perubahannya, cukup mudah untuk beradaptasi: di mana Anda akan dipanggil "
someDevice->Draw()
" Anda akan mendapatkan konteks langsung untuk perangkat dan menelepon "immediateContext->Draw()
."Perubahan besar lainnya adalah Efek API ditarik keluar dari inti dan membuat distribusi sumber independen yang harus Anda kompilasi dan tautkan sendiri. Anda juga dapat melihat beberapa antarmuka dan fungsi D3DX yang telah usang atau dihapus.
Di luar itu, ada beberapa parameter baru untuk beberapa fungsi dan beberapa bidang tambahan dalam struktur, dan sebagainya. Misalnya, objek deskripsi buffer di 11 memiliki
StructureByteStride
bidang tambahan yang tidak di 10 , dan pembuatan perangkat melibatkan pengalihan informasi tingkat fitur . Plus ada perubahan yang jelas dan disebutkan sebelumnya dalam nama antarmuka (10 diganti dengan 11).sumber
Saya pikir perbedaan utama adalah bahwa, di DX11 DXFont hilang, selain itu cukup banyak seperti yang dikatakan notabene. Anda harus baik-baik saja dengan buku DX10 itu. Saya menggunakan yang itu ketika pindah ke DX11 dan saya tidak punya masalah. Anda perlu pergi dan melihat msdn dari waktu ke waktu, ada beberapa perbedaan kecil di API dan beberapa tempat IIRC.
sumber
Tidak perlu berubah. Directx11 hanya menambahkan fitur baru. Anda hanya akan mengubah nomor dari ID3D10 ke ID3D11 dll.
DirectX11 menambahkan (jika tidak berbicara tentang HW Hess tessalation) Direct Compute: API untuk GPGPU, dengan koneksi excelent ke jalur pipa grafis (saya tidak bisa mengatakan ini tentang CUDA, atau openCL). Dan kemungkinan beberapa tekstur dan buffer RW pada pixel shader, yang membuka banyak kemungkinan baru.
sumber