DirectX 10'dan DirectX 11'e geçiş


10

DirectX 9 kullanarak makul sayıda küçük hobi projesi yaptım ama şimdi DirectX 11'e geçme zamanı.

DirectX 10 kullanarak 3D programlama üzerine Frank Luna'a kitabım var ama DirectX 11'de hiçbir şey yok. Oldukça benzer olduklarına inanıyorum, ancak herkesin bilmem gereken bir kod düzeyinde ana farklılıkları numaralandırabileceğini merak ediyordum ( veya mevcut bir kaynağı göster).



DX10'un gerçekten farklı olduğunu ve DX9 ile geriye dönük uyumlu olmadığını, DX11'in DX9 ile geriye dönük uyumlu olduğunu duydum.
Ocak

DX10, DX9'dan oldukça farklı ancak DX11, DX10'a oldukça benziyor, sadece farklılıkların ne olduğunu bilmek istedim. Tuhaf bir şekilde, DX11 DX9 donanımı ile çalışacak ancak DX10 çalışmaz;)
JohnB

Yanıtlar:


15

SDK belgelerinde, hem 9 hem de 10'dan gelen 11'e geçişle ilgili bir bölüm vardır. D3D11 özellikler sayfası da vardır .

API şekli açısından 10 ile 11 arasındaki en büyük değişikliklerden biri, 11'in bir dizi yöntemi ID3D11DeviceContextyeni çoklu iş parçacığı özelliklerini desteklemek için cihazdan cihaz içeriği ( özellikle) adı verilen yeni bir arayüze taşımasıdır.

Değişikliğin farkına vardığınızda, buna uyum sağlamak oldukça kolaydır: 10'da " someDevice->Draw()" olarak adlandırılacaksınız , bunun yerine cihaz için anında bağlam elde edip "çağırın" immediateContext->Draw().

Diğer büyük değişiklik, Effects API'sının çekirdeğinden çıkarılması ve derleyip kendiniz bağlamanız gereken bağımsız bir kaynak dağıtımı yapmasıdır. Ayrıca, kullanımdan kaldırılan veya kaldırılan bazı D3DX arabirimlerini ve işlevlerini de görebilirsiniz.

Bunun ötesinde, bazı fonksiyonlar için bir avuç yeni parametre ve yapılarda bir avuç ekstra alan vardır. Örneğin, 11'deki arabellek açıklama nesnesinin 10'da olmayan fazladan bir StructureByteStridealanı vardır ve aygıt oluşturma, özellik düzeyi bilgilerinin iletilmesini içerir . Ayrıca arayüz adlarında bariz ve yukarıda belirtilen değişiklikler var (10'lar 11'lerle değiştirildi).


Teşekkürler, tam ihtiyacım olan şey. Neyin değiştiğine dair resmi bir rehber aradım ama bir şekilde onu bulamadı. Bu cevap ve iyi cevaplar almak için zaman
ayıran

Bu şeyleri hızlı bir şekilde unutmak komik. Özellikle efekt derlemesinden nefret ettim ve çalışması birkaç günümü aldı. Ama
cevabıma

Bunu bir soru olarak gönderecektim, ancak bazı onaylar istememize rağmen cevabınızın zaten endişelerimin çoğunu kapsadığını fark ettim. Sadece DX9 ile çalışan, ancak bilgisini yükseltmek isteyen biri için, bir DX11 kitabı almak bana sadece DX11 hakkında bilgi vermekle kalmayacak, aynı zamanda gerekirse DX10 ile çalışmak için yeterli bilgiyi verecek mi?
David Gouveia

Evet oldukça.

1

Bence asıl fark, DX11'de DXFont'un gittiğinin dışında, notabene'nin dediği gibi. Bu DX10 kitabı ile iyi olmalısın. Bunu DX11'e geçerken kullandım ve hiç problem yaşamadım. Zaman zaman msdn'ye gitmeniz ve bakmanız gerekecek, API'de bazı yerlerde IIRC gibi bazı küçük farklılıklar var.


1

Değişime gerek kalmayacak. Directx11 yalnızca yeni özellikler ekler. Sadece ID3D10 yerine ID3D11 vb. Sayıları değiştireceksiniz.


DirectX11 (hiper HW tessalasyonundan bahsetmiyorsa) Doğrudan Hesaplama: Grafik boru hattına mükemmel bağlantı ile GPGPU için API (bunu CUDA veya openCL hakkında söyleyemem). Ve bir piksel gölgelendiricide birçok RW dokusu ve tamponu olasılığı, birçok yeni olasılık açar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.