RX 5700 XT'de Ray Tracing nasıl?

Şu an (bence) Nvidia RTX teknolojisini geliştirmek yerine GPU'larını F/P yapmak zorunda, intel bile çekirdek sayısını artırmak zorunda kaldı. Super serisi zaten böyle giderse alınmayacak fiyatlarda. (Ülkemizde) (Sadece Super serisi için ekran kartlarını satanlara gülüyorum)
 
Şu an (bence) Nvidia RTX teknolojisini geliştirmek yerine GPU'larını F/P yapmak zorunda, intel bile çekirdek sayısını artırmak zorunda kaldı. Super serisi zaten böyle giderse alınmayacak fiyatlarda. (Ülkemizde) (Sadece Super serisi için ekran kartlarını satanlara gülüyorum)
Doğru. Yurtdışında fiyatlar Super serisi için uygun ama ülkemizde olması gerekenden çok daha pahalı. Onlarda fiyatlar yakın olduğu için almışken iyisini alıyorlar, biz ise 3-5 FPS için 1000 TL fazla ödemek zorunda kalıyoruz.
 
Bir kaç ufak hatırlatma (konuda geçen bazı kavramlara dair)

Ray Tracing: ışığın, geometrik bir dünyada fiziksel olarak yolunu takip edip, yüzeylerde sekerek diğer yüzeylere ulaşmasını da hesaba katarak gerçekçi aydınlık/gölge oranları oluşturmak; doğru hesaplanmış renk tonlamaları ve de yansımalar yaratmak için kullanılan felsefe. Bunun türlü, eski ve verimsiz yöntemleri animasyonlarda ve film efektlerinde 30 yılı aşkındır kullanılıyor. Bununla beraber, işin izlemenin 5-6 farklı yöntemi/hesaplama şekli/işleme şekli var.

DXR ya da XRT: DirectX 12'nin son güncellemesi ile Ray Tracing desteği eklenmesine verdiği kısaltma isimler. Vulkan kütüphanesinde ve yeni çıkacak konsollarda muhtemelen başka bir isimle anılacak. Kısaca RT de diyebilirler belki.

RTX: Nvidia'nın kendi özel donanımı ve kendi hesap yöntemleri ile, yeni çıkan kartlarına özel bir şekilde Ray Tracing hesabı yaptıkları metodun patentli adı. Bu method simdilik sadece aydınlık düzeyi ve yansımaları hesaplıyor, gölgeler ve ara karanlık noktalar için hala klasik Directx teknikleri kullanılıyor.

AMD'nin Ray Tracing desteğine gelince; AMD kartlar RTX tipi Ray Tracing hesabı yapmayacaklar, orası kesin. Zira bu metod Nvidia'ya patentli. Ancak diğer yöntemleri kullanmamaları için hiç bir sebep yok. zaten yeni nesil konsolların ikisi de AMD ile anlaşma yaptılar ve Ray Tracing'in yeni nesil oyunlara geleceğini söylediler. Demek ki AMD kartlar bu işi yapabiliyorlar.

Bir de geçtiğimiz aylarda Crytek'in AMD Vega 64 ile yaptığı bir deneysel Cry Engine Ray Tracing videosu vardı. Oldukça başarılı bir şekilde ışık, gölge, yansıma vb bütün efektler çalışıyordu.
 
Ray Tracing Microsoft'un teknolojisi Nvidia'da sadece hızlandırıcı çekirdekler var. AMD destekliyor ancak performansı Nvidia gibi olmaz, eğer desteklemese Crytek nasıl Vega 56 ile Ray Tracing demosu yapacaktı?
 
Ray Tracing Microsoft'un teknolojisi Nvidia'da sadece hızlandırıcı çekirdekler var. AMD destekliyor ancak performansı Nvidia gibi olmaz, eğer desteklemese Crytek nasıl Vega 56 ile Ray Tracing demosu yapacaktı?

