DIRECTX
Son günlerde PC ile ilgili forumlarda kim ekran kartı tavsiyesi ile ilgili bir başlık açarsa muhakkak bir iki kişi “Arkadaşım şimdi ekran kartı alma. Directx10’u destekleyen ekran kartları çıkacak yeni ekran kartlarını bekle” diye tavsiyelerde bulunuyorlar. Oysa alınacak alt düzey bir Direct X10 uyumlu ekran kartı, üst düzey bir DirectX 9 uyumlu ekran karttından çok daha yavaş olacaktır.
DIRECTX nedir? Directx10 destekli bir ekran kartı almaya karar versek bize ne kazandıracak? Directx’in çıkış tarihinden başlayarak şu anki aşamaya gelinceye kadarki gelişmeleri makalemizde incelemeye çalışacağız.
Şimdiye kadar yapay zekâsı bir insanınki kadar iyi olan bir bilgisayarla oyun oynadınız mı? Bu şu an için maalesef mümkün değil. Daha fazla olasılığı değerlendirebilen, bir B planı olan karmaşık stratejiler kurabilen, öğrenmeye uygun ve risk değerlendirmesi yapan sistemler, bilgisayarları daha değerli rakipler haline getirebilir. Özellikle her patlamadan sonra ortaya çıkan ve bir birinin aynı olan siyah delikler yerine ufalanmış duvar ve kırılmış cam parçalarını nesnelerin yakınlarına dağılmış olarak göremedik veya patlayan bir evin parçaları sahnenin her tarafına dağıldığını da göremedik. Bir kapıyı kurşunlarla delik deşik edip etrafa saçılan odun parçalarını ayrıntılı bir şekilde veren herhangi bir oyun hiç oynayabildiniz mi?
Şimdiki oyunlarda birini vuruyorsunuz ve aynı bez bir bebeğin yere düşmesi gibi yıkılıp kalıyorlar. Yani oyunlarda büyük bir devrim gerçekleşmedi henüz. Ekran kartlarındaki gelişmeye paralel bir şekilde arayüzlerde de gelişmeler oluyor olması da gerekir.
Gerek ekran kartları gerekse ekran kartlarının kullandığı yazılımların tek hedefi son kullanıcıya daha gerçekçi, insan zekâsına daha yakın oyunlar oynatabilmek. Bu yazılımlardan biride Directx’tir.
Windows 95’ten önce çıkan oyunlar yani DOS altında çalışan oyunlar, ekran kartı ve joystick gibi donanımlara direk ulaşabilmekte idi. Dolayısı ile herhangi bir aracı programa da gerek yoktu.
1980’lı Yıllar ve MSDOS
*Çok fazla değişik donanım yok
*Herkes kendi kodunu yazıyor
*PC’lerin yetenekleri çok az
*Ses yok, ağ hiç yok
1990’lı Yılların başı
*Çeşitlenen donanım
*Hala herkes bütün işi baştan yapıyor.
*Ses kartları için ilk ortak sürücüler
*Win 3.1 (İlk kez grafiksel kullanıcı arabirimi gerçekleştirildi)
*MS-DOS 6
*Ses ve seri bağlantı
Windows 95’ten önce çıkan oyunlar yani DOS altında çalışan oyunlar, ekran kartı ve joystick gibi donanımlara direk ulaşabildiğini yukarda bahsetmiştik. Taki Windows 95'in çıkana kadar. Windows 95'in çıkış ile birlikte gelen korumalı bellek yönetimi oyun üreticileri için yeni bir problem getirdi: bu yeni işletim sistemi, belleğe direk erişilmesini önlüyordu. Oyun yapanlar artık çıkmaza girmişlerdi.
İşte Microsoft'un ilk hedefi bu sorunu çözmekti. 3 Microsoft çalışanı, DirectX denilen sistemi geliştirdiler. Oyun programcıları artık hafızaya direk erişmek zorunda değillerdi. Ayrıca DirectX kodcuların işini azaltan birçok yeni ve standart kütüphane içeriyordu. Aslında Microsoft bu yaklaşımı daha önce de denemiş; ancak başarılı olamamıştı.
Microsoft mevcut haliyle fazla ileri gidemezdi. Çünkü kaliteli grafikler ve sesler üretemiyordu. Oysa Mac'ler grafik alanında da Microsoftun önünde idi. Profesyonel 3 boyutlu uygulamalarda akla gelen tek isim, Silicon Graphics'di. Firma, sahip olduğu ve kendi geliştirdiği OpenGL teknolojisi sayesinde hem çok kaliteli ve performanslı 3 boyutlu grafikler üretiyor, hem de bu alanda yazılım geliştirmeyi de kolaylaştırdığından, geniş destek görüyordu.
Ekran kartları büyük bir hızla gelişiyor bu gelişme paralel olarak hemen her kartın özellikleri farklı olabiliyor. Programcıların da her kart için ayrı kod yazmaları mümkün olmadığına göre bütün kartların ve yazılımın anlaşabileceği ortak bir platforma ihtiyaç var. İşte bu boşluğu API (Application Programming Interface, Uygulama Programlama Arayüzü) dolduruyor. API, uygulamalarla onları çalıştıran donanımın anlaşmasını sağlıyor. Programlar kodlarını direk donanıma aktarmadan standart biçimde API`ye aktarıyorlar. Ekran kartının sürücü yazılımı da API`den aldığı bu standart kodları kartın kullanabilceği şekle çevirip karta ulaştırıyor. Oyunlarda en sık kullanılan iki API OpenGL ve Direct3D`dir.
OpenGL
OpenGL grafik kütüphanesi, grafik donanımına ait birara yüzdür.2D ve 3D nesnelerden oluşan hareket eden görüntüler üretmemize olanak sağlar. OpenGL Silicon Graphics tarafından geliştirilmiştir. Direct3D den daha eski ve sağlamdır OpenGL tamamen nesneye dayalı değildir fakat kendi nesnelerimizi oluşturmak oldukça kolaydır. OpenGL ile kendi nesnemizi oluşturabilir ve dokulandırabiliriz OpenGL tamamen portatiftir ve bir çok platform destekler Örneğin MacOS,windows,BeosSGI dan OpenGL i lisanslamışlardır . Ayrıca OpenGL network üzerindede çalışabilir. OpenGL komutlarını network üzerinden ileten bir protokolda vardır. Örneğin sever bir similasyonu hesaplamalrını yapan süperbilgisayar client ise serverin gönderdiği OpenGL komutlarını yorumlayan bir bilgisayar olabilir.
*SGI tarafından 1992’de duyuruldu
*İyi tanımlanmış ve açık kaynaklı
*Kolay kullanım
*14 yılda sadece 5 değişiklik
*OpenGL Architecture Review Board (ARB) tarafından özellikleri belirleniyor.
*Donanım üreticileri yeni standardı beklemeden yeni özellikler ekleyebiliyor.
DirectX'ten sonraki en ünlü 3B API'si ise OpenGL. DirectX'ten çok daha uzun süredir ortalarda ve birçok işletim sisteminde de desteği bulunuyor.
DirectX gibi OpenGL de sürekli düzeltiliyor, güncelleniyor ve yetenekleri artırılıyor. Yine DirectX gibi tüm ekran kartları tarafından destekleniyor. Dahası en yeni 3B özellikleri, asıl OpenGL standardında bulunmasa bile, OpenGL Uzantıları (extensions) adı altında eklenebiliyor. Sıklıkla çizim işlemcisi (graphics processor) üreticileri bazı uygulamalar ve oyunlardaki belirli etkileri desteklemek kendi OpenGL uzantılarını sürücülerine ekliyorlar. Çoğunluk eserde DirectX egemenliği sürse de, hala birçok oyun OpenGL için yazılmaya devam ediyor. Bunun en iyi örneklerinden birisi id Software tarafından yayınlanan Texan; hatta birçok başka kuruluş da, kendi eserlerinde kullanmak üzere, id Software'in 3B oyun motorunu lisanslamış bulunuyor..
DirectX
Genel anlamı ile ifade edecek olursak, DirectX programlarla (uygulamalar ve oyunlar) ile grafik kartınızı çalıştıran driverlar, ses ve diğer bilgisayar donanımları arasındaki bağlantıyı sağlayan bir arayüzdür. DirectX, 3D rendering (nesnelerin yüzeyinin doku ile örtülmesi ve bunlara renk, gölge ve tonlama verilerek gerçekçilik kazandırılması işlemi), video playback, capture, TV görüntüleme uygulamaları, joystick ve Mouse ara yüzleri, çoklu oyunlar ve daha fazlası gibi birçok önemli fonksiyonu yerine getirmektedir.
Mesela multiplayer bir oyun yapmaya çalıştığımızı düşünelim, eger DirectX kullanmazsak bilgisayarlar arasındaki iletişimi sağlayacak kodu da bizim yazmamız gerekir. Bu fazladan çaba demek olur ve de hata olasılığını artırır. Burada DirectX herşeyi bizim yerimize yapar gibi de düşünmemek gerekir, ancak isleri önemli bir biçimde hafiflettiği de ortadadır. DirectX bilgisayarın grafik donanımına doğrudan erişir, bu da uygulamalarımızın çok daha hızlı işlemesini sağlar.
Basitçe tarayıcılar bir etkiyi matematiksel olarak tanımlıyor. Örneğin bir taşın ıslak görünmesini istiyorsanız, parlaklık etkisini, yansımaları, aydınlanmayı ve diğerlerini tanımlayan bir tarayıcı yazmanız yeterli. Çizim işlemcisi bu etkileri gerçek zamanlı hesaplamak için tarayıcıyı kullanıyor.
Özetlersek;
*Çok amaçlı çoklu ortam kütüphanesi
*1995’te ilk sürüm
*Donanım kaynaklarına doğrudan erişim
*Ses, görüntü ve kontrol araçları desteği
*Ağ desteği
2000’lı Yıllar
*Çok özelleşmiş donanım
*Programlanabilir boruyolları
*İnternet üzerinden oyun
*Surround ses sistemleri
*DirectX 8/9
DirectX mimarisi
*HAL: Hardware abstraction layer
*HEL: Hardware emulation layer
*Donanımdan bağımsız kod imkânı
*Beyaz yalanlar ve device_caps
Pratik DirectX uygulamaları
*Tüm Oyunlar (RPG,MMO,RTS…)
*Peer-to-peer ağlar
*Seri Port Programlama
*3 boyutlu ses uygulamaları
*CAD, 2d &3D modelleme
*DVD gösterme
Yenilikler ve Gelecek
*DirectX oyun piyasasını kontrol etmeye devam edecek
*Donanım üreticileriyle yakın çalışmalar
*Her yıl yeni bir sürüm
*Managed DirectX’e geçiş
*Managed Çerçeve yoluyla değişik platformlar
*X’li sistemler
*Taşınabilir sistemler
DirectX’in sahip olduğu bileşenler nelerdir?
DirectX, genelde oyun programcıları tarafından kullanılsa da, aslında sadece bir 3 boyutlu grafik kütüphanesi değildir. Joystick kontrolünden ağ yönetimine kadar birçok araç içerir. Üstelik sadece oyun geliştiricileri tarafından kullanılmaz.
DirectX içinde üç çekirdek alan bulunur:
Giriş aygıtları
Ses
Video
Aşağıda şu anki sürümde bulunan API'lere önce kısaca bir değinelim. Daha sonraki aşamada geniş bir şekilde ele alacağız.
1-Giriş Aygıtları (Input Devices)
DirectInput: Bu API, klavyeler, fareler, oyun çubukları, oyun pedleri ve güç tepkili (force feedback) aygıtlar için kullanılır. Windows XP SP1 ve sonraki sürümleri için bu API'nin içine Xbox360 denetleyicisi desteği de eklenmiştir.
2-Ses
DirectSound : Bu düşük seviye API uygulama ile ses kartı arasındaki arayüz için kullanılır. Donanımsal önbellekler, ses yükseklik seviyesi gibi sesle ilgili özellikler bu API kullanılarak değiştirilebilir.
DirectMusic : Bu daha yüksek seviyeli bir API'dir ve birden fazla sesi karıştırabilir. MIDI çalma, birden fazla sesin yüksekliği ve çeşitli çalışma zamanı (runtime) özellikleri bu bileşen tarafından denetlenebilir.
3-Video
Direct3D: Ekrana resimlerin çıkarılmasından bu API sorumludur. Donanımsal hızlandırıcılar (grafik kartları) tarafından 3B nesnelerin özelliklerinin değiştirilebilmesine bu düşük seviye arayüz izin verir.
DirectDraw : Eskiden önemli olan bu başlık yeni sürümlerde 2B işlevlerinin Direct3D içine konulmasıyla eski önemini kaybetmiştir
Görüldüğü gibi DirectX tek başına bir varlık değil, birbirinden bağımsız çalışan uygulamaların bütünüdür.Şimdi bu bileşenleri daha geniş bir şekilde incelemeye başlayalım.
Son günlerde PC ile ilgili forumlarda kim ekran kartı tavsiyesi ile ilgili bir başlık açarsa muhakkak bir iki kişi “Arkadaşım şimdi ekran kartı alma. Directx10’u destekleyen ekran kartları çıkacak yeni ekran kartlarını bekle” diye tavsiyelerde bulunuyorlar. Oysa alınacak alt düzey bir Direct X10 uyumlu ekran kartı, üst düzey bir DirectX 9 uyumlu ekran karttından çok daha yavaş olacaktır.
DIRECTX nedir? Directx10 destekli bir ekran kartı almaya karar versek bize ne kazandıracak? Directx’in çıkış tarihinden başlayarak şu anki aşamaya gelinceye kadarki gelişmeleri makalemizde incelemeye çalışacağız.
Şimdiye kadar yapay zekâsı bir insanınki kadar iyi olan bir bilgisayarla oyun oynadınız mı? Bu şu an için maalesef mümkün değil. Daha fazla olasılığı değerlendirebilen, bir B planı olan karmaşık stratejiler kurabilen, öğrenmeye uygun ve risk değerlendirmesi yapan sistemler, bilgisayarları daha değerli rakipler haline getirebilir. Özellikle her patlamadan sonra ortaya çıkan ve bir birinin aynı olan siyah delikler yerine ufalanmış duvar ve kırılmış cam parçalarını nesnelerin yakınlarına dağılmış olarak göremedik veya patlayan bir evin parçaları sahnenin her tarafına dağıldığını da göremedik. Bir kapıyı kurşunlarla delik deşik edip etrafa saçılan odun parçalarını ayrıntılı bir şekilde veren herhangi bir oyun hiç oynayabildiniz mi?
Şimdiki oyunlarda birini vuruyorsunuz ve aynı bez bir bebeğin yere düşmesi gibi yıkılıp kalıyorlar. Yani oyunlarda büyük bir devrim gerçekleşmedi henüz. Ekran kartlarındaki gelişmeye paralel bir şekilde arayüzlerde de gelişmeler oluyor olması da gerekir.
Gerek ekran kartları gerekse ekran kartlarının kullandığı yazılımların tek hedefi son kullanıcıya daha gerçekçi, insan zekâsına daha yakın oyunlar oynatabilmek. Bu yazılımlardan biride Directx’tir.
Windows 95’ten önce çıkan oyunlar yani DOS altında çalışan oyunlar, ekran kartı ve joystick gibi donanımlara direk ulaşabilmekte idi. Dolayısı ile herhangi bir aracı programa da gerek yoktu.
1980’lı Yıllar ve MSDOS
*Çok fazla değişik donanım yok
*Herkes kendi kodunu yazıyor
*PC’lerin yetenekleri çok az
*Ses yok, ağ hiç yok
1990’lı Yılların başı
*Çeşitlenen donanım
*Hala herkes bütün işi baştan yapıyor.
*Ses kartları için ilk ortak sürücüler
*Win 3.1 (İlk kez grafiksel kullanıcı arabirimi gerçekleştirildi)
*MS-DOS 6
*Ses ve seri bağlantı
Windows 95’ten önce çıkan oyunlar yani DOS altında çalışan oyunlar, ekran kartı ve joystick gibi donanımlara direk ulaşabildiğini yukarda bahsetmiştik. Taki Windows 95'in çıkana kadar. Windows 95'in çıkış ile birlikte gelen korumalı bellek yönetimi oyun üreticileri için yeni bir problem getirdi: bu yeni işletim sistemi, belleğe direk erişilmesini önlüyordu. Oyun yapanlar artık çıkmaza girmişlerdi.
İşte Microsoft'un ilk hedefi bu sorunu çözmekti. 3 Microsoft çalışanı, DirectX denilen sistemi geliştirdiler. Oyun programcıları artık hafızaya direk erişmek zorunda değillerdi. Ayrıca DirectX kodcuların işini azaltan birçok yeni ve standart kütüphane içeriyordu. Aslında Microsoft bu yaklaşımı daha önce de denemiş; ancak başarılı olamamıştı.
Microsoft mevcut haliyle fazla ileri gidemezdi. Çünkü kaliteli grafikler ve sesler üretemiyordu. Oysa Mac'ler grafik alanında da Microsoftun önünde idi. Profesyonel 3 boyutlu uygulamalarda akla gelen tek isim, Silicon Graphics'di. Firma, sahip olduğu ve kendi geliştirdiği OpenGL teknolojisi sayesinde hem çok kaliteli ve performanslı 3 boyutlu grafikler üretiyor, hem de bu alanda yazılım geliştirmeyi de kolaylaştırdığından, geniş destek görüyordu.
Ekran kartları büyük bir hızla gelişiyor bu gelişme paralel olarak hemen her kartın özellikleri farklı olabiliyor. Programcıların da her kart için ayrı kod yazmaları mümkün olmadığına göre bütün kartların ve yazılımın anlaşabileceği ortak bir platforma ihtiyaç var. İşte bu boşluğu API (Application Programming Interface, Uygulama Programlama Arayüzü) dolduruyor. API, uygulamalarla onları çalıştıran donanımın anlaşmasını sağlıyor. Programlar kodlarını direk donanıma aktarmadan standart biçimde API`ye aktarıyorlar. Ekran kartının sürücü yazılımı da API`den aldığı bu standart kodları kartın kullanabilceği şekle çevirip karta ulaştırıyor. Oyunlarda en sık kullanılan iki API OpenGL ve Direct3D`dir.
OpenGL
OpenGL grafik kütüphanesi, grafik donanımına ait birara yüzdür.2D ve 3D nesnelerden oluşan hareket eden görüntüler üretmemize olanak sağlar. OpenGL Silicon Graphics tarafından geliştirilmiştir. Direct3D den daha eski ve sağlamdır OpenGL tamamen nesneye dayalı değildir fakat kendi nesnelerimizi oluşturmak oldukça kolaydır. OpenGL ile kendi nesnemizi oluşturabilir ve dokulandırabiliriz OpenGL tamamen portatiftir ve bir çok platform destekler Örneğin MacOS,windows,BeosSGI dan OpenGL i lisanslamışlardır . Ayrıca OpenGL network üzerindede çalışabilir. OpenGL komutlarını network üzerinden ileten bir protokolda vardır. Örneğin sever bir similasyonu hesaplamalrını yapan süperbilgisayar client ise serverin gönderdiği OpenGL komutlarını yorumlayan bir bilgisayar olabilir.
*SGI tarafından 1992’de duyuruldu
*İyi tanımlanmış ve açık kaynaklı
*Kolay kullanım
*14 yılda sadece 5 değişiklik
*OpenGL Architecture Review Board (ARB) tarafından özellikleri belirleniyor.
*Donanım üreticileri yeni standardı beklemeden yeni özellikler ekleyebiliyor.
DirectX'ten sonraki en ünlü 3B API'si ise OpenGL. DirectX'ten çok daha uzun süredir ortalarda ve birçok işletim sisteminde de desteği bulunuyor.
DirectX gibi OpenGL de sürekli düzeltiliyor, güncelleniyor ve yetenekleri artırılıyor. Yine DirectX gibi tüm ekran kartları tarafından destekleniyor. Dahası en yeni 3B özellikleri, asıl OpenGL standardında bulunmasa bile, OpenGL Uzantıları (extensions) adı altında eklenebiliyor. Sıklıkla çizim işlemcisi (graphics processor) üreticileri bazı uygulamalar ve oyunlardaki belirli etkileri desteklemek kendi OpenGL uzantılarını sürücülerine ekliyorlar. Çoğunluk eserde DirectX egemenliği sürse de, hala birçok oyun OpenGL için yazılmaya devam ediyor. Bunun en iyi örneklerinden birisi id Software tarafından yayınlanan Texan; hatta birçok başka kuruluş da, kendi eserlerinde kullanmak üzere, id Software'in 3B oyun motorunu lisanslamış bulunuyor..
DirectX
Genel anlamı ile ifade edecek olursak, DirectX programlarla (uygulamalar ve oyunlar) ile grafik kartınızı çalıştıran driverlar, ses ve diğer bilgisayar donanımları arasındaki bağlantıyı sağlayan bir arayüzdür. DirectX, 3D rendering (nesnelerin yüzeyinin doku ile örtülmesi ve bunlara renk, gölge ve tonlama verilerek gerçekçilik kazandırılması işlemi), video playback, capture, TV görüntüleme uygulamaları, joystick ve Mouse ara yüzleri, çoklu oyunlar ve daha fazlası gibi birçok önemli fonksiyonu yerine getirmektedir.
Mesela multiplayer bir oyun yapmaya çalıştığımızı düşünelim, eger DirectX kullanmazsak bilgisayarlar arasındaki iletişimi sağlayacak kodu da bizim yazmamız gerekir. Bu fazladan çaba demek olur ve de hata olasılığını artırır. Burada DirectX herşeyi bizim yerimize yapar gibi de düşünmemek gerekir, ancak isleri önemli bir biçimde hafiflettiği de ortadadır. DirectX bilgisayarın grafik donanımına doğrudan erişir, bu da uygulamalarımızın çok daha hızlı işlemesini sağlar.
Basitçe tarayıcılar bir etkiyi matematiksel olarak tanımlıyor. Örneğin bir taşın ıslak görünmesini istiyorsanız, parlaklık etkisini, yansımaları, aydınlanmayı ve diğerlerini tanımlayan bir tarayıcı yazmanız yeterli. Çizim işlemcisi bu etkileri gerçek zamanlı hesaplamak için tarayıcıyı kullanıyor.
Özetlersek;
*Çok amaçlı çoklu ortam kütüphanesi
*1995’te ilk sürüm
*Donanım kaynaklarına doğrudan erişim
*Ses, görüntü ve kontrol araçları desteği
*Ağ desteği
2000’lı Yıllar
*Çok özelleşmiş donanım
*Programlanabilir boruyolları
*İnternet üzerinden oyun
*Surround ses sistemleri
*DirectX 8/9
DirectX mimarisi
*HAL: Hardware abstraction layer
*HEL: Hardware emulation layer
*Donanımdan bağımsız kod imkânı
*Beyaz yalanlar ve device_caps
Pratik DirectX uygulamaları
*Tüm Oyunlar (RPG,MMO,RTS…)
*Peer-to-peer ağlar
*Seri Port Programlama
*3 boyutlu ses uygulamaları
*CAD, 2d &3D modelleme
*DVD gösterme
Yenilikler ve Gelecek
*DirectX oyun piyasasını kontrol etmeye devam edecek
*Donanım üreticileriyle yakın çalışmalar
*Her yıl yeni bir sürüm
*Managed DirectX’e geçiş
*Managed Çerçeve yoluyla değişik platformlar
*X’li sistemler
*Taşınabilir sistemler
DirectX’in sahip olduğu bileşenler nelerdir?
DirectX, genelde oyun programcıları tarafından kullanılsa da, aslında sadece bir 3 boyutlu grafik kütüphanesi değildir. Joystick kontrolünden ağ yönetimine kadar birçok araç içerir. Üstelik sadece oyun geliştiricileri tarafından kullanılmaz.
DirectX içinde üç çekirdek alan bulunur:
Giriş aygıtları
Ses
Video
Aşağıda şu anki sürümde bulunan API'lere önce kısaca bir değinelim. Daha sonraki aşamada geniş bir şekilde ele alacağız.
1-Giriş Aygıtları (Input Devices)
DirectInput: Bu API, klavyeler, fareler, oyun çubukları, oyun pedleri ve güç tepkili (force feedback) aygıtlar için kullanılır. Windows XP SP1 ve sonraki sürümleri için bu API'nin içine Xbox360 denetleyicisi desteği de eklenmiştir.
2-Ses
DirectSound : Bu düşük seviye API uygulama ile ses kartı arasındaki arayüz için kullanılır. Donanımsal önbellekler, ses yükseklik seviyesi gibi sesle ilgili özellikler bu API kullanılarak değiştirilebilir.
DirectMusic : Bu daha yüksek seviyeli bir API'dir ve birden fazla sesi karıştırabilir. MIDI çalma, birden fazla sesin yüksekliği ve çeşitli çalışma zamanı (runtime) özellikleri bu bileşen tarafından denetlenebilir.
3-Video
Direct3D: Ekrana resimlerin çıkarılmasından bu API sorumludur. Donanımsal hızlandırıcılar (grafik kartları) tarafından 3B nesnelerin özelliklerinin değiştirilebilmesine bu düşük seviye arayüz izin verir.
DirectDraw : Eskiden önemli olan bu başlık yeni sürümlerde 2B işlevlerinin Direct3D içine konulmasıyla eski önemini kaybetmiştir
Görüldüğü gibi DirectX tek başına bir varlık değil, birbirinden bağımsız çalışan uygulamaların bütünüdür.Şimdi bu bileşenleri daha geniş bir şekilde incelemeye başlayalım.