Gün geçtikçe bilgisayar donanımları gelişiyor ve buna bağlı olarak bilgisayar oyunlarında kullanılan grafik teknolojileri de daha kapsamlı hale geliyor. Bu nedenle geçen yıllarla birlikte yeni grafik ayarları karşımıza çıkıyor. Bilgisayar oyunlarını ilk oynamaya başladığımız yıllarda sadece 2 boyutlu oyunları oynayabiliyorduk ve bu oyunlarda hemen hemen hiçbir grafik ayarı bulunmuyordu. Mutlu mesut Mario’muzu oynamaya bir süre devam ettikten sonra Windows işletim sistemiyle tanıştık ve bilgisayarlarımız multimedya özelliklerine kavuştu. Artık ekran çözünürlüğü işin içine girmişti. Oynadığımız klasik DOS oyunları da artık Windows işletim sistemine taşınmış, farklı çözünürlüklere sahip monitörler ortaya çıkmıştı. Tüplü monitörlerimizde oyun oynarken oyunları daha yüksek çözünürlüğe alabiliyor, ekrana daha çok öğeyi sığdırabiliyorduk.
3 boyut teknolojisinin keşfedilmesiyle birlikte Diamond Monster ve 3DFX Vodoo gibi 3 boyut hızlandırıcı ekran kartlarıyla tanıştık. Bu ekran kartları ve 3 boyut teknolojisini kullanan oyunlar o dönem adeta bir devrim yaratmıştı. İşte bilgisayar donanımlarının ve oyunlarının ergenlik çağı olarak tanımlayabileceğimiz bu dönemde evi arabayı satıp parayı bu 3 boyutlu ekran kartlarına basmıştık. Klasik standart ekran kartımızın yanına bu 3 boyutlu hızlandırıcı kartları takıyorduk ve kutu kutu görünen 3 boyutlu kahramanlarımızla maceraya atılıyorduk. Zaman geçtikçe 3 boyut hızlandırıcı ekran kartları geliştiler, daha güçlüı hale geldiler, ek bir kart olmaktan çıkarak tek bir kart olarak bilgisayarımızdaki bütün görsel işlemleri yürütmeye başladılar. İşte bu evrim günümüzde halen devam ediyor ve yeni yeni grafik ayarları oyunlara kalite kazandırıyor.
Bu yazımızda bilgisayar oyunlarının ve donanımlarının evrimi sürecinde karşımıza çıkan ve günümüz oyunlarında sıkça kullanılan grafik ayarlarından bahsedeceğiz ve ne işe yaradıklarını anlatacağız. Bu sayede grafik ayarları sözlüğümüzü kullanarak oyunlarda aradığınız kaliteyi yakalamak için hangi ayarları değiştirmeniz gerektiği hakkında bir fikir sahibi olabileceksiniz.
Resolution
Grafik ayarlarının en temeli olan resolution – çözünürlük ekranımıza ne kadar piksel sığabileceğini belirliyor. 1280 x 720 veya 1920 x 1080 gibi ekranın enine ve boyuna kaç piksel sığdığını belirten ifadelerle temsil edilen çözünürlük ne kadar yüksek olursa ekranınızda o kadar detaylı nesneler veya o kadar geniş bir alan görebiliyorsunuz. Yüksek çözünürlük demek sisteminizin ekrandaki öğeleri çizebilmesi için daha çok çalışması ve daha çok yük oluşturması anlamına geliyor.
Yukarıdaki resmin sol tarafında düşük çözünürlüklü bir görüntü yer alırken sağ tarafında biraz daha yüksek çözünürlüklü bir görüntü yer alıyor. Çözünürlüğün oyunlarda oluşturduğu etkiyi bu görselden yola çıkarak tahmin edebilirsiniz.
Frame Rate, Vertical Synchronization ve Refresh Rate
Bu üç kavram birbirleriyle bağlantılı kavramlar. Üç kavramı açıklamaya refresh rate – tazeleme hızı ya da ekran yenileme hızını açıklamakla başlayalım. Refresh rate bir monitörün veya televizyon gibi bir görüntü biriminin ekrandaki görüntüyü saniyede kaç kere tazelediğini belirtiyor. Bilgisayar donanımımız tarafından yapılan çizimler monitörümüze ya da televizyonumuza iletildiğinde ekrandaki görüntü sürekli yenilenerek görüntünün akıcı bir şekilde oynatılması sağlanıyor. Refresh rate bizim ekranımızdaki görüntünün ne kadar akıcı olabileceğini belirliyor diyebiliriz.
Bilgisayarımızın donanımı da her saniyede -oluşturulan sahnenin yüküne bağlı olarak- belli sayıda çizim yapabiliyor. Donanımımızın gücüne bağlı olarak bilgisayarımızın bir saniyede yaptığı çizim sayısı ise frame rate – FPS (frames per second) – saniyedeki kare hızı olarak ifade ediliyor. Bilgisayarımızın kare hızı ne kadar yüksekse o kadar akıcı görüntü elde edebilme potansiyeline sahip oluyoruz. Bu potansiyeli ise az önce anlattığımız refresh rate limitliyor.
Bilgisayarımızın FPS değeri ne kadar yüksek olsa da bu görüntünün akıcı oynatılabilmesi için refresh rate değerinin doğru orantılı olarak yüksek olması gerekiyor. Eğer refresh rate değeriniz FPS değerinizden düşük olursa o zaman işler karışıyor. Ekranda nişlan alırken kamerayı hızlı bir şekilde sağa veya sola doğru çevirdiğinizde görüntüde dalgalanmalar ve yırtılmalar fark edebiliyorsunuz. Yukarıdaki resimde bu durumun tipik bir örneğini görebilirsiniz. İşte bu noktada vertical synchronization, kısa adıyla v-sync ya da Türkçe adıyla dikey senkronizasyon terimi devreye giriyor.
V-Sync bilgisayar donanımımızın ürettiği kare sayısını monitör veya televizyonunuzun tazeleme hızıyla eşleştiriyor. V-Sync ile bilgisayarınızdan gönderilen kare sayısı, ekranınızın tazeleme hızını aşmadığından görüntüdeki deformasyon ortadan kalkıyor.
Anisotropic Filtering
Anisotropic filtering ya da Türkçe adıyla eşyönsüz doku süzmesi oyunlarda kullanılan yüzey kaplamalarının ne kadar keskin görüntüleneceğini ifade eden bir terim. Bilgisayar donanımınız tarafından uygulanan anisotropic filtering ayarı ne kadar yoğunsa kaplamalardaki bulanıklaşma o derece az olmakta. Yukarıdaki resimde özellikle uzaktaki yol kaplamalarına göz attığınızda anisotropic filteringin etkisini açıkça görebilirsiniz.
Anti Aliasing
Anti aliasing ya da Türkçe adıyla kenar yumuşatma, oyunlardaki modellemelerin kenarlarındaki çatallanmayı azaltan, nesnelerin daha keskin görünmesini sağlayan bir grafik ayarı. Bu özellik sayesinde grafik işlemcimiz tarafından oluşturulan çizimlerdeki deformasyon azaltılabiliyor. Anti aliasingin kullanılmadığı oyunlarda hareketli görüntülerde çatallanan köşeler biraz göz rahatsız edebilmekte. Bu nedenle mümkün olduğunca bu ayarı yüksek tutmanızda fayda var.
Ambient Occlusion
Ambient occlusion oyunlarda büyük bir mücadele olan doğal ışık yansımaları yaratmak için geliştirilmiş bir yöntem. Eskiden gerçeğe yakın görüntüler oluşturabilmek için yüzeylerdeki ışık yansımalarını hesaplamak büyük bir işlem gücü gerektiriyordu ve bu da oyundaki kare hızını ciddi oranda düşürüyordu. Bu probleme çözüm olarak Ambient Occlusion tekniği geliştirildi. Bu teknik temel olarak bir nesnedeki ışık değerinin yakınındaki nesnelere göre hesaplanmasını sağlıyor. Bu sayede işlem yükü azaltılıyor ve ışık yansımaları daha gerçekçi görünüyor. Yukarıdaki resimde sol tarafta ambient occlusion olmayan bir görsel, sağ tarafta ambient occlusion uygulanmış bir görsel bulunmakta.
Ambient occlusion teknolojisinin SSAO, HBAO, HBAO+ ve HDAO gibi çeşitleri bulunmakta.
Motion Blur ve Depth of Field
Motion blur temel olarak hareketli görüntülerde ekranı bulanıklaştıran bir sinematik efekt. Bu efekt sayesinde oyunlarda kahramanımızla koşarken veya aracımızla yüksek hız yaparken arka plandaki görüntünün bulanıklaştığına tanık olabiliyoruz.
Depth of field ise bulanıklaştırma efektinin mesafe tabanlı olarak kullanılması anlamına geliyor. Bu sayede yukarıdaki resimde göreceğiniz üzere yakınımızda olan nesneler veya odak noktamız çok daha keskin bir şekilde görünürken uzaktaki nesneler daha bulanık görünüyor. Böylece oyunlarda sinematik bir derinlik hissi yaratılıyor.
Tessellation
DirectX 11 ile birlikte gelen bir yenilik olan tessellation temel olarak derinlik kavramına sahip yüzey kaplamaları yapılmasını sağlayan bir teknoloji. Eskiden oyunlarda kullanılan kaplamalar bir halı gibi görünüyordu. Bu nedenle bu kaplamaları daha gerçekçi gösterebilmek için tessellation teknolojisi geliştirildi.
Tessellation temel olarak bir kaplamadaki poligonları düz bloklar yerine küçük parçalara ayırıyor. Bu küçük parçalar yükseklik kodlarıyla birleştiriliyor ve displacement mapping adı verilen bir yöntemle alçak ve yüksek olarak parçaların yeri ayarlanıyor. Bu sayede kahramanların giysileri, canavarların pulları ve derileri, zırhlar ve yerdeki taşlar gibi yüzeyler çok daha gerçekçi görünüyor. Yukarıdaki resimde sol tarafta tessellation uygulanmamış bir görüntü, sağ tarafta ise tessellation özelliğinin aktif olduğu bir görüntü yer almakta.
Bloom
Bloom‘u şöyle ifade edersek açık bir şekilde anlaşılacaktır:
Uzun süre karanlık bir mağarada kapalı kaldığınızı düşünün. Gözleriniz bir süre sonra karanlığa alışır ve ışığı algılamak için göz bebekleriniz doğal olarak büyür. Fakat gün ışığına çıktığınızda ise göz bebeklerinizin büyümüş olmasından ötürü gözünüz ışığa hemen uyum sağlayamaz ve ışık her yüzeyden yoğun bir şekilde yansır. Sonuçta karşınızdaki nesnelerin ışık almayan kenarlarında dahi ışık yansıması görebilirsiniz.
Bloom adlı görsel efekt de oyunlarda tam bu etkinin yaratılmasını sağlıyor. Yukarıdaki resimde bloom efektinin nasıl oyunlarda kullanılabildiğinin bir örneğini görebilirsiniz.
Nvidia Physx ve AMD TressFX
Nvidia Physx altında birkaç farklı bileşen bulunduran bir hesaplama sistemi olarak tanımlanabilir ve AMD TressFX ile karşılaştırıldığında daha kapsamlı olduğu söylenebilir. Bu nedenle bu iki kavramı anlatırken ilk önce Nvidia Physx ve bileşenlerinden bahsedeceğiz.
Nvidia Physx temel olarak oyunlarda yapılan fiziksel hesaplamaların yükünü ana işlemcimiz üzerinden alıp grafik işlemcimiz üzerine taşıyan bir sistem. Bu sistem sayesinde oyunlarda daha gerçekçi patlama, parçalanma, dalgalanma gibi fiziksel koşullar görebiliyoruz. Duvara ateş ettiğinizde duvardan kopup yere düşen ve etrafa saçılan parçalar, kırılan camlar, rüzgarda doğal bir şekilde dalgalanan bayraklar veya kıyafetler Physx ile gerçekleştirilebilecek fiziksel hesaplamalar arasında:
Physx altında kıyafet, parçalanma, parçacıklar ve sıvılar gibi alt kategoriler yer alıyor. Nvidia’nın oyunlardaki saç modellemelerini geliştirmek üzere kullandığı Nvidia Hairworks‘u de aslında Physx’in altına dahil edebiliriz; çünkü oyunlarda doğal saç hareketleri oluşturmak büyük bir fiziksel hesaplama gücü gerektiriyor.
Nvidia Hairworks sayesinde oyunlarda gördüğünüz kahramanların saçları rüzgarda doğal bir şekilde dalgalanabiliyor; ayrıca canavarların kürkleri ve tüyleri daha gerçekçi görünüyor. Nvidia Hairworks, The Witcher 3’te ön plana çıkmıştı:
AMD cephesinin Nvidia Hairworks’e cevabı ise AMD TressFX adlı hesaplama sistemi. AMD’nin tanımına göre bir gerçek zamanlı saç fiziği sistemi olan AMD TressFX de saçların dalgalanmalarını ve savrulmalarını daha doğal hale getirmeyi amaçlıyor. Bu teknolojinin örneğini Tomb Raider oyununda görmüştük: