DirectX 12 Yolda! Peki Nedir Bu DirectX?

1Bildiğiniz gibi Microsoft, çok konuşulan Windows 10’un yanında çoğumuzun merakla beklediği DirectX 12’yi de sunacak. Firmanın en önemli yeniliklerinden biri olan bu sürüm geçtiğimiz aylarda Windows 10 etkinliğinde tanıtılmıştı. Bu sürümle ilgili en çarpıcı gelişme kuşkusuz eski ekran kartları ile de çalışabilecek olması. Bu kartlarda yeteneklerini %100 sergileyemeyecek olsa da…

Yeni sürüm elbette aklımızdaki soru işaretleri ile birlikte geliyor. DirectX 12 video oyunlarına nasıl etki edecek? Gelişmelerin arka planında ne var? Ve en önemlisi de DirectX bugüne kadar hangi yolları kat etti? Yani aslında DirectX hangi mantıkla çalışıyor?

Nedir Bu DirectX?

Hadi şimdi biraz çocukluğumuza inelim. Belki biz bile bilgisayar oyunu dünyasına daha iyi yapımlarla girdik ama bilen bilir, eskiden küçük bir çocuğun kaleminden çıkmışa benzeyen karakterlerle ve gerçekten uzak tasarımlarıyla çok sıradan oyunlar vardı. Şu an ise gerçek görüntü ve seslerden bahsedebiliyoruz. Oyun âlemi birçok sektörden daha hızlı gelişti ve çok yol aldı.

2

Tomb Raider I (1996)

3

Tomb Raider (2013)

Arayüzlerdeki bu gelişme ekran kartlarındaki gelişmeye paraleldir. Ve hem ekran kartlarının hem de kullanılan yazılımların asıl hedefi kullanıcıya olabilecek en gerçekçi deneyimi yaşatabilmek. DirectX de bu görevi üstlenen yazılımlardan biri.

Windows 95 işletim sistemi çıkana kadar, oyunlar DOS (Disk İşletim Sistemi) altında çalışıyor ve bu sayede oyun oynamak için gerekli donanımlara doğrudan erişiyordu. Ancak Windows 95 korumalı hafıza yönetimi nedeniyle belleğe doğrudan ulaşımı engelliyordu. Dolayısıyla bir ara bulucu program ihtiyacı doğdu. Yani Microsoft, DirectX adı verilen aracı yazılımı, oyun üreticilerinin çarptığı bu engeli çözmek için üretti.

DirectX Alanında Tek mi?

Ekran kartları hepimizin bildiği gibi inanılmaz bir hızla gelişiyor. Dolayısıyla her ekran kartı için farklı bir kod yazmak imkânsız. Bu nedenle tüm kartların ve tüm yazılımların uzlaşabileceği bir arayüze ihtiyaç var. İşte bu noktada devreye API (Uygulama Programlama Arayüzü) giriyor.

API, yazılımların ve onlara çalışma komutu veren donanımların uzlaşmasını sağlıyor. Yazılımlar kodlarını donanıma doğrudan iletemeyeceği için önce API’ye iletiyor. API’den alınan bu standart kodlar ekran kartının işleyebileceği bir biçime çevriliyor ve karta iletiliyor.

4Aslında Microsoft bu yaklaşımında başarılı olamadan önce Mac işletim sistemleri grafik konusunda da Microsoft’un ilerisindeydi. Silicon Graphics isimli firmanın ürettiği OpenGL yüksek performanslı ve çok kaliteli 3 boyutlu grafikler üretebiliyordu. Şu an bile, oyunlarda en sık kullanılan iki API, birbirine rakip olan OpenGL ve Direct3D.

DirectX Hangi Amaca Hizmet Eder? Peki ya Oyun Motorları?

DirectX belleğe erişim sağlamasının yanı sıra kod yazanların işini kolaylaştıracak bir kütüphane de geliştirdi. Yani bu yazılım bir anlamda oyun geliştiricilerin kullandığı bir 3 boyutlu grafik kütüphanesi oldu.

Oyun yapımı en kaba hali ile şunları gerektirir:

  • Grafik kütüphanesi (OpenGL, DirectX)
  • Oyun Motoru
  • 3D tasarımlar, doku tasarımları, senaryo

Peki, nasıl yapılıyor bu oyun motorları? En basit anlamda görüntünün oluşturulması işlemi oyun motorunun ‘rendering engine’ bölümü ile gerçekleştiriliyor. Bunun için DirectX gibi grafik kütüphanelerinden yararlanılıyor. Yani DirectX, geliştiricilerin çok karmaşık algoritmaları basit bir şekilde kullanmalarının yolunu açmak için onlarla işbirliği yapıyor.

Microsoft firmasının bu iş için birlikte çalıştığı oyun motoru firmaları var. Şu an bile şirket, DirectX 12 tabanlı oyun motorları üretebilmesi için Unreal Technologies’in Unity 3D motoruna ve Epic Games’in Unreal Engine’ine destek veriyor.

Oyun motorları temel olarak üretilecek oyunun ihtiyacı olan bütün mekaniklerin sunulmasını sağlar. İçeriğinde grafik, ses, bağlantı, yapay zekâ gibi parçaları birleştirip bir ürün verirler ve bunun için yine saydığım kütüphaneleri kullanırlar. Kütüphanelerden çektikleri kodlar, kol, gövde, manşet gibi ayrı ayrı oluşturulan bir ceketin parçalarına benzer şekilde birleştirilir. Önceden tanımlı grafik ve kod nesneleri sayesinde bunu yaparlar.

