DirectX 9 Özelikleri, Shader Üniteleri Ve Cg, Devam
DirectX 8'in ortaya çıkışıyla, son kullanıcılar için hazırlanan kartlarda kullanılan grafik yongalarında donanım destekli shading kullanılması ilk kez gündeme gelmişti. Ancak bunların yetenekleri hala son derece sınırlı ve karmaşık shader'lar hala gerçekleştirilemiyor. Ayrıca bunlarda sadece tam sayılar hesaplama işlemine tabi tutulabiliyorlar ve bu da bazı yerlerden doğruluktan sapmaya neden oluyor. Piksel shader'larda bu hatalar "noktacıklar" çeklinde tezahür ediyor. DirectX 9 ise, kayan nokta hesabına imkan tanınması gibi, shader'ların kapasitelerini ve yeteneklerini artırmaya yönelik birçok yenilik getiriyor. Bu yeniliklere döngüler, daha uzun programlama kodlarına izin verilmesi ve diğer bazı eklentiler de (bkz. "3D Özellikler" tablosu) dahil.
Dawn'ın saçına yakından bir bakış.
Ancak assembler benzeri bir komut seti kullanıyor olmaları nedeniyle bu shader'ları programlamak da her babayiğidin harcı değil; bu işte uzmanlaşmış olunmasını gerekiyor. 3 boyutlu ray tracing animasyon programları da, shader işlemleri için bu işe özgü programlama dillerine sahiptir. NVIDIA'nın bu iş için çoık benzer şekilde ortaya koyduğu dil ise, grafik için özelleşmiş C programlama dili olarak nitelendirilebilecek Cg. Dolayısıyla geliştiricilere, shader'larını genel geçerliliği olan yüksek seviye bir dille hazırlama imkanı doğuyor. Daha sonra Cg derleyicisi, gerekli makine dili kodlarını yapılan programa uygun biçimde hazırlayarak kart tarafından işlenebilir hale getiriyor. NVIDIA'nın Cg dili, Microsoft sertifikalı HLSL (High Level Shader Language - İleri Seviye Shader Dili) ile de tamamen uyumlu. Cg ayrıca eldeki iş için gerekli shader'ı, DirectX 8/9 veya OpenGL oluşundan bağımsız olarak hesaplayabilme yeteneğine sahip. Son olarak, Cg dili 3D ray tracing animasyon sektöründe benzer amaçla kullanılan dillere oldukça benziyor; dolayısıyla aralarındaki adaptasyon da son derece kolay.
Özet olarak, shader'ların fotogerçekçilikte ileri doğru atılmış büyük bir adım olduğu söylenebilir.
DirectX 9 ile bu konuda yapılan üç yenilik şöyle:
Pixel Shader 2.0: DX9, piksel shading motorunun gerçek anlamda programlanabilmesine olanak sağlıyor. Bu durum, GPU'larda işe uygun yordamsal shading'in ilk kez uygulanabilmesi anlamına geliyor.
Vertex Shader 2.0: DX9, vertex programlarının uzunluğunu ve esnekliğini artırmak yoluyla önceki DX sürümlerine göre vertex shader'ların gücünü daha ileri bir seviyeye taşıyor.
Yüksek doğruluklu kayan nokta renkleri: DX9, PC grafiklerinin geçmişini sınırlayan matematiksel doğruluk bariyerinin ötesine geçiyor ve 128-bit kayan nokta piksel renklendirmesiyle görsel kaliteyi artırıyor.
DirectX 9 ile gelecek özelliklere zaten ATi Radeon 9700 PRO incelememizde ayrıntılı olarak değinmiştik. GeForce FX tam DX9 desteği sunuyor, hatta bazı özellikleriyle bunun ötesine de geçiyor.