Anasayfa Makale Path Tracing Nedir? Ray Tracing İle Farkı Ne?

Path Tracing Nedir? Ray Tracing İle Farkı Ne?

Oyun grafikleri son on, hatta özellikle son beş yıl içerisinde çok ciddi ilerlemeler kaydetti. Gerçekçi görsellere yetişmek amacıyla donanımlar sürekli gelişirken, teknoloji devleri daha yüksek kalite, performans ve deneyim sunmak amacıyla yazılım alanında her geçen gün üzerine koymaya devam ediyor. Bugün ise tıpkı ray tracing (ışın izleme) gibi görsel kaliteyi artıran, gelecekte ismini sıkça duyacağımız oldukça önemli bir teknolojiye bakacağız: Path Tracing.

NVIDIA, GDC 2022 ile birlikte görüntü oluşturma tekniklerini bir sonraki noktaya taşımak amacıyla bazı adımlar attı. Yakın zamanda “en doğru işleme yöntemi” olarak duyurulan bu teknoloji, ışın izleme ve grafikler söz konusu olduğunda çıtayı yükseltecek gibi görünüyor.

Path Tracing Nedir?

Path tracing (yol izleme), görüntüyü çoğaltabilmek için tek bir piksel ile birlikte rastgele yönlerde sıçramalar yaparak ışığın gittiği yolu simüle etmeye dayanan, daha gelişmiş bir ışın izleme biçimidir. Işınlar doğrusal bir şekilde izlenmek yerine, ışık kaynağından hedef nesneye kadar birçok sıçrama üzerinden izlenmektedir.

Grafik Araştırmaları Başkan Yardımcısı Aron Lefohn, RTX 3090 ve bu teknikle birlikte neler yapılabileceğini gösteren birçok video klip yayınladı. Ormanda yürüyen bir kaplanı gösteren klipte, 3 milyar örneklenmiş üçgen olduğu bildirilen, 30 sıçramalık bir metrikle path tracing özelliği bulunuyor. Yukarıdaki tweet dizisinden yayınlanan tüm videoları görebilir, fikir sahibi olabilirsiniz.

Buna ek olarak Unreal Engine bir süredir path tracing desteğine sahip ve içerik oluşturucular da bundan faydalanaıyor. YouTube kullanıcısı BlackOudanArt tarafından oluşturulan aşağıdaki video de aynı GPU’nun neler yapabileceğini gözler önüne seriyor. Gölgelerin derinliğini ve yumuşaklığını, ahşap ve metal dokuların foto-gerçekçi doğasını ve ışığın canlı görüntüsünü burada görebilirsiniz.

Path tracing gerçek zamanlı ilerliyor, dinamik ışık ve gölge, yansımalar ve kırılmalarla dolu, etkileşimli, fotogerçekçi 3B ortamların oluşturulması için kapıları aralıyor. Peki “yol izleme” olarak Türkçeye çevirebileceğimiz path tracing tam olarak nedir?

Rasterizasyon ve Işın İzleme Arasındaki Fark Nedir?

İlk olarak oyun ve donanım dünyasında karşımıza çıkan bazı terimleri tanıyalım ve gelişmiş grafikler oluşturmak için tüm bu teknolojilerin nasıl kullanıldığına bakalım.

Oyunlarda veya çeşitli yazılımlarla üretilen görseller genellikle üç boyutludur. Rasterizasyon (rasterleştirme) ile üretilen görüntüler ise sadece tek bir bakış açısına yöneliktir. Bu teknik esasen en başından beri GPU’ların kalbinde yer alıyor. Modern NVIDIA GPU’lar saniyede 100 milyardan fazla rasterizasyona uğramış piksel üretebiliyor. Bu da rasterleştirmeyi oyun gibi gerçek zamanlı grafikler için ideal hale getiriyor.

Path Tracing vs. Ray Tracing ve Rasterizasyon
Path Tracing, Ray Tracing ve Rasterizasyon farkı.

