Pindah dari DirectX 10 ke DirectX 11

10

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).

JohnB
sumber
Saya mendengar bahwa DX10 sangat berbeda dan tidak kompatibel dengan DX9, sedangkan DX11 kompatibel dengan DX9.
jokoon
DX10 sangat berbeda dari DX9 tetapi DX11 sangat mirip dengan DX10, saya hanya ingin tahu apa perbedaannya. Anehnya, DX11 akan bekerja dengan perangkat keras DX9 tetapi DX10 tidak akan;)
JohnB

Jawaban:

15

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 ( ID3D11DeviceContextkhusus), 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 StructureByteStridebidang 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
Terima kasih, apa yang saya butuhkan. Saya mencari beberapa panduan resmi untuk apa yang telah berubah tetapi entah bagaimana tidak berhasil menemukannya. Terima kasih atas jawaban ini dan orang-orang lain yang telah meluangkan waktu untuk membantu dengan jawaban yang baik juga :)
JohnB
Itu lucu bagaimana seseorang melupakan hal itu dengan cepat. Saya terutama membenci kompilasi efek dan butuh beberapa hari untuk membuatnya bekerja. Tetapi saya tidak memasukkannya ke dalam jawaban saya ...
Notabene
Saya akan memposting ini sebagai pertanyaan tetapi menyadari bahwa jawaban Anda sudah mencakup sebagian besar kekhawatiran saya, meskipun saya ingin konfirmasi. Untuk seseorang yang hanya bekerja dengan DX9 tetapi ingin meningkatkan ilmunya, mengambil buku DX11 tidak hanya akan mengajarkan saya tentang DX11 (jelas) tetapi juga memberi saya pengetahuan yang cukup untuk bekerja dengan DX10 jika diperlukan?
David Gouveia
Ya, cukup banyak.
1

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.

dotminik
sumber
1

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.

Notabene
sumber