Ray Tracing (ışın izleme) Microsoft'un değil. Animasyon yapımında çok uzun yıllardır kullanılan, bir kaç stüdyo tarafından geliştirilmiş, eski bir matematiksel yaklaşım. Microsoft'un yaptığı şey, bunu alıp oyunlarda kullanilabilsin diye DirectX kütüphanelerine dahil etmek. Böylece bir oyun firması oyununa Ray Tracing ekleyince hesaplamaları ekran kartına yaptırmak (hem de ek yazılım yüklemeden) mümkün olacak. Aksi takdirde DirectX içinde olmayan bir grafik hesabı ancak işlemci ile yapılmak zorunda olduğu için çok çok yavaş, ve hatta imkansız olurdu.

Ancak ışını "izlemenin" ya da gideceği yeri hesaplamanın bir sürü farklı yöntemi var. Yani matematik problemi gibi düşünürsek, çözüme ulaşmanın birden fazla yolu var. O da hesabı yapacak oyun ve firmaya kalmış bir şey.

DirectX kütüphaneleri sadece input alırlar ve input'un karşılığını yaparlar. Örneğin, DirectX gölgenin nasıl yapılacağını biliyor olsun. Artık ihtiyacı olan; ona birinin gelip "şuraya, şu boyutta, şu şekilde, şuradan şuraya uzayan, kenarları % şu kadar bulanık, karanlık yüzdesi şu kadar bir gölge çiz" demesi.

Şöyle düşünün; siz 3 boyutlu bir dikdörtgenler prizmasını nasıl resmedeceğinizi biliyorsunuz, bense onun boyutlarını hesaplıyorum. Size dönüp, "köşe koordinatları a, b, c, d, e, f, g, h olan prizmayı çizin" diyorum. Siz tarife göre çiziyorsunuz. Ben sizin 3 boyutlu bir şey kafanızda nasıl canlandırdığınızı, onu 2 boyutlu bir kağıda nasıl çizdiğinizi bilmiyorum, bununla ilgilenmiyorum. O sizin hüneriniz. Hesapları yapmak da benim işim. Siz de bana o sayıları nereden bulduğumu sormuyorsunuz.

Directx de bunu yapar, hesaplama işine karışmaz. O, matematiksel sonucu görüntüye dönüştürme yöntemlerini içerir ve ekran kartı sürücüsü ile ortak çalışıp görüntünün son halini çıkarır.

DirectX içindeki Ray Tracing de öyle. Siz ona "buradan buraya kadar şu tonda açılan bir kırmızı ışık düşüyor" diye bilgiyi verirsiniz. O da ekran kartı ile ortak çalışıp o rengi oraya işler. Işığın oraya nasıl düştüğünü nasıl ve hangi yöntemle hesapladığınızı sormaz.

Eğer dilerseniz, kullanmanız üzere kendi kaynak kodunda türlü yöntemlerin doküman ve tavsiyelerini içerir, ama kullanıp kullanmamak size kalmıştır.

Nvidia da hesap için kendi yöntemini (ve donanımını) kullanıyor. Hatta yöntemin çalışma biçimi, bugün bütün oyunlarda poligon bazlı iç içe geçme hesabına (particle collision) çok benzer bir metod. İlk Doom oyunu zamandan beri, kurşunun düşmana ulaşıp ulaşamadığını belirlemek için kullanılıyor. Işık her ilerlediğinde geometrik alanın arka tarafı hesaptan çıkarıldığı için (çok basite indirgeyip anlattım, aslında fazlası var ama konu dışı olmasın) her yeni hesaplama, bir öncekinin yarısı kadar zorlu oluyor. Yani ışığın varacağı yere doğru hesap iyice kolaylaşıyor. Bunu da özel bir donanımla yapınca işlem nispeten hızlı bir şekilde sonuca ulaşıyor.

Cry Engine demosunda kullanılan Ray Tracing teki ışığın yönünü hesaplama yöntemi, Nvidia'nın kullandığı yöntem değil. CryTek'e patentli, başka bir yöntem. Sonuç aynı olsa da gidiş yolu farklı yani :)
 
