Ray Tracing Faydalı Mı, RTX Anlamlı Mı?

Peki ya ışınlar da bizi izleyecek mi?

Geçen hafta size NVIDIA RTX serisinin yeni dizüstü modellerinden bahsetmiştik. Nihayet yüksek performanslı Super modelleri ve fiyat düşüşleriyle birlikte, RTX serisi dizüstü sistemlerde de popülerleşecek gibi gözüküyor. İki sene önceki RTX lansmanı sırasında eleştirdiğimiz fiyatlar normalleşti ve zaman içinde RTX’in faydaları da arttı. Bunda performansa büyük katkısı olan DLSS’in yeni 2.0 sürümü ile birlikte görüntü kalitesinin ve piksel yükseltme seçeneklerinin artmasının da rolü var. Ama açık olalım eğer GTX yerine RTX tercih ediyorsak bunun asıl sebebi “Real-Time Ray Tracing”, Türkçesi ile “Gerçek Zamanlı Işın İzleme”, biz oyuncular için “DXR” yani DirectX Raytracing ya da “Vulkan Ray Tracing”.

Ben yazının kolay okunabilmesi adına bu terimlerden “DXR”ı kullanacağım, çünkü piyasaya çıkan oyunların büyük çoğunluğunda var olan destek bu. Ama unutmayın ki “Gerçek Zamanlı Işın İzleme” API’den, platformdan, cihazdan bağımsız olarak her türlü oyunda karşımıza çıkacak bir gün. Yani Candy Crush’da neden olmasın değil mi? Ama kısacası ve en basiti daha iyi ve gerçekçi grafikler. Gelin geçen iki senede olaylar nasıl gelişti ve bugün hangi noktaya geldik, DXR bugün ne ifade ediyor bir bakalım.

Bakalım bakmasına da aslında yazıyı hiç uzatmayıp en çıplak gerçeği direkt söyleyebiliriz de: “Dünyanın en çok beklenen oyunu Cyberpunk 2077, DXR desteği ile geliyor. Yani Cyberpunk’ı en iyi grafiklerle oynamak için RTX lazım” bitti, bu kadar. Merak etmeyin ben size uzun uzun anlatacağım tabii ama açık olalım, çoğumuzun fikrini belirleyecek tek gerçek bu olacak. Yaşı yetenler tek bir Half-Life 2’yi oynamak için hepimizin o zaman nefret ettiği Steam’i nasıl paşa paşa kullandığımzı hatırlar. Biz sıkı oyuncular için o en sevdiğimiz oyunu hakettiği gibi oynayalım da, birkaç ay aç kalsak da olur. O yüzden çoğumuz için bu teknolojiyi kullanma sebebi Cyberpunk olacak. Hatta eminim hali hazırda cihazında DXR desteği olanlar bile ilk defa Cyberpunk’da ayarlara girip bakacaklar nasıl açılıyor, nasıl kullanıyor diye.

İki resim ilk bakışta çok benzer görünebilir. Ama alan ve objeleri tek tek incelemeye başladığınızda özellikle ışık ve gölgelerdeki doğallık fark yaratmaya başlıyor. Bu farklar bir araya geldiğinde sahnedeki derinlik duygusu değişiyor.

Eğer Cyberpunk hayatımıza Gerçek Zamanlı Işın izlemeyi sokacaksa, buna sahip olmanın tek yolu da NVIDIA RTX olacak. Üzgünüm üst seviyeden vurdum ama gerçek gerçektir. Aaa… evet GTX’e de DXR desteği geldi, RDNA 2’de de DXR olacakmış falan filan… Ama açık olalım RTX dışındaki bir seçenekten DXR açtığınızda performans alma umudunuz var mı cidden? O zaman gelin biz Cyberpunk 2077 için aldığınız NVIDIA RTX kartınız ile başka neler yapabileceğimize bakalım.

RTX’in çıkışı sırasında birkaç sıkıntı vardı. Birincisi ışın izleme için altyapı desteğinin zayıf olması ve bunun oyunların bu teknolojiyi desteklemesini zorlaştırmasıydı. DirectX 12 Ultimate ve DXR’ın yaygınlaşması ile birlikte bu sorun çözülmüş gibi gözüküyor. Sadece Cyberpunk değil CoD: Modern Warfare, Watch Dogs: Legion, Control, Dying Light 2 gibi bir dolu oyunda artık desteği var veya geliyor. Muhtemelen haziran ayında sanal fuarlarda yeni nesil oyunlar açıklanmaya başladıkça liste hayli uzayacak. Kısacası artık PC’ye çıkan AAA oyunların çoğunda DXR desteğini göreceğiz.

Oyunların desteğinin bu denli artmasının bir sebebi de büyük yayıncıların DXR’a yatırım yapmaya hevesli olması. Şimdiden EA, Activision, Ubisoft, CD Projekt gibi çoğu büyük yayıncı bu işe girdi ve bu diğerleri üzerinde de kaçınılmaz olarak baskı yaratacak. Sonuçta kimse teknolojide geri kalmış gözükmek istemez. Ayrıca yeni nesil konsolların ışın izleme desteklemesi de önemli bir baskı unsuru. Yeni nesle oyun yapıyor ama ışın izleme desteklemiyorsan eksik iş yapmış gözükeceksin. Hiçbir geliştirici bunu istemez.

Işın izleme’nin kendini en net gösterdiği konu şeffaflık ve yansımalar. Rasterization bu ikisinde çok kötü olduğu için oyun geliştiriciler bol cam kullanmayı hiç sevmez. Bu da zamanla değişecek.

Destekleyen oyun sayısını arttıracak asıl şey ise oyun motorlarının desteği elbette. Sonuçta her geliştiricinin de bu babalar gibi kendi motorunu yazacak gücü yok. Burada da gözler Unreal Engine ve Unity’ye çevriliyor. Bu iki popüler motor da yaklaşık bir sene önce DXR desteğini duyurdular ve her ikisi de ışın izleme ile yapabileceğiniz temel efektlere sahip. Elbette geliştiricilerin bu fonksiyonları öğrenmesi, uygulaması, o projelerin tamamlanıp piyasaya çıkması vakit alıyor. Ama üzerinden bir sene geçtiğine göre artık sene sonuna doğru, bu motorları kullanan daha küçük yayıncıların da oyunlarında DXR desteğini kullanmaya başladığını görebiliriz. Kısacası bu sene DXR’ın bir standart haline geldiğini görmeye başlayacağız.

Gözlerimiz ne fark görecek?

Kısacası oyun desteği açısından DXR için işler yoluna giriyor artık. Ama diğer bir konu da destekleyen oyunlarda ne kadar fark gördüğümüz. Bu işte tamamen geliştiricinin yeteneği ve oyun yapısı ile ilgili ve bunu tam anlayabilmek için, çok basit de olsa ışın izleme ile önce ne yapabildiğimize bakmak lazım. Burada da temel beş tekniğe odaklanmak gerekiyor:

Ray Traced Shadows: Oyundaki gölgeleri ışın izleme ile çizerseniz kısa mesafede keskin ama uzaklaştıkça dağılan gerçekçi keskinlik ve tonlarda gölgeler elde edersiniz.
Ray Traced Reflections: Oyundaki yansımaları ışın izleme ile oluşturduğunuzda sadece ışık veya karaltı olarak değil görüntü olarak da yansımalar elde edersiniz ve ayrıca ekran dışında kalan objeler yansımalarda görünebilir.
Ray Traced Global Illumination: Bu aydınlatma tekniği ışın izleme kullanarak mekanlarda ışınların yüzeyler arasında yansıyarak doğal bir genel aydınlatma oluşturmasını sağlar.
Ray Traced Ambient Occlusion: Mekandaki yaygın ışığın objeler ile nasıl etkileşeceğini belirleyen bu teknik, ışın izleme ile yapıldığında özellikle kıvrımlı, katlı, kenarları olan objelerin daha gerçekçi ve daha doğal derinliğe sahip görünmesini sağlar.
Ray Traced Translucency: Cam gibi saydam yüzeylerin ışık geçirgenliğini eğer ışın izleme ile hesaplarsanız çok daha gerçekçi ve yansıma ve saydamlığı doğru dengeleyen görüntüler elde edersiniz.

Bu tekniklerin nasıl çalıştığını, nasıl göründüğünü ve detaylarını Unreal Engine’in şu sayfasında detaylı görebilirsiniz.

