Işın İzleme (Ray Tracing) Nedir? Fotorealistik Sanal Dünyaları İnşa Ederken Bu Tekniği Nasıl Kullanabiliriz?
Gelecekte VR Dünyaları Nasıl Yaratılacak?
-
- 7 dakika
- 930
İlginizi Çekebilecek Sorular
- Yetişkin insanların bir nesneyle konuşmasının bir sakıncası var mı?
- Eğer fosfin kolay yok olan bir gazsa ve venüs'te yaşam varsa bu durumda neden venüs'ün geçmişine bakıyoruz? Yaşam varsa yakın zamanda olmalı değil mi?
- Tiktaalik neden karaya çıkma gereği duydu?
- Hangi bölümü seçmeliyim?
- İnsanlarda kalça kısmı neden daha yağlıdır?
- Öldükten sonra hayat varmı?
Işın izleme teknolojisinin geçmişini ve şu anki durumunu bilmek, gelecekte bizi nasıl sanal dünyaların beklediğini hayal etmemize yardımcı olabilir!
Bu yazı, Evrim Ağacı'na ait, özgün bir içeriktir. Konu akışı, anlatım ve detaylar, Evrim Ağacı yazarı/yazarları tarafından hazırlanmış ve/veya derlenmiştir. Bu içerik için kullanılan kaynaklar, yazının sonunda gösterilmiştir. Bu içerik, diğer tüm içeriklerimiz gibi, İçerik Kullanım İzinleri'ne tabidir.
Işın izleme (İng: "ray tracing"), 3 boyutlu bilgisayar grafiklerinde ışığın izlediği yolu ve çarptığı sanal objelerdeki etkisini simüle eden bir görüntü oluşturma tekniğidir. Gerçek dünyada bir ışık kaynağından yayılan ışık ışınları, bir yüzeye çarpana kadar seyahat etmeye devam eder. Bu ışın soğurulabilir, yansıyabilir veya kırılabilir.
Görüntü oluşturmada kullanılan ilk ışın izleme algoritması 1968’de Arthur Appel tarafından oluşturulmuştur.[1] Appel, bu algoritmayı ışın dökme (İng: “ray casting”) algoritması olarak adlandırmıştır. Işın dökme algoritması, ekran üzerindeki her piksele bir ışın düşecek şekilde ışınların yolunu takip ederek yol üzerindeki en yakın engeli bulmak üzerine çalışıyordu. Daha sonrasında objenin materyal özelliklerine göre ışığa etkileri belirlenip, objenin gölgelendirilmesi hesaplanıyordu.
1979 yılında J. Turner Whitted, ışın izlemeye yeni bir bakış açısı kazandırdı. Yinelemeli ışın izleme (İng: "recursive ray tracing") adını verdiği algoritması, kendini yineleyen süreçler üzerinden bir sonuç elde etmek üzerine çalışıyordu. Sürekli kendini yineleyen bir süreçten sonuç çıkarılamayacağı için belirli bir sayıda yinelemeden sonra ışının izleyeceği süreç simüle ediliyordu.[2]
Işın izleme algoritması kullanılarak üretilen ilk animasyon yine 1979 yılında Whitted tarafından oluşturuldu. Görsellikle alakalı bu teknolojiyi tamamen anlayabilmek ve geçmişten günümüze değişimini görebilmek için yazının devamında kullanılan videolara en azından göz atmanızı tavsiye ederiz.
Bell Laboratuvarları'nda üretilen 37 saniyelik bu animasyonda, şeffaf ve parlak bir küre etrafında opak ve parlak bir küre dönüyordu. Whitted, 1979 yılına göre çığır açan bir bilgisayar üretimli imgeleme (İng: "CGI" veya "computer-generated imagery") oluşturmayı başarmıştı. Yinelemeli ışın izleme algoritması, ışın dökme algoritmasına kıyasla çok daha gerçekçi görüntüler oluşturuyordu.
Sinema Sektöründe Işın İzleme Kullanımı
Uzun bir süre boyunca film yapımcıları ve oyun geliştiricileri, gereken hesaplama gücü nedeniyle çok pahalı olan ışın izleme tekniği yerine rasterleştirme (üç boyutlu bir objeyi iyi boyutlu üçgenler şeklinde ifade ederek ışıklandırma) tekniğini kullandılar. Dreamworks’ün Shrek 2, Pixar’ın Kayıp Balık Nemo filmlerinde[4] nispeten düşük maliyetlerle gerçekçiliği artırmak için sahte ileri ışın izleme[10] (İng: “pseudo forward ray-tracing”) yaklaşımı uygulandı. Sahnelerin genelinde rasterleştirme kullanılırken, karmaşık ışıklandırmalar gereken sahnelerde ışın izleme kullanıldı.
GPU’ların (grafik işleme birimi, İng: "graphical processing unit") gelişimi ile ulaşılabilen işlem gücü arttı ve ışın izleme teknolojilerinin masrafları azaldı. İlk olarak yaygın şekilde ışın izleme kullanılan animasyon Disney ve Pixar ortaklığıyla “Arabalar” oldu.[4]
Pixar’ın 2013 yılında çıkardığı animasyon filmi Sevimli Canavarlar Üniversitesi’nin animasyonları ve ışıklandırmalarının oluşturulması için 100’den fazla mühendis çalıştı. Tüm sahnelerin işlenmesi 100 milyon CPU saatinden uzun sürdü.[8] Yani ışın izleme teknolojisi ile gerçek zamanlı fotorealistik dünyalar yaratmak hâlâ bir hayaldi.
Gerçek Zamanlı Işın İzleme
Aslında ilk gerçek zamanlı ışın izleme kullanımı 1986’da Mike Muuss tarafından başarılmıştı ancak saniyede birkaç kareyi geçemiyordu. 2008 yılında Intel, Enemy Territory: Quake Wars video oyununun özel versiyonu olan Quake Wars: Ray Traced’i yayınladı. 2.93GHz’de çalışan 4 adet Xeon Tigerton kullanan bir sistem ile 720p çözünürlükte 14-29 FPS’ye (saniye başına düşen kare sayısı) ulaşılabiliyordu. 22 yıl sonra, gerçek zamanlı ışın izleme kullanılarak akıcı bir görüntü elde edilebilmişti.
Evrim Ağacı'nın çalışmalarına Kreosus, Patreon veya YouTube üzerinden maddi destekte bulunarak hem Türkiye'de bilim anlatıcılığının gelişmesine katkı sağlayabilirsiniz, hem de site ve uygulamamızı reklamsız olarak deneyimleyebilirsiniz. Reklamsız deneyim, Evrim Ağacı'nda çeşitli kısımlarda gösterilen Google reklamlarını ve destek çağrılarını görmediğiniz, daha temiz bir site deneyimi sunmaktadır.Kreosus
Kreosus'ta her 10₺'lik destek, 1 aylık reklamsız deneyime karşılık geliyor. Bu sayede, tek seferlik destekçilerimiz de, aylık destekçilerimiz de toplam destekleriyle doğru orantılı bir süre boyunca reklamsız deneyim elde edebiliyorlar.
Kreosus destekçilerimizin reklamsız deneyimi, destek olmaya başladıkları anda devreye girmektedir ve ek bir işleme gerek yoktur.Patreon
Patreon destekçilerimiz, destek miktarından bağımsız olarak, Evrim Ağacı'na destek oldukları süre boyunca reklamsız deneyime erişmeyi sürdürebiliyorlar.
Patreon destekçilerimizin Patreon ile ilişkili e-posta hesapları, Evrim Ağacı'ndaki üyelik e-postaları ile birebir aynı olmalıdır. Patreon destekçilerimizin reklamsız deneyiminin devreye girmesi 24 saat alabilmektedir.YouTube
YouTube destekçilerimizin hepsi otomatik olarak reklamsız deneyime şimdilik erişemiyorlar ve şu anda, YouTube üzerinden her destek seviyesine reklamsız deneyim ayrıcalığını sunamamaktayız. YouTube Destek Sistemi üzerinde sunulan farklı seviyelerin açıklamalarını okuyarak, hangi ayrıcalıklara erişebileceğinizi öğrenebilirsiniz.
Eğer seçtiğiniz seviye reklamsız deneyim ayrıcalığı sunuyorsa, destek olduktan sonra YouTube tarafından gösterilecek olan bağlantıdaki formu doldurarak reklamsız deneyime erişebilirsiniz. YouTube destekçilerimizin reklamsız deneyiminin devreye girmesi, formu doldurduktan sonra 24-72 saat alabilmektedir.Diğer Platformlar
Bu 3 platform haricinde destek olan destekçilerimize ne yazık ki reklamsız deneyim ayrıcalığını sunamamaktayız. Destekleriniz sayesinde sistemlerimizi geliştirmeyi sürdürüyoruz ve umuyoruz bu ayrıcalıkları zamanla genişletebileceğiz.Giriş yapmayı unutmayın!
Reklamsız deneyim için, maddi desteğiniz ile ilişkilendirilmiş olan Evrim Ağacı hesabınıza üye girişi yapmanız gerekmektedir. Giriş yapmadığınız takdirde reklamları görmeye devam edeceksinizdir.
2009’da Nvidia, kendi üretimi GPU’larında gerçek zamanlı ışın izlemeye olanak sağlayan ücretsiz programlama arayüzü OptiX’i duyurdu. OptiX programlama arayüzü Autodesk Arnold, Adobe AfterEffects, 3ds Max gibi görüntü sentezleme (İng: "rendering") programlarında kullanıldı.[9]
2018’de yine Nvidia, adını bilgisayar bilimi ve yapay zekânın babası olarak bilinen Alan Turing’den alan Turing mimarisini duyurdu. Turing mimarisi kartlar, eski mimariye ek olarak Ray-tracing (RT) ve Tensor (yapay zekâ) çekirdekleri içermekteydi.[7] RT ve Tensor çekirdekleri içeren RTX serisi Nvidia GPU'ları, desteklenen video oyunlarda ışın izleme teknolojisini gerçek zamanlı ve akıcı şekilde kullanmaya olanak sağlıyordu.
Hesaplama gerektiren bir problemin çözümünde her olasılığı teker teker denemeye kaba kuvvet yaklaşımı (İng: "brute-force approach") adı verilir. Bir matematik sorusunu çözmek için tüm şıkları teker teker denemek, kaba kuvvet yaklaşımına örnek olarak verilebilir. Zaman kaygısının olmadığı tüm ışın izlemeli görüntü sentezlemelerde kaba kuvvet yaklaşımı tercih ediliyordu. Çünkü her piksel için her olasılığı teker teker denemek en doğru sonucu veriyordu.
Peki, Nvidia gerçek zamanlı ışın izlemede nasıl bu kadar başarılı oldu? Kaba kuvvet yaklaşımını terk edip hibrit bir ışıklandırma tekniği kullanarak. Animasyon yapımcılarının gerçek zamanlı sonuç elde etme kaygısı olmadığı için hibrit bir tekniğe ihtiyaçları yok. Yazının başında da bahsettiğimiz gibi animasyonlarda hibrit yaklaşıma en son maliyetler yüzünden başvurulmuştu.
Günümüzde GPU'ların oldukça yüksek işlem gücü sayesinde maliyet gibi bir problemleri de kalmadı. Ancak GPU'ların işlem gücü hâlâ gerçek zamanlı ve kaba kuvvet yaklaşımı ile ışın izlemeye yeterli değil. Bu yüzden Nvidia, ışın izleme ile rasterleştirme tekniklerini harmanlayarak yeterince doğru ve hızlı ışıklandırmayı oluşturmayı başardı. Hibrit tekniği hızlandırmak için nerede rasterleştirme nerede ışın izleme kullanılması gerektiğini ise makine öğrenmesi sayesinde belirliyor.
Bu noktada devreye Tensor çekirdekleri giriyor. Yapay zekâ için özel olarak üretilen bu çiplerde çok kısa sürede tahminler gerçekleştiriliyor. Rasterleştirme veya ışın izleme kullanılacak yerleri tahmin ettikten sonra hızlı şekilde bu teknikleri uyguluyor. Böylece gerçekçi ve gerçek zamanlı görüntüler elde edebiliyoruz. Tabii ki kaba kuvvet ışın izleme kadar %100 doğrulukta bir görüntü elde edemiyoruz ama işlemi inanılmaz derecede kolaylaştırıp hızlandırıyoruz.[12]
Fotorealistik Sanal Dünyaları İnşaa Etmek
Bir görüntü gerçek dünyadan mı yoksa bilgisayar üretimli mi nasıl anlayabiliriz? Elbette bilgisayarın "taklit edemeyeceği" şeyleri bularak. İnsan algısında gerçek görüntüyü sahte görüntüden ayırmadaki önemli faktörlerden bazıları: gölgeler, yansımalar ve hareketliliktir. Kısaca doğanın fizik kânunlarına bağlı eşsiz özelliklerinden bazıları diyebiliriz. Hareketlilik olmadan yansımalar ve gölgeler gerçeğe yakın şekilde taklit edilebilir. Fotorealizm akımına gönül vermiş resim sanatçılarının, insan üretimi olduğu ayırt edilemeyecek düzeyde gerçekçi çalışmaları var. Statik görüntülerde (resim, fotoğraf) hareketlilik geçerli değildir. Hareketli görüntülerde (video, canlı görüntü) insan algısını alt etmek daha zordur.
Bu portreyi Morgan Freeman bir çizim olarak değil de fotoğraf çekiminden bir kare olarak sosyal medyada paylaşsa, muhtemelen hiç kimse çizim olduğunu fark etmeyecekti.
Bilgisayar tarafından üretilmiş bir sokağın canlı görüntüsünü hayal edin. Su birikintisindeki yansıma, evin camından içeri vuran ışık, güneşin parlaması... İlk olarak bu saydıklarımız gerçekçi olmalı ancak daha da önemlisi gerçekçiliğini devam ettirebilmeli. Su birikintisinin yanından bir kedi geçtiğinde yansıması suya vurmalı, evin camının perdesi yavaş yavaş kapanırken odanın içi yavaşça kararmalı, güneşin önüne bulut geçtiğinde tüm sokağın ışık dinamikleri değişmeli.
Sadece rasterleştirme kullanarak gerçeklik algımızı kandıracak şekilde gerçekçi görüntüler elde edemiyoruz. Sadece ışın izleme kullanarak da gerçek zamanlı görüntüler elde edemiyoruz. Hibrit ve makine öğrenmesi destekli yaklaşım sayesinde bu konudaki en büyük problemimiz çözüldü. 2018 yılından itibaren fotorealistik ve etkileşimli sanal dünyalar inşa etmeye başladık.
En popüler oyun motorlarından biri olan Unreal Engine 4 ile üretilen bu interaktif sanal dünyayı gerçeklikten ayırmak epey zor. Ayrıca videonun Youtube tarafından işlenip kalitesinin düşürüldüğünü hatırlatmakta fayda var. Yani kendi deneyiminiz, izlediğiniz videodan çok daha iyi gözükecek. Fotorealistik grafiklere sahip VR denemeleri de var, aşağıdan birini izleyebilirsiniz:
Sonuç
2020 yılı itibarıyla 52 yıldır hayatımızda olan bu teknolojide bazı dönüm noktalarını aşmamız epey uzun sürdü. Neredeyse 10 yıl öncesine kadar gerçek zamanlı ışın izlemeyi kullanabilmek bir bilim kurgu filmi içeriğiydi. Ancak 2 yıl önce bu başarıldı ve geçtiğimiz 2 yılda sadece yazılım optimizasyonuyla neredeyse %80-90 performans artışı sağlandı.
Önümüze çıkan en büyük engeli de aştığımıza göre, gerisi hayal gücümüze ve mühendislik becerilerimize bağlı. Belki de bundan 10 yıl sonra VR müzeleri inşaa edeceğiz, tamamen gerçekçi grafiklere sahip oyunlar oynayacağız. 52 yıl önce transistör yığını bir makineye ışık ışınlarını simüle ettirebileceğini düşünen bir bilim insanı sayesinde, bu hayallerimize her gün bir adım daha yaklaşıyoruz.
Bu içeriğimizle ilgili bir sorunuz mu var? Buraya tıklayarak sorabilirsiniz.
İlginizi Çekebilecek Sorular
- Yetişkin insanların bir nesneyle konuşmasının bir sakıncası var mı?
- Eğer fosfin kolay yok olan bir gazsa ve venüs'te yaşam varsa bu durumda neden venüs'ün geçmişine bakıyoruz? Yaşam varsa yakın zamanda olmalı değil mi?
- Tiktaalik neden karaya çıkma gereği duydu?
- 5
- 3
- 2
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- A. Appel. (1968). Some Techniques For Shading Machine Renderings Of Solids | Proceedings Of The April 30--May 2, 1968, Spring Joint Computer Conference. AFIPS, sf: 37-45. doi: 10.1145/1468075.1468082. | Arşiv Bağlantısı
- T. Whitted. (1980). An Improved Illumination Model For Shaded Display. Communications of the ACM, sf: 343-349. doi: 10.1145/358876.358882. | Arşiv Bağlantısı
- J. Buck. The Recursive Ray Tracing Algorithm. (12 Ağustos 2020). Alındığı Tarih: 12 Ağustos 2020. Alındığı Yer: The Recursive Ray Tracing Algorithm | Arşiv Bağlantısı
- H. Pacheco. Ray Tracing In Industry. (12 Ağustos 2020). Alındığı Tarih: 12 Ağustos 2020. Alındığı Yer: Semantics Scholar | Arşiv Bağlantısı
- R. Cowgill. Introducing Ray Tracing In Unreal Engine 4. (12 Ağustos 2020). Alındığı Tarih: 12 Ağustos 2020. Alındığı Yer: Nvidia Developer | Arşiv Bağlantısı
- Nvidia. Nvidia Tensor Cores. (12 Ağustos 2020). Alındığı Tarih: 12 Ağustos 2020. Alındığı Yer: Nvidia | Arşiv Bağlantısı
- R. Smith. Nvidia Reveals Next-Gen Turing Gpu Architecture: Nvidia Doubles-Down On Ray Tracing, Gddr6, & More. (12 Ağustos 2020). Alındığı Tarih: 12 Ağustos 2020. Alındığı Yer: AnandTech | Arşiv Bağlantısı
- D. Takahashi. Creating A Creature With 5.5M Pieces Of Animated Hair In Pixar’s Monsters University (Interview). (12 Ağustos 2020). Alındığı Tarih: 12 Ağustos 2020. Alındığı Yer: VentureBeat | Arşiv Bağlantısı
- Nvidia Developer. Nvidia Optix™ Ray Tracing Engine. (12 Ağustos 2020). Alındığı Tarih: 12 Ağustos 2020. Alındığı Yer: Nvidia Developer | Arşiv Bağlantısı
- V. A. D. P. Sicam, et al. (2007). Pseudo Forward Ray-Tracing: A New Method For Surface Validation In Cornea Topography. Optometry and Vision Science, sf: 915-923. doi: 10.1097/OPX.0b013e3181559d70. | Arşiv Bağlantısı
- J. P. Hess. What Is Ray Tracing?. (12 Ağustos 2020). Alındığı Tarih: 12 Ağustos 2020. Alındığı Yer: FilmmakerIQ | Arşiv Bağlantısı
- Nvidia Developer. Ray Tracing From The 1980’S To Today An Interview With Morgan Mcguire, Nvidia. (12 Ağustos 2020). Alındığı Tarih: 12 Ağustos 2020. Alındığı Yer: Nvidia Developer | Arşiv Bağlantısı
Evrim Ağacı'na her ay sadece 1 kahve ısmarlayarak destek olmak ister misiniz?
Şu iki siteden birini kullanarak şimdi destek olabilirsiniz:
kreosus.com/evrimagaci | patreon.com/evrimagaci
Çıktı Bilgisi: Bu sayfa, Evrim Ağacı yazdırma aracı kullanılarak 20/09/2020 05:09:18 tarihinde oluşturulmuştur. Evrim Ağacı'ndaki içeriklerin tamamı, birden fazla editör tarafından, durmaksızın elden geçirilmekte, güncellenmekte ve geliştirilmektedir. Dolayısıyla bu çıktının alındığı tarihten sonra yapılan güncellemeleri görmek ve bu içeriğin en güncel halini okumak için lütfen şu adrese gidiniz: https://evrimagaci.org/s/9147
İçerik Kullanım İzinleri: Evrim Ağacı'ndaki yazılı içerikler orijinallerine hiçbir şekilde dokunulmadığı müddetçe izin alınmaksızın paylaşılabilir, kopyalanabilir, yapıştırılabilir, çoğaltılabilir, basılabilir, dağıtılabilir, yayılabilir, alıntılanabilir. Ancak bu içeriklerin hiçbiri izin alınmaksızın değiştirilemez ve değiştirilmiş halleri Evrim Ağacı'na aitmiş gibi sunulamaz. Benzer şekilde, içeriklerin hiçbiri, söz konusu içeriğin açıkça belirtilmiş yazarlarından ve Evrim Ağacı'ndan başkasına aitmiş gibi sunulamaz. Bu sayfa izin alınmaksızın düzenlenemez, Evrim Ağacı logosu, yazar/editör bilgileri ve içeriğin diğer kısımları izin alınmaksızın değiştirilemez veya kaldırılamaz.
- Bilim Ağacı> Uygulamalı Bilimler> Hesaplama Bilimleri> Bilgisayar Bilimi> Algoritmalar ve Veri Yapıları> Algoritmalar
- Bilim Ağacı> Uygulamalı Bilimler> Hesaplama Bilimleri> Bilgisayar Bilimi> Yapay Zeka> Uygulamalı Yapay Zeka> Bilgisayar Görüşü> Görüntü İşleme
- Gerçek