Son Konu

DirectX 12 Nedir, Ne İşe Yarar?

dagcı

Yeni Üye
Katılım
9 Ocak 2022
Mesajlar
152,900
Tepkime
0
Puanları
36
Yaş
68
Credits
0
Geri Bildirim : 0 / 0 / 0
DirectX-12-Ultimate.jpg

DirectX, Windows 95’in çıkışından bu yana, yani 25 yıldır bizimle. Bu süre zarfında ekran kartları bir hayli gelişim gösterirken, işletim sistemlerinin de görüntü işleme yetenekleri oldukça arttı. En son 2015 yılında Windows 10 ile beraber piyasaya çıkan DirectX 12, gitgide genişleyen yazılımsal desteği ve yeni nesil teknolojileriyle günümüzün modern grafik dünyasına “taze kan” pompalamaya devam ediyor.

Oyun dünyasının nispeten yenisi sayılabilecek büyük bütçeli üyeleri DirectX 12’nin nimetlerini kullanıp, her geçen gün gerçeğe daha yakın grafiklerle bizleri buluşturmaya devam ediyor. CyberPunk 2077 ve Ekim 2021’de çıkması planlanan Far Cry 6 bu bahsettiğimiz yapımlardan birkaçına örnek.

Peki DirectX nedir, oyun ve grafik dünyasında hatta yazılım dünyasında önemi nedir, son güncellemelerle beraber hangi teknolojileri sunuyor? Bu yazımızda DirectX hakkında aklınızda oluşan bütün soruları cevaplayacağız.

Takvimler 15 Ağustos 1995’i işaret ettiğinde artık PC dünyası yapısal olarak bambaşka bir döneme giriyor, aynı zamanda birçok yazılımcı da hayli endişelenmeye başlıyordu. Windows 95’in ilk sürümünün yayınlandığı o gün, Windows ve MS-DOS ayrımı gerçekleşmişti ve yeni işletim sisteminin yapısal olarak 32-bit korumalı kod mimarisi altında çalışmaya başlayacağı açıkça anlaşılmıştı.

DirectX’in Geliştirilmesinin Asıl Sebebi: Korumalı Kod Mimarisi


32-bit korumalı kod mimarisinin ne olduğundan kısaca bahsedelim. Eskiden işletim sistemleri donanımla daha fazla etkileşimde kalarak “işbirlikçi çoklu görev” yapısıyla (cooperative-multitasking) 16-bit mimaride çalışıyordu. Bilgisayarların ve işletim sistemlerinin ilk günlerinde, sistemde çalışan çeşitli işlemler hakkında pek endişelenecek bir şey olmadığından, o güne kadar arka planda çalışan işlemlerin birbirini etkilemesi ve sistemde güvenlik veya kararlılık anlamında sorun yaratması pek olası görülmüyordu. Fakat zaman değişmiş, bilgisayarlar geniş kitlelere ulaşmış ve yazılımların artışıyla beraber yazılımcılardan kaynaklanan bazı hataların olumsuz etkileri çok daha ağır olmaya başlamıştı.

İşte bu yüzden Intel tarafından “korumalı kod modu” veya “korumalı kod mimarisi” olarak bilinen bir yapı geliştirildi. Böylece çalışan işlemler kendi bellek alanının dışına çıkamıyor ve BIOS işkesme (BIOS işkesme çağrıları, işletim sistemleri ve uygulamaların bilgisayarlarda BIOS yazılımının olanaklarını çağırmak için kullandığı bir yöntemdir) kullanılması engelleniyordu. Böylece nispeten daha güvenli ve stabil bir işletim sistemiyle beraber yazılım ortamı oluşturuldu, korumalı kod yavaş yavaş sektör standardı olmaya başladı.

Eğer günümüzde korumalı kod mimarisini kullanmasaydık, bilerek veya ufak hatalar nedeniyle ilgili programın kendi bellek alanının dışına çıkması sonucu sürekli hatalarla karşılaşacaktık. Veya daha kötüsü, kullandığımız birçok yazılım birbirini etkileyebilecek durumda olacaktı.
korumali-kod-mimarisi-adresleme-semasi.gif
Korumalı kod mimarisinde bellek adresleme.
DirectX Tanıtılıyor