Şu ana kadar DXR desteğine sahip olan oyunlar genelde bu beş teknikten birini veya birkaçını kullanıyor. Gönül ister ki hepsini de kullansınlar ama performans sebebiyle bu her zaman mümkün olamayabiliyor. O yüzden de DXR’ın grafik kalitesine farkı hangi teknik seçildiğine ve nasıl uygulandığına göre değişebiliyor. Öncelikle oyunda bu tekniklerden hangi hangileri kullanılmış ve bu oyuna ne kadar uygunlar çok önemli.

Oyunun grafikleri ne kadar basit veya eskiyse ışın izlemenin farkı o kadar net görülüyor. Üstelik Minecraft RTX, ışın izlemeyi efekt olarak kullanmıyor, grafikler tümüyle ışın izleme ile oluşturuluyor (Path Tracing).

Diğer bir önemli konu da sizin donanımınızın bu efektleri ne kadar kaldırdığı. Çünkü ışın izlemenin klasik rasterization’dan bir farkı çok ciddi şekilde ölçeklendirilebilmesi. Yani sizin ışınları ne kadar izlemek istediğiniz performansı ciddi etkiliyor. Eğer ışınları iki kere sektirirseniz farklı, beş kere sektirirseniz farklı grafik kalitesi ve performans alıyorsunuz. DXR destekli çoğu oyunun ayarlarında gördüğümüz düşük, orta, yüksek seçenekler bunu ifade ediyor. Elbette siz istediğiniz kartla istediğiniz ayarı seçebilirsiniz, ama optimal FPS değerlerine göre ayarlandığında RTX 2060 ile RTX 2080 Super’in aynı sahnede vereceği görüntü arasında büyük fark olacaktır. Bunu özellikle ışın izlemeyi üç boyutlu tasarımda kullananlar çok iyi bilir. Bir sahne çizersiniz, sonra kaliteli olsun diye çekersiniz ayarları sonuna dek, ışınlar seksin de seksin, pürüzler, noktalar azalsın da azalsın. İki saat sonra gerçek yüzünüze vurur çizimi iptal edip insan gibi ayarlarla bir daha başlatırsınız. Işın izlemenin desturu da budur “Ne kadar ekmek, o kadar köfte”.

Bütün bunları değerlendirince ışın izleme ilk çıktığında elimizdeki örneklerin ne kadar zayıf olduğunu tekrar görüyoruz. Özellikle Battlefield V, “DXR nasıl kullanılmamalı” konusunda bütün sektöre iyi bir ders oldu. Sadece yansımaları kullanan oyun bunun da hakkını çok veremiyordu. İlk olarak Metro Exodus ile birlikte ışın izlemenin farkını, faydasını gördük ama bu oyun da sadece genel aydınlatmada kullanıyordu teknolojiyi.

Işın izlemenin hakkını gerçekten veren ilk oyunumuz ise Control oldu. Bana sorarsanız DXR bize ne katar diye düşünürken bakılması gereken oyun da bu. Çünkü diğerlerinden farklı olarak Control tam beş farklı ışın izleme tekniğini bir arada ve iyi kullanıyor. Bunlar yukarıda saydıklarımız değil, çünkü oyun Remedy’nin kendi geliştirdiği motoru kullandığından biraz daha farklı kullandığı teknikler. Ama gerçek anlamda ışın izleme kullanarak harika grafiklere sahip olan ilk oyunu Control olarak görmek çok da yanlış olmaz. Hatta tüm geliştiriciler için de bir anlamda ders niteliğinde ve Control ile birlikte DXR’ın sadece yaygınlığı değil, verdiği katkı da artacak gibi görünüyor. Control hangi teknikleri nasıl kullanıyor burada uzun uzun anlatmayacağım ama özellikle İngilizcesi olanlar bu konuda NVIDIA’nın hazırladığı şu makaleden bütün detaylarını görebilirler.

Eski Oyunlara Yeni Can

Tabii DXR’ın diğer bir ilginç kullanımı da grafiklerinin içi geçmiş oyunlara yeniden can vermek. Bu konuda Quake II RTX ve Minecraft RTX mutlaka dikkatinizi çekmiştir. Sonuçta bu ışın izleme teknolojileri doğru kullanıldığında o kadar çarpıcı ki eski oyunların düşük poligon ve dokularını bile bambaşka gösteriyor. Aslına bakarsanız bir sürü oyunun yeniden yapıldığı bu dönemde, bu imkana sahip olmayan oyunlar için muhteşem bir fırsat bu. Eğer yapımcılar oyunlarını DX12 uyumlu hale getirip DXR eklerlerse yeniden piyasaya sürme şansına sahip olabilir.

