Windows Vista ile, DirectX’in yeni versiyonu DirectX 10 tam olarak çıkıyor ve oldukça merakla bekleniyor. En azından ben, gelen haberlerden dolayı yeni versiyonu merakla bekliyorum. DirectX, Wındows tarafında grafik programlama için temel bir API olmuştu hep. Ancak nedense şu ana kadar çıkan hiç bir Windows sürümünde bu API’nin işletim sistemi ile entegrasyonu fazla görememiştik, çünkü yoktu. Ama DirectX 10 ve Vista oldukça entegre bir şekilde çalışacak haberleri ve çeşitli örnekler, grafiksel olarak güzel şeylerin bizi beklediğini gösteriyor.
Yeni DirectX versiyonunda öne çıkan asıl DirectX component’ı Direct3D olacak sanırım. Her ne kadar XInput(ex-DirectInput) veya ses ve görüntü componentinde(XACT) büyük değişiklikler olsa da Direct3D 10 sanırım en çok üzerinde konuşulan yeni DirectX component’ı.
Vista ile beraber olarak gelecek olan DirectX 10, farklı kavramlar ile karşımıza çıkacak.Bunlar Direct3D 9Ex(extended) ve Direct3D 10. Direct3D 9Ex, Direct3D 9 versiyonu ile çalışan uygulamalar için,Vista’da çalışabilmesi için DirectX 9’un biraz da genişletilmiş hali. Tabi ki eski DirectX 9 API’si de Vista için geçerli olacak.
Direct3D 10 ise, tamamen Vista için yeniden yapılmış bir API ve oldukça gelişmiş grafiksel arayüzleri kullanıcıya sunuyor.
Microsoft, Vista ile yeni Driver Modellerini donanım geliştiricilere hazırlıyordu. Bunlardan biri de WDDM diye kısaca adlandırılan Windows Vista Display Driver Model. Vista’da ki genel görüntü sisteminin üzerine oturtulduğu sürücü modeli demek sanırım biraz daha açıklayacı olur. Vista’da Direct3D 10, özelliklerini kullanabilmek için, ekran kartınızın bu tarz bir modeli desteklemesi lazım. Kısaca Vista’da Direct3D 10’u kullanabilmek için ekran kartınızın Direct3D 10 desteği olması gerekmekte.
WDDM ne sağlıyor peki? Neden böyle üzerinde durup da kafa karıştırıyorum? Hemen kısaca WDDM’in biraz derinlerine inmek istiyorum. Çünkü oldukça önemli bir konu aslında. WDDM ile memory allocation ve GPU’da ki multitasking olayları geliştirilmiş durumda, bu ne demek peki? Bu artık uygulamaların çok daha performanslı çalışacağı anlamına geliyor. Memory allocation’da geliştirilen yeni yöntemler ile artık uygulama yazarken kaynakları video memory’de mi kullanmak lazım,yoksa sistem memory’sinde mi gibi sorular kullanıcının üzerinden kalkıyor.Kaynağın nasıl kullanılacağına göre sistem gerekli allocation işlemini yapıyor.
Direct3D 10’daki en önemli gelişmelerden biri de graphics pipeline’da ki yenilikler. Önceki Direct3D sürümleriden önceden hazırlanmış ve tanımlanmış bazı algoritmalar vardı, fixed functions grapichs pipeline olarak adlandırılan sistem ile bellekteki kaynaklar bu algoritmalara göre gösteriliyordu.Pipeline’da(bunun da teknik olarak Türkçesini bilmiyorum iyi mi 🙂 ) yeni grafiksel işlemler yapmak oldukça zordu.(örnek Shader işlemleri) Pipeline’a eklenen yeni kısımlar, bazı şeyleri biraz daha kolaylaştırıyor.
Pipeline’daki değişikler sayesinde HLSL kullanılarak shader yazmak biraz daha kolay hal alıyor.
Peki bunlar Vista üzerinde nasıl çalışıyor? Aslında Vista tam olarak çıkmadan ve DirectX 10 destekleyen kartlar çıkmadan bunu söylemek baya zor. Ama çeşitli ekran görüntülerinden ve demolardan gördüğüm kadarıyla DirectX 10’nun Vista’ya çok renk katacağı çok açık.