2-Direct3D DirectX'in en önemli bileşeni olan Direct3D'nin temelleri Ati tarafından atıldı. En radikal değişikliğin yaşandığı DirectX 8.1, ilk Xbox için Nvidia tarafından geliştirildi.
DirectX paketinin yıldızı, Direct3D kütüphanesidir. Bunun dışındaki tüm kütüphaneler benzer ya da daha iyi fonksiyonlarla diğer işletim sistemlerinde zaten mevcuttur. Ekran kartı üreticilerini milyar dolarlar sahibi yapan, oyunların müthiş kaliteye çıkmasını sağlayan kütüphane Direct3D'dir. Grafik kartlarıyla birlikte adı sıkça anılan vertex shaders, pixel shaders, bump mapping, mip mapping,texture mapping gibi teknikler, Direct3D olmadan kullanılamazlar.
Direct3D şu özellikleri sağlar: Shader’lar
Günümüzdeki oyunlar ve 3D programların motorları genel itibariyle shader konsepti üzerine üretilirler. Shader, poligon ve piksellerin nasıl kaplanması gerektiğini kontrol eden, GPU üzerinde çalıştırılan kod parçacıklarına verilen isimdir. Shader'ların programlanabilir olması, geliştiriciye uçsuz bucaksız görsel efekt yaratma imkanı da sunar.
*HLSL
*Assembly benzeri eski dilin yerini alıyor
*Modellerden görüntüye geçişin kontrolü
*Pixellerin ve Köşelerin işlenişi
*Yumuşak dokular, su ve tüyler
*Karmaşık ışıklar, parlak yüzeyler
Donanımdan Bağımsızlık Programları farklı donanım çakışmalarından korur. Böylece program çalıştırıldığı bilgisayardaki ekran kartı, ses kartı vb. özelliklerden bağımsız olarak çalışabilir
Donanım İçin Genel Sürücü Modeli
Diect3D’yi destekleyen tüm sürücülerin en azından belirlenmiş özellikleri kesinlikle destekleyeceğini garanti eder. Böylece bu belirlenmiş özellikleri kullanan programlar Direct3D’yi destekleyen donanıma sahip her bilgisayarda çalışır. Ayrıca Direct3D, ekran kartı üreticilerine kartlarının Direct3D’nin değişik özelliklerini kullanabilmesi için tarifler sağlar. Bu özellikleri kullanan programlarda büyük performans artışları gözlenir.
Programlara 3 Boyut Eklemeyi Kolaylaştırır Direct3D 3 boyutlu grafikler için standart algortimalar ve mekanizmalar sağladığı için, bu özellikleri kullanan programlar çok daha kolay ve hızlı üretilebilir.
Donanıma Açık Ulaşım
Bu Direct3D’nin en önemli özelliklerinden biridir. Bilgisayardaki donanım bir özelliği desteklemiyorsa, Direct3D bunu yazılım kullanarak destekler hale getirir. Program, çalışırken donanım özelliklerini tespit edebilir.
Oluşturma Motoru (Rendering Engine)
Oluşturma motoru, sahnenin 3 boyutlu nokta bazında tanımlanması, değişik yüzey desenlerinin, ışıkların, kameranın özelliklerinin tanımlanması, oluşturulmaya hazır hale getirilmesi işlerinden sorumludur.
Penceresiz Çalışma
Direct3D'nin bir başka fonksiyonu, programların penceresiz çalışabilmesini sağlamasıdır.
Özetlersek;
*Başlatma
*Makinenin özelliklerini öğren
*Uygun modülleri çalıştır
*2D
*Dörtlüler
*Nokta sprite’lar
*Text ve parçacık efektleri
*Primitifler
*Dokular
*Işıklandırma
3-DirectInput Mouse, Joystick, Klavye gibi giriş aygıtlarını desteklemek için kullanılmaktadır.
4-DirectPlay Internet ya da LAN üzerinden oynanan oyunlara ağ desteği sağlamaktadır. Aslında bu ölü bir kütüphane; Microsoft uzun süredir güncellemiyor
Desteklenen bağlantı modelleri
*Peer-to-peer
*Sunucu-istemci
*Kullanılabilen protokoller
*TCP/IP
*IPX
*Bluetooth
*Seri bağlantı
*Doğrudan modem-modem bağlantıları
5-DirectSound ve DirectSound 3D Ses kartına direkt erişim sağlar
DirectSound, bildiğimiz klasik mp3 Ya da wav formatındaki ses dosyalarını çalıyor. DirectSound 3D ise, çevresel ses efektlerine -EAX gibi- destek vermekte.
Özellikleri
*“wav” formatında ses ve müzik
*Aynı anda birden fazla sesi çalmak
*Sesler için öncelik tanımlası ve kaynak yönetimi
*3 boyutlu dünyada yerleşik sesler
*Eko ve koro gibi efektler
*Ses kayıdı
*Alternatifler
*SDL Sound
*Java Sound API
*Win32
DirectX Alternatifleri *Windows soketleri (DirectPlay)
*MFC/ .NET klavye ve mouse desteği (DirectInput)
*Win32 API
*Java Sınıfları
*SDL
*Diğer Grafik paketleri
*GDI/GDI+ (2D)
*SDL (2D)
*OpenGL (3D)
*SDL’nin özellikleri
*Kolay kullanım
*Çok geniş platform desteği
*(Linux, Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, QNX,
*Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS, SymbianOS)
*Windows da DirectX/MFC/ATL/.NET API’leri ile çakışan bir çok özellik
Ağ ve ses özellikleri DirectPlay ve DirectSound kadar güçlü değil
Oyun geliştiriciler olabildiğince düşük DirectX sürümlerini kullanarak daha geniş bir alıcı kitlesini kapsayabiliyorlar. Bir tarayıcı modelinin ne kadar hesaplama gücü gerektireceği her şeyden önce karmaşıklığına bağlı. Son olarak tüm kartların geriye doğru tam uyumlu olduğunu belirtelim.
Tarayıcıları sürekli kullanan ilk oyun FarCry diyebiliriz. DirectX 9 sağolsun ki, yüzeyler son derece gerçekçi, aydınlatma değişikliklerine güzel yanıt veriyor ve gölgeler inandırıcı geliyor. Oyundaki ortam gerçekten yaşam bulmuş.
Microsoft'un şu anki 3 boyut API'si DirectX 9, tarayıcı programlamada önceki DirectX 8'den daha fazla özgürlük sunuyor ve daha uzun ve çokça karmaşık tarayıcılar yazılmasına izin veriyor. Aynı zamanda kayar-nokta veri modeliyle de (floating-point data model) ayrıntı hesapları çok daha kesin yapılabiliyor.
DirectX 10; New !!!Uzun bir zamandır DX10 ve onun DX9'e göre sunduğu artıları dinleyip duruyoruz. Şimdiye kadar geliştirme aşamasındaki oyunların ekran görüntüleriyle kendimizi tatmin ettik.
Aşağıda da bahsedeceğimiz gibi DX10'daki yenilikler birleşik mimari, tarayıcıların sunduğu güçten daha verimli bir şekilde yararlanabiliyor.
Teknik gelişmeler? Peki, ekran kartlarında köklü değişikliğe neden olacak DirectX 10 nerede fark yaratıyor. Bunun cevabı çok kolay. DirectX9 ile birlikte çalışan ekran kartlarında bir Vertex Shader bir de Pixel Shader unitesi yer alıyordu. Grafik ağırlıklı uygulamalarda Vertex Shader tavana vuruyordu ve Pixel shader veri iletim yolu boş kalıyordu. Benzer bir durum oyunlarda görülüyordu ve Pixel Shader yolu tam kapasite çalışıyordu.
Orjinal Boyutunda Açmak İçin ( 640x477 ve %3$sKB ) Buraya Tıklayın -Unified Shader Model. Bu sayede, artık pixel ya da vertex shader için ayrı ayrı sanal makineler oluşturulmuyor; hepsi aynı alan içinde işlenebilicek.
-Maximum doku boyutu artık 8192x8192. DirectX'de bu rakam maksimum 4096x4096.
-Bellek arayüzü.Üst model ekran kartlarında önceden 256 bit olan bellek arayüzü yeni çıkan directx10 destekli ekran kartlarında 320 bit ve 384 bit değerlerine yükseltildi.
-DirectX 10, dizüstü bilgisayarlarda da kullanılabilecek.
-Shader Model 4 geliyor; elde edilecek kazanımları ise ancak oyunları görmeye başladığımızda değerlendirebileceğiz.
-HLSL (High Level Shader Language). Bunun ilk adımını Nvidia yıllar önce Cg ile atmıştı; ancak aynı dönemlerde Ati'de önemli atılımlar yaptığından, Nvidia'ya has Cg kabul görmemişti. Aslında bunun kullanıcıya sağlayacağı fayda dolaylı olacak; zira HLSL görüntü kalitesi ya da performansı artıran Bir şey değil; sadece kartların daha kolay programlanmasını sağlayacak.
-Geometry Shader geliyor. DirectX 10’un gelmesi ile birlikte yeni bir veri yolu daha eklendi. Geometry Shader olarak adlandırılan bu yeni veri yol performansı daha da arttırmaya yönelik özellikle Motion Blur gibi efektlerde çok işe yaradığından bahsetmiş.
Bitmedi. DirectX 10 ile birlikte veri yolları ayrı olmaktan çok birleşik bir hat üzerinden çalıştırılacak. Bunun avantajı bu sayede aynı anda kalite ve performansı arttırılabilecek.
DirectX 9 destekli ekran kartları işte bu yüzden Direct 10 desteklemeyecekler. Bunun sayesinde de DirectX 10’a geçmek isteyen kişiler yeni ekran kartları satın almak zorunda kalacaklar.
Sonuç; Oyunlar şu anda bir dönemeçteler ve DX10 destekli donanımlar sadece yeni oyunları oynatmakla kalmıyorlar şu anki oyunları da eskiye göre daha kaliteli oynamanıza izin veriyorlar.
Peki, bunların standart kullanıcılar açısından anlamı ne? Kısaca söylemek gerekirse sistem nesneleri daha hızlı ve verimli bir şekilde yaratımlayabilecek (render). Oyunlar açısından bakıldığında saniyede daha fazla kare sayısı anlamına geldiğinden bu son derece faydalı bir şey. Tabi ki bu durum geliştiricilerinin oyun sahnelerine daha fazla ayrıntı eklemesine kadar geçerli olacak.
İster daha fazla ayrıntı ister daha fazla kare hızı olsun sonuç olarak DX10 sayesinde donanımlarımızdan daha fazla verim alabileceğiz. Ayrıca geometri tarayıcıları, değişen her karede duruma göre nesnelerin eğilip bükülmesini sağlayarak yaratımlama (render) sürecine yardım edecekler. Bazı nesneler sadece tek bir tepeden (vertex) yaratılabilecek. Geometri tarayıcıları fizik kurallarına uymak zorunda değiller çünkü veriyi sıfırdan yaratıp tarayıcı programın isteğine bağlı olarak da tamamen yok edebilme yeteneğine sahip olacaklar. Bu özellik sayesinde yaratımlama sürecinin hızlandırılması planlanıyor. Tepe (vertex) ve noktacık (pixel) tarayıcılarından birkaç kez geçerek üretilebilen bazı nesneler tepe tarayıcılara hiç gitmeden yaratımlanabilecekler. Ayrıca bir sonraki karede aynı nesne geometri tarayıcısı tarafından tekrar çağırılıp yeniden şekillendirilebilecek.
Gerek CPU'lar gerek Windows Vistanın ve ekran kartlarının hızla yeni ufuklara ilerlediğini açık bir şekilde görebiliyoruz. Yeni donanım ve yazılımlar çoktan deneme aşamasına getirildi bile. İşlerin hangi yönde ilerleyeceğini veya yeniliklerin bizlere neler sunacağını görmek için sadece bir iki ay beklememiz gerekiyor.
alıntıdır..