Renk ve dokular kalktığında iki metot arasında gölge ve ışık anlamında ne kadar fark olduğunu daha net görüyorsunuz. Özellikle kumaş gibi yumuşak kıvrımlı objelerde.

Aslında bunu yakında kendimiz de yapabileceğiz gibi. Mesela Skyrim’i, GTA 5’i veya Witcher 3’ü ışın izleme desteğiyle oynamak istemez misiniz? Çünkü eski oyunları canlandırmada çok kullanılan ReShade (reshade.me) yazılımına da ışın izleme desteği kapıda. Henüz beta aşamasında olan ve sadece Patreon destekçileriyle paylaşılan mod (www.patreon.com/mcflypg) dilediğiniz her oyuna ışın izleme desteği eklemenize olanak verecek. Etkisi elbette ki oyun geliştiricilerin yaptığı kadar değil ve RT çekirdeklerini kullanamadığından performansı zayıf. Ama bana sorarsanız DXR’ın en güzel kullanımlarından biri olabilir bu fikir. NVIDIA benzer bir özelliği GeForce Now ve Experience’a eklese ve eski oyunlardaki derinlik verisini kullanarak Ray Traced Ambient Occlusion tekniğini uygulasa tam anlamıyla bir çığır açar.

Işın izleme ve DXR dünyasındaki gelişmeler bu şekilde işte. Daha uygun fiyat, daha çok özellik, daha yüksek performans, daha çok oyun desteği ve daha fazla görsel fark… Günden güne RTX serisinin lansmanda vaat ettikleri hayata geçmeye başladı. O yüzden artık aradaki farkı verip de RTX almak anlamlı bir yatırım haline geldi diyebiliriz. Ama zaten Cyberpunk geliyor, hepimiz kesemiz yettiğince ve yettiğinde paşa paşa alacağız nasıl olsa =)

YORUMLAR
William Blazco
29 Nisan 2020 19:53

Firmalar ve oyun geliştiricileri tarafından çokça abartılan, pohpolanan bir teknoloji. Oyunlarda ışıklandırmalar, yansımalar sahte de olsa göz doyurucu, tatmin edici zaten, ayrıca  gerçek zamanlı ışın izleme teknolojisinin grafik işlemcisine ciddi bir yük bindirdiği de ortada dolayısı ile olmasa da olur diye düşünüyorum ben.

Ghost AssassiN
29 Nisan 2020 19:25

Bana da nedense zaten var olan bir şeyin daha da arttırılması olarak geliyor.Yani sıfırdan olan bir şey değilmiş gibi.Örneğin ışın izlemeli görsellerde daha dolgun gölgeler ve varsa cam yüzeyler daha parlak görünürken diğer tarafta bunlar high ayarda bırakılmış bir oyunmuş gibi görünüyor.Oysaki very high ve ultra'da böyle gözükmecektir o görüntü (bana öyle geliyor nedense).Örneğin şu cama yansıma olayı sanki ilk defa gösteriliyormuş gibi davranılıyor.Evet belki iyi kullanmıyordu ama yine de kullanan oyunlar vardı.Mesela araba yarışı oyunlarında çokça kullanılıyordu. 

a.berkay.dursun
Ghost AssassiN
29 Nisan 2020 19:53

Eskiden fake'liyorduk. Şimdi gerçek ışın kullanıyoruz fark orda. Eskiden yoktu yani. O yansımaları, aynaları vs hep çeşitli trick'ler kullanarak yapıyorduk. 
Eskiden aynanın arkasına kamera koyardık, o kameranın gördüğü görüntüyü ayna üzerinde render ederdik.
Şimdi ortamdaki ışık kaynağından çıkan ışını ayna üzerinden sektirip, "ana kamera" üzerinde yakalayıp render ediyoruz.

RTX'in sıkıntısı şu: (inherit bir sıkıntı değil aslında, pazarlama sıkıntısı diyelim):
-Biz 30 yıldır bu "fake"leme konusunda o kadar uzmanlaştık ki, Ray Tracing gibi gerçekçi fiziksel yansıma tekniklerini aratmayacak çıktıları zaten üretiyorduk çeşitli teknikler ile.
RTX geldiğinde bu dolambaçlı teknikleri, gerçek fiziksel hesaplamlara bıraktı. Ama ortaya çıkan "çıktı" görsel olarak o kadar değişmedi. Çünkü zaten kullandığımız o teknikler çok iyi sonuç veriyordu.

O yüzden RTX hiç bir zaman abartılığı gibi devasa görsel değişimler getirmeyecek oyun sektörüne. Çünkü RTX'in getireceği görsel feature'lara dediğim gibi zaten sahiptik.

FAKAT;
Biz, sadece önemli olan şeyleri hep fake'ledik bugüne kadar. Oyunda ayna gerekiyorsa, ayna yansımasını fake'ledik. Fakat bir çok zaman oyunda aynanın bir önemi olmadığı için, bunu bile yapmıyorduk. Belki sadece karakter oyunun başında kendi odasında başlıyorsa, kendi odasındaki aynada yansıma özelliği oluyordu, genelde ona bile gerek kalmıyordu. 

Çoğu zaman yerdeki su göletindeki yansımayı bile dert etmedik. Silahın, bardağın, metal yüzeyin üzerindeki gerçekçi yansımalar ise hemen hiç bir zaman umrumuzda olmadı. O yüzden o kadar iyi fake'lemeye hiç bir zaman uğraşmadık. Gerek yoktu.

RTX ise, neyin önemli neyin önemsiz olduğundan bağımsız olarak "genel" bir çözüm sunuyor bu probleme. 
Kimse yerdeki göleti, arabanın köşesindeki parlak tamponu, silahın kenarındaki parlak yüzeyin yansımasını düşünmek zorunda kalmıyor artık. Materyalleri RTX uyumlu yaptığın sürece, gerisini fizik hesaplamaları kendisi hallediyor.

Şu anda "RTX Destekli" lanse edilen oyunlarda, oyunun sadece %0.1'inde ancak RTX uyumlu materyal kullanılyıordur. Geri kalanı yine eski usül hesaplanıyor. Çünkü tamamını RTX yapmaya daha bir kaç nesil GPU'lar yetişemez. 

%100 RTX olan tek bir oyun var sanırım, ki o da tam %100 değil, %99 falan, o da Minecraft. O da hesaplaması kolay olduğu, basit geometrilerden oluştuğu için. 

a.berkay.dursun
a.berkay.dursun
30 Nisan 2020 02:01

Yanıtı sana yazıyorum, kendime gidiyor. Yine boktan OGZ Chat sistemi tebrikler. İyi bok yediniz Disqus'ı kaldırıp...

a.berkay.dursun
a.berkay.dursun
30 Nisan 2020 02:00

İhtisas: Bilgisayar Mühendisliği
Alan yönelimi: Yapay Zeka
Profesyonel iş: Game dev
Hobi: Robotics dev

Ne ararsan var multidisipliner çalışıyorum :D Ama asıl uzmanlığım oyun geliştirme üzerine tabi.

a.berkay.dursun
a.berkay.dursun
30 Nisan 2020 01:59

[Bu yorum kullanıcı tarafından silinmiştir]

Ghost AssassiN
a.berkay.dursun
29 Nisan 2020 21:30

Mesleğiniz nedir hocam?

ocelot1789
a.berkay.dursun
29 Nisan 2020 21:11

Çok abüsrd bir örnek olacak ama aklıma ilk gelen o oldu aynı firmanın teknolojileri anlamında. Zamanında Hairworks'ü çok övmüşlerdi fakat şu an kullanmayan çoğu firmanın saç tasarımları daha iyi ve hairworks gibi kasmıyor da. Çok ilginç olaylar yapıyor Nvidia ama bence tamamen göz boyama. :D


ocelot1789
29 Nisan 2020 16:38

Kapalı olan görseller çok daha iyi değil mi ya? Bir bana mı öyle geldi? Bu çok bariz bir hile. Nasıl ki Blur kullanmak bir şeylerin göze batmasını engelleyecekse kaplama ve diğer detay hatalarını böyle parlaklıkla geçiştirip örtmeye çalışacaklar. Çoğu eski oyunun da Remastered tekniği böyleydi. Bir tuhaf görünüyor çoğu zaman...

Parolamı Unuttum