Windows 95 ile kullanılmaya başlanılan korumalı kod yapısı sebebiyle görüntü işleme alanında uzmanlaşmış yazılımcılar, donanımdan tam olarak faydalanmakta bir hayli zorlanıyordu. Önceki işletim sistemlerinde grafik işlemci (GPU) gücünden tamamen yararlanılabilirken, Windows 95’in çıkmasıyla beraber işler iyice karmaşık bir hale gelmişti.

Microsoft bu sürecin olumsuz etkilerini hafifletmek ve görüntü işleme sürecini daha da kolaylaştırmak için 30 Eylül 1995 tarihinde geliştirmiş olduğu DirectX adı verilen düşük seviyeli bir dizi API’yi (Application Programming Interface/Uygulama Programlama Arayüzü) geliştiricilerin kullanımına açtı. Böylece DirectX doğmuş oldu.

Bildiğiniz gibi oyunlar ve görüntü işleme alanında en küçük yapımdan tutun, en büyük yapıma kadar birçok program C++ gibi bir dil ile yazılmakta. Görüntü işleme sürecine kolaylık sağlaması, bilgisayarlarda ortak bir kütüphane olarak yer edinmesi, donanımla etkileşimin daha iyi sağlanabilmesi nedeniyle DirectX yıllardır bu sektörün vazgeçilmezi oldu.

DirectX yalnızca grafik anlamında değil; aynı zamanda ses, video, müzik ve çeşitli çevresel giriş birimleri gibi hemen hemen ihtiyaç duyulan her şey hakkında kolaylık sunuyor. DirectX sayesinde ilgili aygıtların sürücüleri yardımıyla gelen komutlar, API kullanılarak çevriliyor ve bunlar oyunların anladığı kod dizileri olarak son halini alıyor.

Microsoft en gelişmiş multimedya kütüphanelerinden biri olan DirectX’i yıllardır terk etmedi, desteği ve sunduğu güncellemeleriyle beraber koca bir endüstri standardı haline getirdi. DirectX 12 ise Windows 10’un piyasaya çıkışıyla beraber 2015 yılının Temmuz ayında geliştiricilerin kullanımına sunuldu. Microsoft, 2015 yılından beri DirectX 12 sürümünü sürekli yeni teknolojiler ve güncellemeler ile desteklemeye devam ediyor.

DirectX-Calisma-Mantigi.jpg


Önceki DirectX güncellemelerinde genel itibariyle pek büyük değişiklikler söz konusu olmadığından sürüm numaralandırma kuralı uygulanıyordu. Örneğin 2009 sonbaharında DirectX 11, 2012’de 11.1, bir sene sonra 2013 yılında sunulan sürüm ise 11.2 şeklinde yayınlandı. Fakat DirectX 12 sürümü tam 5 sene boyunca DirectX 12 Ultimate duyurulana kadar 12 olarak kaldı.

Bu revizyonla beraber Direct3D ve DirectX RayTracing’e önemli güncellemeler geldi. Bu nedenle eski sürümlere gelen yeni özelliklere isterseniz hızlıca bir göz atalım.
  • Değişken Oranlı Gölgelendirme (Variable Rate Shading)
  • Mesh Gölgelendirici (Mesh Shaders)
  • Örnekli Geri Bildirim (Sampler Feedback)
Değişken Oranlı Gölgelendirme


Bu özelliklerden ilki, geliştiricilerin ve gölgelendiricilerin sahneye veya sahnenin bir kısmına, hatta bir nesneye ne sıklıkla uygulandığının kontrol edilmesine imkan tanıyor. Normalde bir shader çerçeve içerisinde yer alan her bir piksele uygulanıyor fakat VRS ile bir piksel bloğunun (2×2, 4×4 gibi) üzerinde gölgelendirici çalıştırmak mümkün hale geliyor. Bu her ne kadar görsel anlamda bir kalite düşüşüne neden olsa da performans anlamında önemli ölçüde olumlu bir etkiye sahip. Bu nedenle uzakta olduğu veya hızlı hareket ettiği için süper doğru gözükmesi gereken bir şey yoksa gölgelendirici oranlamayı düşürmek oldukça mantıklı.

Mesh Gölgelendirici

Mesh gölgelendiriciler, geometri işlem hattının yeteneklerini ve performansını artırmaya yarayan bir teknoloji. Mesh gölgelendiriciler, ilkellerin ve tepe noktalarının rasterleştiriciden önce toplu işlenmesi yoluyla Vertex ve Geometry gölgelendiricilerin özelliklerini tek bir gölgelendirici aşamasına dahil ediyor. Gölgelendiriciler ayrıca geometriyi yükseltebiliyor ve azaltabiliyor.

Bu özellik sayesinde oyunlardaki karmaşık modeller ve sahnelerin performansa etkisi azaltılabiliyor. Bu, yıllardır geometri gölgelendiricileri (geometry shaders) ve mozaikleme (tessellation) ile söylenen fakat lafta kalan bir şeydi ama artık tamamen gerçek.



Örnekleyici Geri Bildirim

Örnekleyici geri bildirim özelliği de benzer şekilde geliştiriciye daha fazla kontrol imkanı sağlıyor fakat bu özellikte kontrol imkanının fazlasıyla sağlandığı şey dokudur. Örnekleyici geri bildirim özelliğinin potansiyel anlamda avantajı ise bellekten GPU’ya aktarılması gereken doku öğelerinin miktarının azaltılmasıyla beraber, oyuna ait nesnelerin doku olarak oluşturulduğu zamanlarda bunların daha etkili kullanılmasına imkan tanınması.
Microsoft-Yanit-Karsilastirmasi.gif
Örnekleyici Geri Bildirim teknolojisinin bellek avantajını gösteren hareketli görsel. – Kaynak: Microsoft
DirectX 12 Ultimate’ın en son özelliği ise harika bir grafik özelliği veya veri işleme ile alakalı bir API değil. Microsoft, son güncellemeyle beraber Windows ve Xbox platformu için olan API’lerini ortak toplu bir kütüphanede birleştiriyor. Böylece iki platform arası geçiş daha az çalışmayla daha kolay bir şekilde yapılabilecek.

Aslında orijinal ilk Xbox’lardan beri Microsoft’un fikri buydu fakat 360 ile beraber bilgisayarlardan fazlasıyla donanımsal ve yazılımsal olarak uzaklaşılmıştı. Series X ve S konsollarıyla beraber bu gidişat biraz daha farklı bir yöne evrildi. Konsollar artık tekrardan bir PC olmaya yakın hale geldiğinden, yazılımsal anlamda da böylesine bir ortak kütüphanenin oluşturulması zaten beklenen bir hamleydi.

Tüm yazı boyunca değindiğimiz şey aslında sadece geliştiricileri ilgilendirse de bu işin sonunda asıl fayda görecek olan kullanıcılar. Geliştiricilerin ana odak noktası halen gerçekçi grafikler olsa da, ışın izleme söz konusu olduğunda Microsoft performansı ve gelişimi yakından takip etti. Aslında bütün bu yeni güncellemeler ve ek kütüphanelerin geliştirilmesinin nedeni, donanım üreticilerinin eskiye nazaran daha güçlü donanımlar üretmekte zorlanmasından kaynaklanıyor.

Sadece oyunları en iyi ayarlarda oynamak ve iyi kare hızları elde etmek için kimse bir ekran kartına 1000 dolar veremez ve vermek de istemez. Ve üreticiler ürünlerinin azınlıktan ziyade olabildiğince halk tabanındaki son tüketiciye ulaşmasını ister. Bu nedenle uygun fiyata çok daha iyi performans alınabilecek donanımlar üretmek bu nedenle oldukça önem arz eder.

İşte bütün bu geliştirmeler ve DirectX 12 Ultimate güncellemesi herkesin oyunlardan keyif alabilmesi için yapılan şeylerden birkaçı. Sizlerin de eklemek istediği bir şey varsa yorumlarda belirtebilir, sorularınız için Technopat Sosyal’de konu açabilirsiniz.
 
Üst Alt