Sayfalar

9 Mayıs 2010 Pazar

DirectX Nedir?Nasıl Çalışır?

DirectX nedir? Ve neden önemlidir ?

Ekran kartı seçimlerinde DirectX"in hangi versiyonu desteklediği önemli bir ayrıntıdır.  Oyunların çıkış tarihinden itibaren arayüzlerinde olan değişimleri oyun meraklısı olan kullanıcılar daha iyi bilirler. Eskiden çok sıradan, gerçeklikten uzak çizgi film karakterlerinden bile kalitesiz arayüzlerle oynadığımız oyunlardan sonra, şimdiki gibi her defasında gerçek görüntü ve ses elde etmemize  daha da yaklaşan stratejik oyunlar piyasaya çıktı. Hala oyunlarda gerçek ses, görüntü, zeka elde edilmemiş olsada daha iyi bir aşamaya gelinmek için çalışmalar tüm hızı ile devam etmekte.Daha iyi görsel ve ses öğeleri olan oyunların bize sunulması için gereken sistemlerden biri de DirectX"tir. 
İlk oynadığınız dos oyunlarını hatırlayın, ufak toplar, ufacık adamlar ve sıradan bir öykü...  Herhangi bir programa gerek kalmadan ekran kartına ve joystik"e ulaşan basit olarak hazırlanmış oyunlar. Ama Win 95 işletim sisteminin çıkması ile oyun üreticilerini çıkmaza sokan korumalı bellek yönetimi, oyunlarda direk belleğe ulaşılmasında sorunlar yaşanmasına neden oldu. Microsoft bu aşamada birçok kod yazarının işini de kolaylaştıracak DirectX sistemini geliştirdi. Bu sistem ile artık oyunlarda direk belleğe erişim gerekli değildi.


Ekran kartlarına bakacak olursak özellikleri büyük bir hızla gelişip yenileniyor. Her ekran kartı için program yazmak masraflı ve zaman alacak bir iş olacağı için, tüm ekran kartlarının kulllanabileceği bir uygulama gerekliliği DirectX"in oluşturulmasının nedenlerinden biri idi. Windows programlarına donanımları ile hızlandırılmış yüksek performanslı çoklu ortam desteği sunan API" lerden oluşan DirectX , uygulamalarla donanımların anlaşıp programın çalıştırılması mantığı ile hareket eder. Kullanılacak programın kodları, API"ye aktarılır ve bu kodlar ekran kartının kullanabileceği şekle çevrilip ekran kartına ulaşır. En sık kullanılan API"ler, OpenGL ve Direct3D"dir.


Genel olarak DirectX, oyunlar ve uygulamalar ile grafik kartınızı çalıştıran driverler, ses ve diğer bilgisayar donanımları arasındaki bağlantıyı sağlayan bir arayüzdür. Bir oyunda gerçekçi efektler, sesler elde etmek için görüntü ve ses kartınızın yeteneklerine ulaşmamızı sağlar. DirectX, donanıma direk ulaşarak oyunlarda ve uygulamalarda (video playback, capture, TV görüntüleme, joystick ve Mouse ara yüzleri, çoklu oyunlar
) daha hızlı olarak sistemin çalışmasını sağlar. 

DirectX"in sadece oyunlarda kullanıldığı düşünülür ama yukarıda da belirttiğimiz gibi oyunlar dışında birçok uygulamada gerekli bir sistemdir.  3boyutlu grafik kütüphanesi olarak düşünülen DirectX, aslında ağ yönetiminden, joystick kontrolüne kadar birçok aracı içerisinde barındırır. DirectX"te giriş aygıtları, ses, video gibi 3 çekirdek alan bulunur. Bunlara sırası ile değinecek olursak.


GİRİŞ AYGITLARI:


Microsoft DirectInput: Bir oyun, klavye, mouse veya joystick gibi aygıtlardan veri alm
alıdır. Yoksa oyun ne kadar muhteşem görüntüler içerirse içersin, sadece video gibi izlenmenin dışında bir işlem yapmaz. DirectInput, bilgisayarda bulunan giriş aygıtları ile doğrudan bağlantı kurar. Windows"u devreden çıkaracağı için en ufak bir gecikme olmaması için giriş aygıtından gelen veriler ikinci bir katmana uğramadan direk size ulaşır. Oyunlarda saniyelik gecikmelerin önemli olduğunu düşünürsek önemli bir ayrıntıdır.
Son çıkan Windows SP1 yaması ile bu API"ye Xbox 360"da eklenmiştir. 7. nesil oyun konsolu olarak adlandırılan Xbox 360
eski nesil Xbox"un devamı olarak piyasaya sürülmüştür. 

SES:


Microsoft DirectSound :
Bu API  ses kartı ile uygulama arasındaki arayüz için kullanılır. Aynı anda birden fazla ses çalması, ses yüksekliğinin ayarlanması ve sesle ilgili özellikler bu API ile değiştirilir. DirectSound 3D oyunlarda ses efektlerine EAX desteği verir, ama ses kartınız bu özelliği desteklemiyorsa, bu özelliği kullanamazsınız. Bu durumda oyundan bu özelliği devredışı bırakmanız gerekebilir. Aksi taktirde oyunlardaki seslerde parazitlenme olacaktır.
Microsoft DirectMusic :
Bu daha gelişmiş bir API"dir. Bu API ile sesin karıştırılması, aynı anda çalan müziklerin ses ayarlarının yapılması, sesin çalma zamanı ayarlarının yapıldığı API"dir. 

VİDEO


Microsoft Direct3D:
DirectX"in en önemli bileşenidir. İlk olarak ATI tarafından hazırlandı ama en büyük değişikliği nvidia tarafından yapıldı. Görüntülerin ekrana çıkarılmasından bu API sorumludur.  Bu API, donanımların hızlandırılması için 3B nesnelerin özelliklerinin değiştirilmesine izin verir. Bu bileşenin özelliklerine gözatacak olursak, farklı donanım çakışmalarını engellemek, donanımların desteklemediği özellikleri yazılım aracılığı ile destekler hale getirmek, programlara 3 boyut ekleme gibi özellikleri mevcuttur. 

Microsoft DirectDraw :
Bilgisayarın video bağdaştırıcısının gelişmiş özelliklerine hızlıca erişimi sağlar. Önceleri daha önemli olan bu API, 2B işlevlerinin Direct3d"ye eklenmesi ile eski önemini kaybetmiştir.
Microsoft DirectPlay
: Bu API,  internet ve yerel ağ üzerindeki tüm oyun bağlantılarını destekler. Çevrimiçi yapılacak bu iletişimi kolaylaştırır ve ağ üzerinden oynanan oyunların verilerinin kaybolmaması için güvenilir iletişim kurallarını kullanır. DirectPlay 8.0 den sonra ağ üzerinden oynanan oyunların iletişim özelliğini artıracak sesli iletişim özelliği de eklenmiştir.  Bağlantı olarak Peer-to-peer, sunucu-istemci, kullanılabilen protokoller, TCP/IP, IPX, Bluetooth, Seri bağlantı, Doğrudan modem-modem bağlantılarını destekler. Son zamanlarda güncellemesi yapılmayan API"lerden biridir. 

Microsoft DirectShow: Bilgisayarınızda ve internet sunucularında yer alan çoklu ortam dosyaları için yüksek kalitede yakalama ve oynatma imkanı sağlar. ASF, AVI, DV, MPEG, MP3, WMA, WMV, WAV olmak üzere birçok ses dosyalarını destekler.