Ray Tracing (ışın izleme) Microsoft'un değil. Animasyon yapımında çok uzun yıllardır kullanılan, bir kaç stüdyo tarafından geliştirilmiş, eski bir matematiksel yaklaşım. Microsoft'un yaptığı şey, bunu alıp oyunlarda kullanilabilsin diye DirectX kütüphanelerine dahil etmek. Böylece bir oyun firması oyununa Ray Tracing ekleyince hesaplamaları ekran kartına yaptırmak (hem de ek yazılım yüklemeden) mümkün olacak. Aksi takdirde DirectX içinde olmayan bir grafik hesabı ancak işlemci ile yapılmak zorunda olduğu için çok çok yavaş, ve hatta imkansız olurdu.

Ancak ışını "izlemenin" ya da gideceği yeri hesaplamanın bir sürü farklı yöntemi var. Yani matematik problemi gibi düşünürsek, çözüme ulaşmanın birden fazla yolu var. O da hesabı yapacak oyun ve firmaya kalmış bir şey.

DirectX kütüphaneleri sadece input alırlar ve input'un karşılığını yaparlar. Örneğin, DirectX gölgenin nasıl yapılacağını biliyor olsun. Artık ihtiyacı olan; ona birinin gelip "şuraya, şu boyutta, şu şekilde, şuradan şuraya uzayan, kenarları % şu kadar bulanık, karanlık yüzdesi şu kadar bir gölge çiz" demesi.

Şöyle düşünün; siz 3 boyutlu bir dikdörtgenler prizmasını nasıl resmedeceğinizi biliyorsunuz, bense onun boyutlarını hesaplıyorum. Size dönüp, "köşe koordinatları a, b, c, d, e, f, g, h olan prizmayı çizin" diyorum. Siz tarife göre çiziyorsunuz. Ben sizin 3 boyutlu bir şey kafanızda nasıl canlandırdığınızı, onu 2 boyutlu bir kağıda nasıl çizdiğinizi bilmiyorum, bununla ilgilenmiyorum. O sizin hüneriniz. Hesapları yapmak da benim işim. Siz de bana o sayıları nereden bulduğumu sormuyorsunuz.

Directx de bunu yapar, hesaplama işine karışmaz. O, matematiksel sonucu görüntüye dönüştürme yöntemlerini içerir ve ekran kartı sürücüsü ile ortak çalışıp görüntünün son halini çıkarır.

DirectX içindeki Ray Tracing de öyle. Siz ona "buradan buraya kadar şu tonda açılan bir kırmızı ışık düşüyor" diye bilgiyi verirsiniz. O da ekran kartı ile ortak çalışıp o rengi oraya işler. Işığın oraya nasıl düştüğünü nasıl ve hangi yöntemle hesapladığınızı sormaz.

Eğer dilerseniz, kullanmanız üzere kendi kaynak kodunda türlü yöntemlerin doküman ve tavsiyelerini içerir, ama kullanıp kullanmamak size kalmıştır.

Nvidia da hesap için kendi yöntemini (ve donanımını) kullanıyor. Hatta yöntemin çalışma biçimi, bugün bütün oyunlarda poligon bazlı iç içe geçme hesabına (particle collision) çok benzer bir metod. İlk Doom oyunu zamandan beri, kurşunun düşmana ulaşıp ulaşamadığını belirlemek için kullanılıyor. Işık her ilerlediğinde geometrik alanın arka tarafı hesaptan çıkarıldığı için (çok basite indirgeyip anlattım, aslında fazlası var ama konu dışı olmasın) her yeni hesaplama, bir öncekinin yarısı kadar zorlu oluyor. Yani ışığın varacağı yere doğru hesap iyice kolaylaşıyor. Bunu da özel bir donanımla yapınca işlem nispeten hızlı bir şekilde sonuca ulaşıyor.

Cry Engine demosunda kullanılan Ray Tracing teki ışığın yönünü hesaplama yöntemi, Nvidia'nın kullandığı yöntem değil. CryTek'e patentli, başka bir yöntem. Sonuç aynı olsa da gidiş yolu farklı yani :)
Üstat açıklamayı çok güzel yapmış. Eline sağlık.
 

Yeni konular

Geri
Yukarı