Işın izleme (ray tracing) ise çok daha güçlü, bizleri cezbeden görseller sunan tamamen farklı bir teknik. Işın izlemede tek bir noktayla sınırlı değiliz. Birçok farklı noktadan, birçok farklı yönden bakıldığında görülebilen gerçekçi nesneler/objeler üretilebiliyor. NVIDIA, Turing mimarisinden başlayarak bu zorlu iş yüklerinin üstesinden gelebilmek için RT çekirdekleri sunmaya başladı. Bugün tek bir GPU saniyede milyarlarca ışını işleyebiliyor. Öte yandan AMD de RDNA 2 mimarisi ve Radeon RX 6000 serisi ekran kartlarıyla birlikte ışın izleme dünyasına giriş yaptı. Intel tarafından piyasaya sürülen Xe-HPG tabanlı Arc Alchemist ekran kartları yine NVIDIA’dakine benzer şekilde ışın izleme donanımları taşıyor.

Tüm bu ışınları izleyebilme imkanı, ışığın gerçek dünyada nasıl dağıldığını, rasterleştirme ile mümkün olandan çok daha doğru bir şekilde simüle etme imkanı tanıyor. Ancak bu ışığı nasıl simüle edeceğiz ve bu simülasyonu GPU’ya nasıl getireceğiz?

Ray Tracing (Işın İzleme) Nedir?

NVIDIA grafik araştırmaları başkan yardımcısı David Luebke, 16. yüzyılda, Kuzey Avrupa Rönesansının en önemli isimlerinden biri olan Albrecht Dürer’in hikayesini anlatarak bir tanımlama yapıyor. Ünlü ressam, 3 boyutlu bir görüntüyü 2 boyutlu bir yüzeyde çoğaltmak için ip ve ağırlıklar kullanırdı. Dürer, klasik ve çağdaş matematiği sanatla bir araya getirmeyi, ifade ve gerçekçilikte atılımlar gerçekleştirmeyi bir hedef haline getirdi.

Albrecht Dürer Ray Tracing Işın İzleme
Albrecht Dürer, 2B yüzeyler üzerinde 3B nesnelerin doğru temsillerini oluşturmaya yönelik bir teknik olan, şu anda “ışın izleme” olarak bilinen şeyi ilk tanımlayan kişiydi.

Dürer, 1525’te Treatise on Measurement ile ışın izleme fikrini ilk tanımlayan kişi oldu. Dürer’in fikri nasıl tanımladığını görmek, konsepti anlamanın en kolay yoludur. Sadece ışığın etrafımızda gördüğümüz dünyayı nasıl aydınlattığını bir düşünün. Şimdi ışınları Dürer’in kullandığı gibi bir ip parçasıyla gözden geriye doğru, ışığın etkileştiği nesnelere kadar takip ettiğinizi hayal edin. Işın izleme budur.

Bilgisayar Grafikleri ile Işın İzleme

IBM’den Arthur Appel, Dürer’in ölümünden 400 yıl sonra ışın izleme fikrinin bilgisayar grafiklerine nasıl getirilebileceğini, hesaplama işlemleri ve gölgelere uygulama yöntemiyle gösterdi. On yıl sonra Turner Whitted, bu fikrin yansımayı, gölgeleri ve kırılmayı nasıl yakalayabildiğini gösteren ilk kişi oldu ve görünüşte basit olan konseptin çok daha karmaşık bilgisayar grafiklerini nasıl mümkün kıldığını açıkladı. Sonrasında ilerleme daha da hızlandı.

Turner Whitted'in 1979 tarihli makalesi
Turner Whitted’in 1979 tarihli “Gölgeli ekran için geliştirilmiş bir aydınlatma modeli” başlıklı makalesi, ışın izleme inovasyonunu hızlı bir şekilde hayata geçirdi.

Film yapım şirketi Lucasfilm’den Robert Cook, Thomas Porter ve Loren Carpenter, 1984 yılında bilgisayar grafiklerinde erişilemeyen hareket bulanıklığı, alan derinliği, yarı gölgeler, yarı saydamlık ve bulanık yansımalar dahil olmak üzere birçok yaygın film yapım tekniğini nasıl birleştirebileceğini ayrıntılı olarak anlattı.

Jim Kajiya'nın 1986 tarihli makalesi “The Rendering Equation”
Jim Kajiya’nın 1986 tarihli makalesi “The Rendering Equation”, ışığın bir sahnede nasıl hareket ettiğini açıklamak için yalnızca zarif, fizik temelli bir denklemi özetlemekle kalmadı, aynı zamanda bunu uygulamak için etkili yöntemler içeren bir özet niteliğindeydi.

CalTech profesörü Jim Kajiya ise iki yıl sonrasında “The Rendering Equation” adında yedi sayfalık bir makale yayınladı. Jim Kajiya, bilgisayar grafiklerini ışın izleme yoluyla fizikle birleştirdi ve ışığın bir sahne boyunca dağılma şeklini doğru bir şekilde temsil etmeyi mümkün kılan path tracing algoritmasını tanıttı.

Path Tracing Doğuyor

Path tracing tekniği geliştirilirken Jakiya’nın bilgileri beklenmedik bir ilham kaynağına döndü, ışınımsal ısı transferi veya ısının bir ortama nasıl yayıldığı üzerine çalışmalar yapıldı. Bu alandaki fikirler, ışığın havadan nasıl geçtiğini ve yüzeylerden saçıldığını açıklayan işleme denkleminin ortaya çıkmasına vesile oldu.

Tekniği oluşturmak için gereken denklem oldukça kısa, ancak çözülmesi o kadar kolay değil. Dijital ortamdaki sahneler çok karmaşıktı. Oluşturma denklemini doğrudan çözmenin bir yolu yoktu, bu da Kajiya’nın ikinci önemli yeniliğine yol açtı.

Kajiya, denklemi çözmek için istatistiksel tekniklerin kullanılabileceğini gösterdi: doğrudan çözülmese bile, tek tek ışınların yolları boyunca çözmek mümkün. Işın yolunun boyu sahnedeki aydınlatmayı doğru bir şekilde yaklaştıracak kadar çözülürse, fotogerçekçi görüntüler oluşturmak mümkün.

Peki bir ışın yolu boyunca işleme denklemi nasıl çözülür? Kajiya’nın uyguladığı istatistiksel teknikler Monte Carlo entegrasyonu olarak bilinir ve 1940’larda bilgisayarların ilk günlerine kadar uzanır. Path tracing için geliştirilmiş Monte Carlo algoritmaları geliştirmek, bugüne kadar açık bir araştırma sorunu olmaya devam ediyor; NVIDIA araştırmacıları, düzenli olarak path tracing’in verimliliğini artıran teknikler geliştirerek bu işe öncülük ediyor.

Jim Kajiya aslında grafik alanındaki izleme tekniklerinin ana hatlarını çizdi ve fitili ateşledi. Böylelikle bilgisayar tarafından fotogerçekçi görüntüler oluşturmak mümkün hale geldi. Bilgisayar grafikleri için öncü isimlerden olan mühendisin bu yaklaşımı, ışığın gerçek dünyada hareket etme biçimini detaylandırırken işin fizik kısmını yansıtıyordu. Nihayetinde günden güne çeşitli farklı işleme teknikleri ortaya çıkmaya başladı ve günümüzde çarpıcı gerçekçilik seviyelerine sahip görsel efektler her alanda kullanılıyor.

Path Tracing ve Film Sektörü

Yol izleme yaklaşımı, 1987’de ilk kez benimsendikten sonra başarılı bir teknik olarak görüldü ancak yeterince pratik değildi. Kajiya’nın orijinal makalesindeki görüntüler yalnızca 256×256 pikseldi ve oluşturulması çok pahalı bir bilgisayarda bile 7 saatten fazla sürmüştü.

Moore Yasası’nda belirtildiği gibi, mikroişlemcilerdeki verimlilik ve transistör sayıları katlanarak artmaya devam ederken bilgi işlem gücü tahmin edilemeyecek seviyelere ulaştı. Böylelikle grafik teknolojilerinin yanı sıra birçok alanda ilerlemeler kaydedildi.

1998 yılında yayınlanan A Bug’s Life’dan başlayarak, ışın izleme tekniği her geçen gün daha fazla filmde kullanıldı. 2006 yılında gösterime giren Monster House ise iz bırakan filmler arasında yerini aldı. Monster House, Solid Angle SL (Autodesk tarafından satın alındı) ve Sony Pictures Imageworks ile ortaklaşa geliştirilen Arnod yazılımı kullanılarak meydana getirildi.

Dünya çapında 140 milyon dolardan fazla hasılat elde eden film aslında bilgisayar animasyonlarının gelecekte neler sunabileceğini gösteren bir fragman gibiydi. Bilgi işlem gücü ve donanımlar geliştikçe her şey daha da hızlandı ve daha fazla film bu tür teknikleri kullanmaya başladı. Bu günlerde karşımıza çıkan bazı klipleri kamera tarafından çekilen görüntülerden ayırt etmek gerçekten zor.

Donanımlar gelişti gelişmesine, ancak halen bazı sorunlar var. Tek bir görüntüyü işlemek hala saatler alıyor. Hatta eksiksiz bir film yapmak, görüntüleri işlemek için render çiftlikleri  adı verilen geniş sunucu sistemleri inşa ediliyor ve bunlar aylarca sürekli çalışıyor.

Oyunlarda Path Tracing

Oyunlarda path tracing fikri kısa zaman öncesine kadar hayal bile edilemezdi. Birçok oyun geliştiricisi, ihtiyaç duyduğu performansa sahip oldukları takdirde gerçek zamanlı grafikler için “yol izleme” tekniğini kullanmak istediğini açıkça belirtmişti. Ancak geçmişte donanımlarla sunulan performans çok yetersizdi ve bu fikir ulaşılamaz görünüyordu.

Sonrasında GPU’lar gelişmeye devam etti ve artık ışın izleme destekli donanımlara ulaşmak o kadar da zor değil. Tıpkı filmlerde olduğu gibi, bu teknolojileri oyunlarda ilk olarak sınırlı bir şekilde gördük. Ancak şimdi tanıklık ettiğiniz gibi ray tracing destekli oyunların sayısı hızla artıyor. Ayrıca belirli ışın izlemeli oyunlar, geleneksel rasterizasyon tabanlı işleme tekniklerini bazı ışın izleme efektleriyle birleştiriyor.

Geliştiriciler isterlerse tekniklerin oyunlarında bir karışımını kullanabilirler. Oyun geliştiricileri, birincil ışınlar üzerinde rasterizasyon yapabilir ve ardından sahnenin aydınlatılması için ışığın yolunu izleyebilir.

Rasterizasyon, basit tabirle tek bir noktadan bir dizi ışığı yayma işlemidir. Işın izleme bunu daha da ileri götürür ve ışınları birçok noktadan herhangi bir yöne gönderebilir. Yol izleme (path tracing) ise ışın izlemeyi daha büyük ışık simülasyon sisteminin bir bileşeni olarak kullanan gerçek ışık fiziğini simüle eder. Bu, bir sahnedeki tüm ışıkların (Monte Carlo veya diğer teknikler kullanılarak) odalara veya ortamlara stokastik olarak örneklendiği anlamına gelmekte.

Simüle etme sürecinde bir ışını tek bir sekmeden geriye doğru izlemek yerine, ışınlar ışık kaynaklarına kadar, çoklu sekmeler üzerinden izleniyor. Birkaç oyun bunu zaten yapıyor ve sonuçlar oldukça etkileyici. Hatırlarsanız Microsoft, Minecraft’ta path tracing’i çalıştıran bir eklenti yayınlamıştı. Öte yandan Quake II yeni bir eklenti sayesinde bu tekniği kullanabiliyor.

Doğrusu halen yapılacak çok şey var. Öte yandan tüketicilerin bu tür deneyimleri yaşaması için yüksek bilgi işlem gücü sunabilen, güçlü donanımlara sahip olması gerekiyor. Oyun geliştiricileri ise teknoloji dünyasındaki gelişmişlik seviyesine göre daha kaliteli, aynı zamanda daha fazla güç gerektiren oyunlar tasarlıyor. Ek olarak, görsel hesaplama söz konusu olduğunda en zorlu projelerin oyunlar olduğunu belirtelim.

Path Tracing ve Ray Tracing Farkı

Path tracing yine bir ışın izleme biçimi, ancak iki görüntü oluşturma tekniğinin aralarında bazı nüanslar var. Ray tracing (ışın izleme) izleme tekniği aslında ismiyle her şeyi açıklıyor. Bu teknikte ışınlar simüle ediliyor ve köklerinden son noktasına kadar izleniyor.

Buna karşılık path tracing, başlangıç noktası ile hedef arasında rastgele yönlerde ayrılmak üzere yayılan farklı ışınlar üretiyor. Yansıyan ışık, ışın izlemedeki gibi doğrusal şekilde değil, yüzeylere ulaştığında vereceği farklı tepkilerle birlikte gerçekçi tasvirlerle sonuçlanıyor. Nihayetinde path tracing çok daha geniş kapsamlı ve gelişmiş bir teknik. Bu nedenle donanımsal olarak daha fazla kaynak gerektirdiğini not düşelim.

Gelecekte Bizi Neler Bekliyor?

GPU’lar güçlenmeye devam ettikçe “path tracing” kullanımı daha yaygın hale gelmeye başlayacak. Örneğin Arnold (Autodesk), V-Ray (Chaos Group) ve Renderman (Pixar) gibi araçların yanında güçlü ekran kartlarına sahip olan tasarımcılar ve mimarlar, fotogerçekçi maketleri saniyeler içinde oluşturmak için ışın izleme tekniklerini kullanıyor.

Ekran kartları artık her zamankinden daha fazla bilgi işlem gücü sunduğundan, ışın izlemenin ardından path tracing için bir sonraki adım olacak. “Ada Lovelace” mimarisini temel alan RTX 40 serisi ekran kartlarının performans açısından sıçrama yapmasını bekliyoruz. Yine benzer atılımlar yüksek ihtimalle RDNA 3 mimarisi ve Radeon RX 7000 serisiyle birlikte AMD tarafında yaşanacak.

2018 yılında NVIDIA oyun geliştiricileri için film kalitesinde işleme sağlayan ışın izleme teknolojisini duyurdu. RTX teknolojisi, Ampere ve Turing mimarilerinde donanımsal olarak bir ışın izleme motoruyla birlikte çeşitli arabirimler aracılığıyla ışın izleme desteği sunuyor. Yeşil takım ayrıca yeni DirectX Raytracing (DXR) API’si aracılığıyla tam RTX desteği sağlamak için Microsoft ile ortaklık kurdu.

GPU devi ilk günden beri RTX teknolojisini geliştirmeye devam etti. RTX 30 serisiyle birlikte RT çekirdekleri ikinci nesle geçiş yaptı ve gerçek zamanlı ışın izlemeyi destekleyen oyunlar yayılmaya devam ediyor. Bununla birlikte, RTX 40 “Ada” kartlarla birlikte yalnızca CUDA değil, RT ve Tensor çekirdeklerinde gelişmeler bekliyoruz.

AMD ise RDNA 2 mimarisiyle birlikte ekran kartlarına Işın Hızlandırıcılar (Ray Accelerator-RA) entegre etmeye başladı. Kırmızı takımın kartları bu konuda biraz daha zayıf, ancak yeni RDNA 3 mimarisi ile yine ışın izleme alanında ciddi geliştirmeler yapmaları şart.

Harici GPU pazarına ilk adımını bu yıl atan Intel, Xe-HPG mimarisiyle birlikte ilk nesilden itibaren ışın izleme desteği sunuyor. Yine aynı şekilde, Arc ekran kartlarında entegre olarak ışın izleme çekirdekleri yer alacak. Şirket aynı zamanda yazılım tarafında önemli çalışmalar yapıyor.

Sonuç olarak ray tracing, path tracing ve diğer görüntüleme teknikleri önümüzdeki yıllarda endüstri tarafından daha fazla benimsenecek. Oyunlar, sanal gerçeklik ve hatta iş amaçlı kullanım alanları fark etmeksin, hayal edemeyeceğimiz sinematik görseller yakında bizimle olabilir.