5Örneğin bir video oyun içerisindeki her obje aslında bilgisayar üzerinde matematiksel bir kod olarak tutulan, farklı yönlerde kenar, köşe ve yüzeyleri bulunan, ayrıca kendine özgü yansımaları ile birlikte dokusu olan bir öğedir. Yani DirectX gibi yazılımlar her oyun için çok farklı kodlar yazılmasını önler ve kadrajda bulundukları sürece gözümüzle gördüğümüz animasyonlar zaten hazır olan bu kodlardan çekilir.

Oyun firmalarının zamandan tasarruf etmesi için geliştirilen bu dönüşüm, başka bir oyunda da kullanacağınız öğeleri yeniden yazmak yerine sadece güncellemenizi sağlar. Grafik motorları nesneyi taslak olarak şekillendirirken, render motoru yansımalar, gölgelendirmeler ve kaplamalarla objeye gerçekçi bir hava katar. Ses motorları sesin geldiği uzaklığı, yankıyı ve yönü hesaplayarak, ses dalgalarını işler. Ağ motorları online oyunlarda, rakamsal verileri iletir ve kullanır.

Tüm bu motorlar farklı kütüphaneleri kullanır. Grafik ve render motorları, örneğini verdiğimiz gibi, DirectX’i kullanabilir. Ancak sadece görsel değil aynı zamanda sesler, müzikler, oyunlardaki kapı gıcırtılarına kadar birçok işitsel öğe de vardır. Örneğin ses motoru için Dolby Kütüphanesi kullanılır.

6DirectX 12 Hangi Özelliklerle Geliyor?

Merakla beklenen DirectX aslında 2 farklı sürüm halinde geliyor. Bunlardan ilki DirectX 11.3.

Bu sürüm oyun üreticileri için daha uygun bir API kaynağı sunarken onunla birlikte gelen DirectX 12 kadar yüksek bir performans gösteremiyor. Çünkü DirectX 12’nin asıl hedefi oyun için gerekli olan donanımlara daha yakın çalışmak ve bu performansı sayesinde de güç tüketimini yarı yarıya azaltmak.

DirectX 12’nin bu özelliği doğal olarak onu daha çekici kılıyor. Microsoft’un Xbox başkanı Phil Spencer’ın da onayladığı yarı yarıya güç tasarrufu DirectX 12’nin çeşitli oyun motorları ile iş birliği yapması sayesinde mümkün olacak. Yazının oyun motorları bölümünde de açıkladığım gibi şu sıralar Microsoft, DirectX 12 tabanlı oyun motorları üretebilmesi için Unity 3D motoruna ve Unreal Engine’e destek veriyor.

Peki DirectX 12 Gerçekten Güç Tasarrufu Sağlıyor mu?

7 8Aslında güç tasarrufu konusu sadece Phil Spencer’ın onayladığı, sır gibi saklanan bir durum değil. Teknoloji severlerin hatırlayacağı gibi, SIGGRAPH 2014 konferansında bir Microsoft Surface 3 Pro tableti ile her bir kare içerisinde farklı yönlerde kenar, köşe ve yüzeyleri bulunan, ayrıca kendine özgü kaplaması ile birlikte bir dokusu olan 50000 çizim yapıldı.9

Kullanıcıların gözü önünde bu çizim DirectX 11’den DirectX 12’ye geçirildi ve fark ortaya çıkmış oldu. Resimlerden de anlaşılacağı gibi, DirectX 12 ile ya güç kullanımınız %50 azalacak ya da aynı işlemci güç kullanımında %50 FPS artışı elde edeceksiniz.

Apple’da, Android’te, Hatta Linux’ta DirectX!

Ayrıca uzun süredir ortalarda dolaşan dedikoduya göre DirectX 12 önceki sürümlerin aksine diğer işletim sistemleriyle de uyumlu olabilir. Microsoft’un Apple ve Android ile yaptığı çapraz lisans anlaşmaları var ve bu durum elbette kullanıcıların işini kolaylaştırıyor.

Hal böyleyken kullanıcı dostu yazılım geliştirmek isteyen firmalardan biri olan Microsoft’un, DirectX’i de iOS, Android, OS X hatta Linux’a bile uyumlu hale getirmesi bir lütuftan çok bir ihtiyaca dönüşüyor. Ayrıca Microsoft eğer böyle işletim sistemi geliştiren firmalara böyle bir teklif ile giderse, geri çevrilmeyeceği de ortada.

Son olarak,

DirectX 11.3 hakkında bilinenler DirectX 12 kadar fazla değil. Kuşkusuz bunun en büyük nedeni DirectX 11.3 oyun üreticileri için daha uygun API’ler sunsa da, DirectX 12’nin güç tasarrufu sayesinde kullanıcıların ilgisini daha çok çekiyor olması.

Çok daha iyi görsel performans, aynı güç kullanımıyla %50 daha fazla FPS, yeni algoritmalar, enerji verimliliği ve hatta belki gelecekte tüm işletim sistemleriyle uyumlu olma… Bunlar hiç azımsanmayacak ölçüde büyük vaatler. Bu vaatler ne oranda gerçek olur şimdilik bilemiyoruz ancak sektördeki her şey inanılmaz bir hızla gelişirken, Microsoft’un bu gelişmelerin gerisinde kalmayacağına inanıyoruz.

Cemre Yavuz

Cumhuriyet Gazetesi - Editör / İTÜ - Matematik Müh. / Huzur isyandadır. www.cemreyavuz.com

You may also like...

2 Responses

  1. Umut dedi ki:

    Direct x kütüphanesi ve open gl sistemi oyun dünyasının en büyük devrimleriydi. Yine de msdos üzerinden çalışan oyunları ve win95 i özlüyorum. Detaylı araştırma için teşekkürler.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir