DirectX, Windows 95’in çıkışından bu yana, yani 25 yıldır bizimle. Bu müddet zarfında ekran kartları bir çok gelişim gösterirken, işletim sistemlerinin de manzara sürece yetenekleri çok arttı. En son 2015 yılında Windows 10 ile birlikte piyasaya çıkan DirectX 12, gittikçe genişleyen yazılımsal takviyesi ve yeni jenerasyon teknolojileriyle günümüzün çağdaş 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 bahsetmiş olduğumiz üretimlerden birkaçına örnek.
Pekala DirectX nedir, oyun ve grafik dünyasında hatta yazılım dünyasında ehemmiyeti nedir, son güncellemelerle birlikte 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 değişik bir periyoda giriyor, hem de biroldukca yazılımcı da çok endişelenmeye başlıyordu. Windows 95’in birinci 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 muhafazalı kod mimarisi altında çalışmaya başlayacağı açıkça anlaşılmıştı.
DirectX’in Geliştirilmesinin Asıl niçini: Muhafazalı Kod Mimarisi
32-bit muhafazalı kod mimarisinin ne olduğundan özetlemek gerekirse bahsedelim. Evvelce işletim sistemleri donanımla daha fazla etkileşimde kalarak “işbirlikçi fazlacalu nazaranv” yapısıyla (cooperative-multitasking) 16-bit mimaride çalışıyordu. Bilgisayarların ve işletim sistemlerinin birinci günlerinde, sistemde çalışan çeşitli süreçler hakkında pek endişelenecek bir şey olmadığından, o güne kadar art planda çalışan süreçlerin birbirini etkilemesi ve sistemde güvenlik yahut kararlılık manasında sorun yaratması pek mümkün görülmüyordu. Lakin vakit değişmiş, bilgisayarlar geniş kitlelere ulaşmış ve yazılımların artışıyla birlikte yazılımcılardan kaynaklanan birtakım kusurların olumsuz tesirleri epey daha ağır olmaya başlamıştı.
İşte bu yüzden Intel tarafınca “korumalı kod modu” yahut “korumalı kod mimarisi” olarak bilinen bir yapı geliştirildi. bu biçimdece çalışan süreçler kendi bellek alanının dışına çıkamıyor ve BIOS işkesme (BIOS işkesme davetleri, işletim sistemleri ve uygulamaların bilgisayarlarda BIOS yazılımının imkanlarını çağırmak için kullandığı bir yöntemdir) kullanılması engelleniyordu. bu biçimdece nispeten daha inançlı ve stabil bir işletim sistemiyle birlikte yazılım ortamı oluşturuldu, muhafazalı kod yavaş yavaş kesim standardı olmaya başladı.
Şayet günümüzde muhafazalı kod mimarisini kullanmasaydık, bilerek yahut ufak kusurlar niçiniyle ilgili programın kendi bellek alanının dışına çıkması kararı daima kusurlarla karşılaşacaktık. Yahut daha berbatı, kullandığımız biroldukca yazılım birbirini etkileyebilecek durumda olacaktı.
Muhafazalı kod mimarisinde bellek adresleme.
DirectX Tanıtılıyor
Windows 95 ile kullanılmaya başlanılan muhafazalı kod yapısı sebebiyle manzara sürece alanında uzmanlaşmış yazılımcılar, donanımdan tam olarak yaralanmakta bir çok zorlanıyordu. Evvelki işletim sistemlerinde grafik işlemci (GPU) gücünden büsbütün yararlanılabilirken, Windows 95’in çıkmasıyla birlikte işler güzelce karmaşık bir hale gelmişti.
Microsoft bu sürecin olumsuz tesirlerini hafifçeletmek ve manzara sürece sürecini daha da kolaylaştırmak için 30 Eylül 1995 tarihinde geliştirmiş olduğu DirectX ismi verilen düşük düzeyli bir dizi API’yi (Application Programming Interface/Uygulama Programlama Arayüzü) geliştiricilerin kullanmasına açtı. bu biçimdece DirectX doğmuş oldu.
Bildiğiniz üzere oyunlar ve manzara sürece alanında en küçük üretimden tutun, en büyük imale kadar biroldukça program C++ üzere bir lisan ile yazılmakta. İmaj sürece sürecine kolaylık sağlaması, bilgisayarlarda ortak bir kütüphane olarak yer edinmesi, donanımla etkileşimin daha yeterli sağlanabilmesi niçiniyle DirectX yıllardır bu bölümün vazgeçilmezi oldu.
DirectX sadece grafik manasında değil; beraberinde ses, görüntü, müzik ve çeşitli çevresel giriş üniteleri üzere şimdi gereksinim duyulan her şey hakkında kolaylık sunuyor. DirectX yardımıyla ilgili aygıtların şoförleri sayesinde 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, dayanağı ve sunduğu güncellemeleriyle birlikte koca bir sanayi standardı haline getirdi. DirectX 12 ise Windows 10’un piyasaya çıkışıyla birlikte 2015 yılının Temmuz ayında geliştiricilerin kullanmasına sunuldu. Microsoft, 2015 yılından beri DirectX 12 sürümünü daima yeni teknolojiler ve güncellemeler ile desteklemeye devam ediyor.
Evvelki DirectX güncellemelerinde genel itibariyle pek büyük değişiklikler kelam konusu olmadığından sürüm numaralandırma kuralı uygulanıyordu. Örneğin 2009 sonbaharında DirectX 11, 2012’de 11.1, bir sene daha sonra 2013 yılında sunulan sürüm ise 11.2 halinde yayınlandı. Ancak DirectX 12 sürümü tam 5 sene boyunca DirectX 12 Ultimate duyurulana kadar 12 olarak kaldı.
Bu revizyonla birlikte Directüç boyutlu ve DirectX RayTracing’e değerli güncellemeler geldi. Bu niçinle eski sürümlere gelen yeni özelliklere isterseniz süratlice bir göz atalım.
Bu özelliklerden birincisi, geliştiricilerin ve gölgelendiricilerin sahneye yahut sahnenin bir kısmına, hatta bir objeye ne çoğunlukla uygulandığının denetim edilmesine imkan tanıyor. Olağanda bir shader çerçeve içerisinde yer alan her bir piksele uygulanıyor ancak 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 manada bir kalite düşüşüne niye olsa da performans manasında kıymetli ölçüde olumlu bir tesire sahip. Bu niçinle uzakta olduğu yahut süratli hareket ettiği için harika gerçek gözükmesi gereken bir şey yoksa gölgelendirici oranlamayı düşürmek çok mantıklı.
Mesh Gölgelendirici
Mesh gölgelendiriciler, geometri süreç çizgisinin yeteneklerini ve performansını artırmaya yarayan bir teknoloji. Mesh gölgelendiriciler, ilkellerin ve zirve noktalarının rasterleştiricidilk evvel toplu işlenmesi yoluyla Vertex ve Geometry gölgelendiricilerin özelliklerini tek bir gölgelendirici kademesine dahil ediyor. Gölgelendiriciler ayrıyeten geometriyi yükseltebiliyor ve azaltabiliyor.
Bu özellik yardımıyla oyunlardaki karmaşık modeller ve sahnelerin performansa tesiri azaltılabiliyor. Bu, yıllardır geometri gölgelendiricileri (geometry shaders) ve mozaikleme (tessellation) ile söylenen ancak lafta kalan bir şeydi lakin artık büsbütün gerçek.
Örnekleyici Geri Bildirim
Örnekleyici geri bildirim özelliği de benzeri biçimde geliştiriciye daha fazla denetim imkanı sağlıyor lakin bu özellikte denetim imkanının ziyadesiyle sağlandığı şey dokudur. Örnekleyici geri bildirim özelliğinin potansiyel manada avantajı ise bellekten GPU’ya aktarılması gereken doku öğelerinin ölçüsünün azaltılmasıyla birlikte, oyuna ilişkin objelerin doku olarak oluşturulduğu vakit içinderda bunların daha tesirli kullanılmasına imkan tanınması.
Örnekleyici Geri Bildirim teknolojisinin bellek avantajını gösteren hareketli görsel. – Kaynak: Microsoft
DirectX 12 Ultimate’ın en son özelliği ise şahane bir grafik özelliği yahut bilgi sürece ile alakalı bir API değil. Microsoft, son güncellemeyle birlikte Windows ve Xbox platformu için olan API’lerini ortak toplu bir kütüphanede birleştiriyor. bu biçimdece iki platform ortası geçiş daha az çalışmayla daha kolay bir biçimde yapılabilecek.
Aslında özgün birinci Xbox’lardan beri Microsoft’un fikri buydu ama 360 ile birlikte bilgisayarlardan ziyadesiyle donanımsal ve yazılımsal olarak uzaklaşılmıştı. Series X ve S konsollarıyla birlikte bu gidişat biraz daha farklı bir tarafa evrildi. Konsollar artık yinedan bir PC olmaya yakın hale geldiğinden, yazılımsal manada da bu biçimdesine bir ortak kütüphanenin oluşturulması aslına bakarsan beklenen bir atılımdı.
Tüm yazı boyunca değindiğimiz şey aslında yalnızca geliştiricileri ilgilendirse de bu işin sonunda asıl yarar gorecek olan kullanıcılar. Geliştiricilerin ana odak noktası hala gerçekçi grafikler olsa da, ışın izleme kelam 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 sebebi, donanım üreticilerinin eskiye nazaran daha kuvvetli donanımlar üretmekte zorlanmasından kaynaklanıyor.
Yalnızca oyunları en güzel ayarlarda oynamak ve yeterli kare suratları elde etmek için kimse bir ekran kartına 1000 dolar veremez ve vermek de istemez. Ve üreticiler mamüllerinin azınlıktan çok olabildiğince halk tabanındaki son tüketiciye ulaşmasını ister. Bu niçinle uygun fiyata hayli daha uygun performans alınabilecek donanımlar üretmek bu niçinle pek değer arz eder.
İşte bütün bu geliştirmeler ve DirectX 12 Ultimate güncellemesi her insanın oyunlardan keyif alabilmesi için yapılan şeylerden birkaçı. Sizlerin de eklemek istediği bir şey var ise yorumlarda belirtebilir, sorularınız için Technopat Sosyal’de husus açabilirsiniz.
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 bahsetmiş olduğumiz üretimlerden birkaçına örnek.
Pekala DirectX nedir, oyun ve grafik dünyasında hatta yazılım dünyasında ehemmiyeti nedir, son güncellemelerle birlikte 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 değişik bir periyoda giriyor, hem de biroldukca yazılımcı da çok endişelenmeye başlıyordu. Windows 95’in birinci 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 muhafazalı kod mimarisi altında çalışmaya başlayacağı açıkça anlaşılmıştı.
DirectX’in Geliştirilmesinin Asıl niçini: Muhafazalı Kod Mimarisi
32-bit muhafazalı kod mimarisinin ne olduğundan özetlemek gerekirse bahsedelim. Evvelce işletim sistemleri donanımla daha fazla etkileşimde kalarak “işbirlikçi fazlacalu nazaranv” yapısıyla (cooperative-multitasking) 16-bit mimaride çalışıyordu. Bilgisayarların ve işletim sistemlerinin birinci günlerinde, sistemde çalışan çeşitli süreçler hakkında pek endişelenecek bir şey olmadığından, o güne kadar art planda çalışan süreçlerin birbirini etkilemesi ve sistemde güvenlik yahut kararlılık manasında sorun yaratması pek mümkün görülmüyordu. Lakin vakit değişmiş, bilgisayarlar geniş kitlelere ulaşmış ve yazılımların artışıyla birlikte yazılımcılardan kaynaklanan birtakım kusurların olumsuz tesirleri epey daha ağır olmaya başlamıştı.
İşte bu yüzden Intel tarafınca “korumalı kod modu” yahut “korumalı kod mimarisi” olarak bilinen bir yapı geliştirildi. bu biçimdece çalışan süreçler kendi bellek alanının dışına çıkamıyor ve BIOS işkesme (BIOS işkesme davetleri, işletim sistemleri ve uygulamaların bilgisayarlarda BIOS yazılımının imkanlarını çağırmak için kullandığı bir yöntemdir) kullanılması engelleniyordu. bu biçimdece nispeten daha inançlı ve stabil bir işletim sistemiyle birlikte yazılım ortamı oluşturuldu, muhafazalı kod yavaş yavaş kesim standardı olmaya başladı.
Şayet günümüzde muhafazalı kod mimarisini kullanmasaydık, bilerek yahut ufak kusurlar niçiniyle ilgili programın kendi bellek alanının dışına çıkması kararı daima kusurlarla karşılaşacaktık. Yahut daha berbatı, kullandığımız biroldukca yazılım birbirini etkileyebilecek durumda olacaktı.
Muhafazalı kod mimarisinde bellek adresleme.
DirectX Tanıtılıyor
Windows 95 ile kullanılmaya başlanılan muhafazalı kod yapısı sebebiyle manzara sürece alanında uzmanlaşmış yazılımcılar, donanımdan tam olarak yaralanmakta bir çok zorlanıyordu. Evvelki işletim sistemlerinde grafik işlemci (GPU) gücünden büsbütün yararlanılabilirken, Windows 95’in çıkmasıyla birlikte işler güzelce karmaşık bir hale gelmişti.
Microsoft bu sürecin olumsuz tesirlerini hafifçeletmek ve manzara sürece sürecini daha da kolaylaştırmak için 30 Eylül 1995 tarihinde geliştirmiş olduğu DirectX ismi verilen düşük düzeyli bir dizi API’yi (Application Programming Interface/Uygulama Programlama Arayüzü) geliştiricilerin kullanmasına açtı. bu biçimdece DirectX doğmuş oldu.
Bildiğiniz üzere oyunlar ve manzara sürece alanında en küçük üretimden tutun, en büyük imale kadar biroldukça program C++ üzere bir lisan ile yazılmakta. İmaj sürece sürecine kolaylık sağlaması, bilgisayarlarda ortak bir kütüphane olarak yer edinmesi, donanımla etkileşimin daha yeterli sağlanabilmesi niçiniyle DirectX yıllardır bu bölümün vazgeçilmezi oldu.
DirectX sadece grafik manasında değil; beraberinde ses, görüntü, müzik ve çeşitli çevresel giriş üniteleri üzere şimdi gereksinim duyulan her şey hakkında kolaylık sunuyor. DirectX yardımıyla ilgili aygıtların şoförleri sayesinde 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, dayanağı ve sunduğu güncellemeleriyle birlikte koca bir sanayi standardı haline getirdi. DirectX 12 ise Windows 10’un piyasaya çıkışıyla birlikte 2015 yılının Temmuz ayında geliştiricilerin kullanmasına sunuldu. Microsoft, 2015 yılından beri DirectX 12 sürümünü daima yeni teknolojiler ve güncellemeler ile desteklemeye devam ediyor.
Evvelki DirectX güncellemelerinde genel itibariyle pek büyük değişiklikler kelam konusu olmadığından sürüm numaralandırma kuralı uygulanıyordu. Örneğin 2009 sonbaharında DirectX 11, 2012’de 11.1, bir sene daha sonra 2013 yılında sunulan sürüm ise 11.2 halinde yayınlandı. Ancak DirectX 12 sürümü tam 5 sene boyunca DirectX 12 Ultimate duyurulana kadar 12 olarak kaldı.
Bu revizyonla birlikte Directüç boyutlu ve DirectX RayTracing’e değerli güncellemeler geldi. Bu niçinle eski sürümlere gelen yeni özelliklere isterseniz süratlice bir göz atalım.
- Değişken Oranlı Gölgelendirme (Variable Rate Shading)
- Mesh Gölgelendirici (Mesh Shaders)
- Örnekli Geri Bildirim (Sampler Feedback)
Bu özelliklerden birincisi, geliştiricilerin ve gölgelendiricilerin sahneye yahut sahnenin bir kısmına, hatta bir objeye ne çoğunlukla uygulandığının denetim edilmesine imkan tanıyor. Olağanda bir shader çerçeve içerisinde yer alan her bir piksele uygulanıyor ancak 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 manada bir kalite düşüşüne niye olsa da performans manasında kıymetli ölçüde olumlu bir tesire sahip. Bu niçinle uzakta olduğu yahut süratli hareket ettiği için harika gerçek gözükmesi gereken bir şey yoksa gölgelendirici oranlamayı düşürmek çok mantıklı.
Mesh Gölgelendirici
Mesh gölgelendiriciler, geometri süreç çizgisinin yeteneklerini ve performansını artırmaya yarayan bir teknoloji. Mesh gölgelendiriciler, ilkellerin ve zirve noktalarının rasterleştiricidilk evvel toplu işlenmesi yoluyla Vertex ve Geometry gölgelendiricilerin özelliklerini tek bir gölgelendirici kademesine dahil ediyor. Gölgelendiriciler ayrıyeten geometriyi yükseltebiliyor ve azaltabiliyor.
Bu özellik yardımıyla oyunlardaki karmaşık modeller ve sahnelerin performansa tesiri azaltılabiliyor. Bu, yıllardır geometri gölgelendiricileri (geometry shaders) ve mozaikleme (tessellation) ile söylenen ancak lafta kalan bir şeydi lakin artık büsbütün gerçek.
Örnekleyici Geri Bildirim
Örnekleyici geri bildirim özelliği de benzeri biçimde geliştiriciye daha fazla denetim imkanı sağlıyor lakin bu özellikte denetim imkanının ziyadesiyle sağlandığı şey dokudur. Örnekleyici geri bildirim özelliğinin potansiyel manada avantajı ise bellekten GPU’ya aktarılması gereken doku öğelerinin ölçüsünün azaltılmasıyla birlikte, oyuna ilişkin objelerin doku olarak oluşturulduğu vakit içinderda bunların daha tesirli kullanılmasına imkan tanınması.
Örnekleyici Geri Bildirim teknolojisinin bellek avantajını gösteren hareketli görsel. – Kaynak: Microsoft
DirectX 12 Ultimate’ın en son özelliği ise şahane bir grafik özelliği yahut bilgi sürece ile alakalı bir API değil. Microsoft, son güncellemeyle birlikte Windows ve Xbox platformu için olan API’lerini ortak toplu bir kütüphanede birleştiriyor. bu biçimdece iki platform ortası geçiş daha az çalışmayla daha kolay bir biçimde yapılabilecek.
Aslında özgün birinci Xbox’lardan beri Microsoft’un fikri buydu ama 360 ile birlikte bilgisayarlardan ziyadesiyle donanımsal ve yazılımsal olarak uzaklaşılmıştı. Series X ve S konsollarıyla birlikte bu gidişat biraz daha farklı bir tarafa evrildi. Konsollar artık yinedan bir PC olmaya yakın hale geldiğinden, yazılımsal manada da bu biçimdesine bir ortak kütüphanenin oluşturulması aslına bakarsan beklenen bir atılımdı.
Tüm yazı boyunca değindiğimiz şey aslında yalnızca geliştiricileri ilgilendirse de bu işin sonunda asıl yarar gorecek olan kullanıcılar. Geliştiricilerin ana odak noktası hala gerçekçi grafikler olsa da, ışın izleme kelam 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 sebebi, donanım üreticilerinin eskiye nazaran daha kuvvetli donanımlar üretmekte zorlanmasından kaynaklanıyor.
Yalnızca oyunları en güzel ayarlarda oynamak ve yeterli kare suratları elde etmek için kimse bir ekran kartına 1000 dolar veremez ve vermek de istemez. Ve üreticiler mamüllerinin azınlıktan çok olabildiğince halk tabanındaki son tüketiciye ulaşmasını ister. Bu niçinle uygun fiyata hayli daha uygun performans alınabilecek donanımlar üretmek bu niçinle pek değer arz eder.
İşte bütün bu geliştirmeler ve DirectX 12 Ultimate güncellemesi her insanın oyunlardan keyif alabilmesi için yapılan şeylerden birkaçı. Sizlerin de eklemek istediği bir şey var ise yorumlarda belirtebilir, sorularınız için Technopat Sosyal’de husus açabilirsiniz.