DirectX Nedir?
DirectX,Bildiğiniz gibi Microsoft
tarafından devamlı geliştirilen, telif hakkı gerektirmeden oyun geliştirmede ve Windows tabanlı uygulamalarda kullanılabilecek bir multimedyadır.Ancak biraz daha özele indiğimizde DirectX’in ne kadar gelişmiş olduğunu göreceksiniz.DirectX'in bileşenleri;
Microsoft DirectDraw
Microsoft Direct3D
Microsoft DirectSound
Microsoft DirectMusic
Microsoft DirectInput
Microsoft DirectPlay
Microsoft DirectShow
Microsoft DirectSetup
Şimdi bunların bizimle ilgili kısımlarını birer cümle ile açıklayalım;,
-DirectDraw :Ekran kartının ve ekranda oluşacak görüntünün işlenmesini blitting ve page-flapping olarak bilinen diğer donanım özelliklerini
daha hızlı bir şekilde işlenmesini bitmap verilerinin ve off-screen(*) belleğinin kontrolünü sağlıyor.Ayrıca Direct3D’nin temelini oluşturur.
(*Off-Screen:Arkaplanda çalışan bir programdır ve daha hızlı görüntü elde edebilmek için kullanılanılır.)
-Direct3D : Artık günümüzdeki tüm grafik kartları, 3D hızlandırıcı desteğiyle satılıyorlar. Günümüzdeki oyunlarınoyunların çok büyük bir kısmı Direct3D’yi kullanmaktadır.Direct3D ilk olarak iki ayrı API ile çıkmıştı ve halende bu iki API uzerine kuruludur.(Immediate Mode ve Retained
Mode)
-Immediate Mode:Immediate Mode’da, objelerin cizilme sistemi programcının isteği doğrultusunda yapılır.Immediate Mode donanımsal sisteme daha yakın olduğundan kullanımı oldukça güçtür.Ancak bu sistem donanıma doğrudan erişim sağlamaktadır.Buda daha iyi performanslarda uygulama geliştirmenize olanak sağlar.
-Retained Mode:Retained Mode, çeşitli eklentilerle Immediate Mode üzerine kurulmuştur. Bu eklentilerden, doku(texture) yönetimi, nesne
dosyalarının yüklenmesi ve animasyon gibi (vs)örnekler verebiliriz.Retained Mode’un, kullanımı ve öğrenilmesi Immediate Mode nazaran daha kolaydır.Fakat programcıların daha çok performans isteyemeleri sonucu, Microsoft DirectX 6 ile Retained Mode API’sini geliştirmeyi durdurdu.Retained Mode API'sini geliştirmek yerine Direct 3D takımı Immediate Mode’un kullanımı kolaylaştırmak ve programcılara yeni işlevsellik sağlayacak eklemelerde bulundular.Retained Mode şu an için çokça kullanılan ve çok önemli olan multitexturing ve ışıklanırma gibi
bir çok işlevselliği sağlamaktadır.
API :
Programcıların da her kart için ayrı kod yazmaları mümkün olmadığından bütün kartların ve yazılımınların bilbirleri ile anlaşabileceği ortak bir platforma ihtiyaçları var. API, uygulamalarla onları çalıştıran donanımınların birbirleri ile anlaşmalarını sağlıyor.
GDI+:
GDI, açılım olarak Graphics Device Interface (grafik araç arayüzü) anlamına gelmektedir.Kısaca açıklarsak nesneye,objeye dayalı yapıdaki
grafik uygulamalarının geliştirilmesi GDI aracılığı ile yapılır.
OpenGL Nedir?
OpenGL gelişmiş pekçok tekniği destekliyor.Bunlar texture mapping, antialiasing, saydamlık, sis, ışıklandırma, smooth shading , motion
blur ve modelling transformation(vs) gibi.OpenGL Windows versiyonunun geliştirlimesinden sonra oyun yapımcıları tarafından çok tutuldu ve halende yaygın olarak kullanılmakta.
Texture mapping:Yüzeyleri desen veya herhangi bir dosya ile kaplamaya yarar.
Smooth shading:HErhangi bir yüzey üzerinden yansıyan ışınlar zararlı veya zararsız etkilerde bulunsa bile shading yapılabilmesini sağlar.
Motion blur:Hareketli görüntülerin arkalarında iz bırakmalarını sağlar.
Modelling transformation:Nesnelerin uzaydaki büyüklüklerini, yer ve perspektiflerinin değişmelesini sağlar.
Çift Tamponlama:Animasyonlarda oluşan titremeyi gidermeye yardım eder. Animasyonda birbirini izleyen her bir çerçeve ayrı bir bellek tamponunda oluşturulur. Ve sadece çerçevenin görüntülenmesi tamamlandığında ekranda görülebilir.
Anti-aliasing :Bilgisayar ekranında çizilmiş doğruların uçlarında oluşan çentikleri azaltır. Çentik uçlu doğrular genellikle düşük çözünürlükte çizildiklerinde oluşular. Anti-aliasing, mimari zig-zag ları azaltmak için rengi ve doğruların yakınındaki pixellerin yoğunluğunu değiştirir.
Gouraud gölgelemesi:3 boyutlu(3D) cisme düzgün bir gölgeleme uygulamak için kullanılan bir yöntemdir ve cismin yüzeyleri boyunca ince renk farkları sağlar.
Z-buffering: Üç boyutlu cismin Z koordinatının izini tutar. Z-buffer'ı; gözlemcinin cisminin yaklaşık izini sürer. Z-Buferring aynı zamanda saklı yüzeyin yerinin değiştirilmesimde önemli bir göreve sahiptir.