Işın izleme (grafik) - Ray tracing (graphics)

Beyaz bir yüzey üzerinde yansıtıcı renkli kürelerin bu özyinelemeli ışın izlemesi, sığ alan derinliğinin , "alan" ışık kaynaklarının ve dağınık yansımanın etkilerini gösterir .

In 3D bilgisayar grafikleri , ışın izleme modelleme tekniğidir ışık taşıma çeşitli kullanılmak üzere render üretme algoritmaları dijital görüntüler .

Bir hesaplama maliyeti ve görsel doğruluk spektrumunda, ışın dökümü , özyinelemeli ışın izleme , dağılım ışın izleme , foton eşlemeden yol izlemeye kadar ışın izleme tabanlı görüntü oluşturma teknikleri, tarama çizgisi oluşturma yöntemlerinden genellikle daha yavaş ve daha yüksek doğruluktur . Bu nedenle, ışın izleme ilk olarak, bilgisayar tarafından oluşturulan görüntüler ve film ve televizyon görsel efektleri (VFX) gibi, oluşturmanın nispeten uzun zaman aldığı uygulamalarda uygulandı , ancak gerçek zamanlı uygulamalar için daha az uygundu. her kareyi oluşturmada hızın kritik olduğu video oyunları gibi .

Bununla birlikte, 2018'den bu yana, gerçek zamanlı ışın izleme için donanım hızlandırma , yeni ticari grafik kartlarında standart hale geldi ve grafik API'leri de bunu takip ederek geliştiricilerin oyunlarda ve diğer gerçek zamanlı uygulamalarda hibrit ışın izleme ve rasterleştirme tabanlı oluşturmayı kullanmalarına izin verdi. çerçeve oluşturma sürelerine daha az isabet.

Işın izleme, yansıma , kırılma , yumuşak gölgeler , saçılma , alan derinliği , hareket bulanıklığı , kostikler , ortam tıkanması ve dağılma olayları ( kromatik sapma gibi) gibi çeşitli optik efektleri simüle etme yeteneğine sahiptir . Işık dalgalarına benzer bir şekilde ses dalgalarının yolunu izlemek için de kullanılabilir , bu da onu gerçekçi yankılanma ve yankılar oluşturarak video oyunlarında daha sürükleyici ses tasarımı için uygun bir seçenek haline getirir . Aslında, yaklaşık olarak doğrusal harekete sahip herhangi bir fiziksel dalga veya parçacık fenomeni, ışın izleme ile simüle edilebilir .

Bir etki alanı üzerinde ışık örneklemeyi içeren ışın izleme tabanlı işleme teknikleri, çok sayıda ışın izlenerek veya gürültü giderme teknikleri kullanılarak ele alınabilen görüntü gürültüsü yapaylıkları üretir .

Tarih

Tarafından bu gravür Albrecht Dürer 1525 gösterileri bir Dürer'ın kapısının kullanılması dan.
Albrecht Dürer'in 1532 tarihli bu görüntüsü, bir görüntü oluşturmak için ızgara düzeni kullanan bir adamı göstermektedir. Alman rönesans sanatçısı, tekniği ilk tanımlayan kişidir.

Işın izleme fikri , icadıyla tanınan Albrecht Dürer tarafından tanımlandığı 16. yüzyıl kadar erken bir tarihte ortaya çıkmıştır . In Ölçümü Dört Books , o denilen bir cihaz tarif Dürer'ın kapı nesnenin silueti boyunca asistan hamle kurmaya yönelik bir kalemle sonuna bağlı bir iş parçacığı kullanarak. İplik, kapının çerçevesinden ve ardından duvardaki bir kancadan geçer. İplik bir ışın oluşturur ve kanca, projeksiyonun merkezi olarak hareket eder ve ışın izlemede kamera konumuna karşılık gelir.

Gölgeli resimler oluşturmak için ışın izleme için bir bilgisayar kullanmak ilk olarak 1968'de Arthur Appel tarafından gerçekleştirildi . Appel birincil görünürlük için ışın izleme kullandı (her görüntü noktasında kameraya en yakın yüzeyi belirledi) ve her birinden ışık kaynağına giden ikincil ışınları izledi. noktanın gölgede olup olmadığını belirlemek için gölgelenen nokta.

Daha sonra, 1971'de MAGI'den (Mathematical Applications Group, Inc.) Goldstein ve Nagel , fotoğrafik süreci tersine simüle ederek katıların gölgeli resimlerini yapmak için ışın izlemenin kullanıldığı “3-D Görsel Simülasyon” yayınladı. Görünür yüzeyi belirlemek için ekrandaki her bir resim öğesinden (piksel) sahneye bir ışın gönderirler. Işınla kesişen ilk yüzey görünür yüzeydi. Bu özyinelemeli olmayan ışın izleme tabanlı işleme algoritması bugün " ışın dökümü " olarak adlandırılmaktadır . Bulunan ışın yüzeyi kesişim noktasında yüzey normalini hesapladılar ve ışık kaynağının konumunu bilerek ekrandaki pikselin parlaklığını hesapladılar. Yayınları, “Maryland Üniversitesi'nin 16 mm'lik bir kamerayla donatılmış ekran donanımı kullanılarak yapılmış kısa (30 saniyelik) bir filmi anlatıyor. Film, helikopteri ve yer seviyesinde basit bir silah yerleşimini gösterdi. Helikopter, sonunda vurulup düşene kadar dönüşler, kalkışlar ve inişler vb. dahil olmak üzere bir dizi manevraya tabi tutulacak şekilde programlandı.” Bir CDC 6600 bilgisayar kullanıldı. MAGI , 1974'te MAGI/SynthaVision Sampler adlı bir animasyon videosu üretti .

1976'da Caltech'te yaratılan Flip kitap

Işın dökümünün bir başka erken örneği 1976'da Scott Roth'un Bob Sproull'un Caltech'teki bilgisayar grafikleri kursunda bir flipbook animasyonu yaratmasıyla geldi . Taranan sayfalar sağda video olarak gösterilir. Roth'un bilgisayar programı, eğer ışın komşularından farklı bir sınırlı düzlemle kesişirse, piksel konumunda bir kenar noktası kaydetti. Elbette, bir ışın uzayda birden fazla düzlemle kesişebilir, ancak yalnızca kameraya en yakın yüzey noktası görünür olarak not edildi. Kenarlar pürüzlü çünkü kullanılan zaman paylaşımlı DEC PDP-10'un hesaplama gücü ile yalnızca kaba bir çözünürlük pratikti . "Terminal", metin ve grafikler için bir Tektronix depolama tüpü ekranıydı . Ekrana, termal kağıt rulosunda ekranın bir görüntüsünü oluşturacak bir yazıcı iliştirildi. Roth çerçeveyi genişletti, ışın dökümü terimini bilgisayar grafikleri ve katı modelleme bağlamında tanıttı ve daha sonra GM Araştırma Laboratuvarlarındayken çalışmalarını yayınladı.

Turner Whitted , ayna yansıması ve yarı saydam nesneler boyunca kırılma için özyinelemeli ışın izlemeyi, katının kırılma indisi tarafından belirlenen bir açıyla gösteren ve kenar yumuşatma için ışın izlemeyi kullanan ilk kişiydi . Whitted ayrıca ışın izlemeli gölgeler de gösterdi. 1979'da Bell Laboratuarlarında mühendis iken Compleat Angler adlı özyinelemeli ışın izlemeli bir film yaptı . Whitted'in derinlemesine özyinelemeli ışın izleme algoritması, oluşturmayı öncelikle bir yüzey görünürlük belirleme meselesi olmaktan hafif bir taşıma meselesi haline getirdi. Makalesi, dağıtım ışını izlemeyi ve nihayet bilgisayar tarafından oluşturulan görüntülerin gerçeğe sadık olmasına izin veren işleme denklemi çerçevesini sağlayan tarafsız yol izlemeyi içeren başkaları tarafından yapılan bir dizi çalışmaya ilham verdi.

On yıllardır, bilgisayar tarafından oluşturulan görüntüleri kullanan büyük filmlerdeki küresel aydınlatma , ek ışıklarla taklit edildi. Işın izleme tabanlı işleme, sonunda fiziksel tabanlı hafif taşımayı etkinleştirerek bunu değiştirdi. Tamamen yol izleme kullanılarak oluşturulan ilk uzun metrajlı filmler arasında Monster House (2006), Cloudy with a Chance of Meatballs (2009) ve Monsters University (2013) bulunmaktadır.

Algoritmaya genel bakış

Işın izleme algoritması, piksellerin renk değerini yaklaşık olarak tahmin etmek için ışınları bir sahneye uzatarak ve yüzeylerden ve ışık kaynaklarına doğru sektirerek bir görüntü oluşturur.
Bir piksel için ışın izleme algoritmasının çizimi (ilk sıçramaya kadar)

Optik ışın izleme, ışın dökümü veya tarama çizgisi oluşturma tekniklerinden daha fazla fotogerçekçilikle 3B bilgisayar grafik ortamlarında oluşturulmuş görsel görüntüler üretmek için bir yöntemi açıklar . Sanal bir ekrandaki her piksel boyunca hayali bir gözden bir yol izleyerek ve bunun içinden görünen nesnenin rengini hesaplayarak çalışır.

Işın izlemedeki sahneler, bir programcı veya görsel bir sanatçı tarafından (normalde aracı araçlar kullanılarak) matematiksel olarak tanımlanır. Sahneler, dijital fotoğrafçılık gibi araçlarla yakalanan görüntülerden ve modellerden gelen verileri de içerebilir.

Tipik olarak, her ışın , sahnedeki tüm nesnelerin bazı alt kümeleriyle kesişme açısından test edilmelidir . En yakın nesne belirlendikten sonra, algoritma kesişme noktasında gelen ışığı tahmin edecek , nesnenin malzeme özelliklerini inceleyecek ve pikselin son rengini hesaplamak için bu bilgileri birleştirecektir. Belirli aydınlatma algoritmaları ve yansıtıcı veya yarı saydam malzemeler, sahneye yeniden dökülecek daha fazla ışın gerektirebilir.

Işınları kameranın içine değil de (gerçek ışığın gerçekte yaptığı gibi) kameradan uzağa göndermek ilk başta mantıksız veya "geriye doğru" görünebilir , ancak bunu yapmak birçok büyüklük mertebesi daha verimlidir. Belirli bir ışık kaynağından gelen ışık ışınlarının ezici çoğunluğu onu doğrudan izleyicinin gözüne yapmadığından, "ileri" bir simülasyon, asla kaydedilmeyen ışık yollarında potansiyel olarak muazzam miktarda hesaplama israfına neden olabilir.

Bu nedenle, ışın izlemede alınan kısayol, belirli bir ışının görüş çerçevesiyle kesiştiğini varsaymaktır. Maksimum sayıda yansımadan veya kesişme olmaksızın belirli bir mesafe kat eden bir ışından sonra, ışın seyahat etmeyi durdurur ve pikselin değeri güncellenir.

Dikdörtgen görünüm için ışınları hesaplayın

Girdimizde (hesaplamada vektör normalleştirmesini ve çapraz çarpımı kullanıyoruz ):

  • göz pozisyonu
  • hedef pozisyon
  • görüş alanı - insanlar için varsayabiliriz
  • görünüm alanında dikey ve yatay yönde kare piksel sayısı
  • gerçek piksel sayıları
  • nerede yukarı ve aşağı olduğunu gösteren dikey vektör, genellikle (resimde görünmez) - C noktası etrafında görünüm alanı dönüşünü belirleyen yuvarlanma bileşeni (burada dönüş ekseni ET bölümüdür)

Görüntü alanı şeması cadı pikselleri, göz E ve hedef T, görüntü alanı merkezi C

Buradaki fikir, gözden o pikselden geçen çizgiyi bulmamıza ve son olarak nokta ve vektör (veya normalleştirmesi ) ile tanımlanan ışını elde etmemize izin veren her bir görüntü noktası piksel merkezinin konumunu bulmaktır . Önce sol alt görüntü noktası pikselinin koordinatlarını bulmalı ve sonraki pikseli, görüntü alanına paralel yönler boyunca kaydırma yaparak (vektörler i ) piksel boyutuyla çarparak bulmamız gerekir . Aşağıda , göz ile görüş alanı arasındaki mesafeyi içeren formülleri sunuyoruz . Ancak, ışın normalizasyonu sırasında bu değer azalacaktır (bunu kabul edip hesaplamalardan çıkarabilirsiniz).

Ön hesaplamalar: Görüntü alanına paralel olan vektör ve vektörleri bulalım ve normalleştirelim (tümü yukarıdaki resimde gösterilmiştir)

görüntü alanı merkezini not edin , daha sonra görüntü alanı boyutlarını en boy oranı dahil 2'ye bölerek hesaplıyoruz

ve sonra , görüntü alanına ( ) ve sol alt piksel merkezine paralel yönler boyunca sonraki piksel kaydırma vektörlerini hesaplarız

Hesaplamalar: not ve ışın yani

Yukarıdaki formül bu javascript projesinde test edilmiştir (tarayıcıda çalışır).

Işın izleme bilgisayar algoritmasının ve oluşumunun ayrıntılı açıklaması

(Basitleştirilmiş) doğada ne olur?

Doğada, bir ışık kaynağı, sonunda ilerlemesini kesintiye uğratan bir yüzeye giden bir ışık ışını yayar. Bu "ışın" , aynı yol boyunca hareket eden bir foton akışı olarak düşünülebilir. Kusursuz bir boşlukta bu ışın düz bir çizgi olacaktır ( göreceli etkileri göz ardı ederek ). Bu ışık ışını ile dört şeyin herhangi bir kombinasyonu olabilir: absorpsiyon , yansıma , kırılma ve floresan . Bir yüzey, ışık ışınının bir kısmını emebilir, bu da yansıyan ve/veya kırılan ışığın yoğunluğunun kaybolmasına neden olabilir. Ayrıca ışık ışınının tamamını veya bir kısmını bir veya daha fazla yönde yansıtabilir. Yüzeyin herhangi bir saydam veya yarı saydam özelliği varsa, ışık huzmesinin bir kısmını kendi içine farklı bir yönde kırarken, spektrumun bir kısmını (veya tamamını) emer (ve muhtemelen rengi değiştirir). Daha az yaygın olarak, bir yüzey ışığın bir kısmını emebilir ve floresan olarak ışığı daha uzun bir dalga boyunda rastgele bir yönde yeniden yayabilir, ancak bu, çoğu işleme uygulamasından iskonto edilebilecek kadar nadirdir. Absorpsiyon, yansıma, kırılma ve flüoresans arasında, gelen ışığın tamamı hesaba katılmalıdır, daha fazlası değil. Örneğin bir yüzey, gelen bir ışık ışınının %66'sını yansıtamaz ve %50'sini kıramaz, çünkü ikisinin toplamı %116 olur. Buradan yansıyan ve/veya kırılan ışınlar, diğer yüzeylere çarpabilir, burada onların soğurma, kırma, yansıtma ve flüoresan özellikleri yine gelen ışınların ilerlemesini etkiler. Bu ışınların bazıları, gözümüze çarpacak şekilde hareket ederek sahneyi görmemize neden olur ve böylece nihai görüntüye katkıda bulunur.

Işın döküm algoritması

Özyinelemeli ışın izlemenin öncülü olan ışın dökümünün arkasındaki fikir, her piksel için bir tane olmak üzere gözden gelen ışınları izlemek ve bu ışının yolunu kapatan en yakın nesneyi bulmaktır. Bir görüntüyü, ekrandaki her karenin bir piksel olduğu bir ekran kapısı olarak düşünün. Bu, gözün o pikselden gördüğü nesnedir. Bu algoritma, malzeme özelliklerini ve sahnedeki ışıkların etkisini kullanarak bu nesnenin gölgelenmesini belirleyebilir . Basitleştirici varsayım, bir yüzey bir ışığa bakarsa, ışığın o yüzeye ulaşacağı ve engellenmeyeceği veya gölgede kalmayacağı varsayımı yapılır. Yüzeyin gölgelenmesi, geleneksel 3B bilgisayar grafik gölgelendirme modelleri kullanılarak hesaplanır. Eski tarama çizgisi algoritmalarına göre sunulan önemli bir avantaj ışın dökümü , koniler ve küreler gibi düzlemsel olmayan yüzeyler ve katılarla kolayca başa çıkma yeteneğiydi . Matematiksel bir yüzey bir ışın tarafından kesilebiliyorsa, ışın dökümü kullanılarak oluşturulabilir. Ayrıntılı nesneler katı modelleme teknikleri kullanılarak oluşturulabilir ve kolayca oluşturulabilir.

Özyinelemeli ışın izleme algoritması

Işın izleme, fotogerçekçi görüntüler oluşturabilir.
Yüksek derecede gerçekçiliğe ek olarak, ışın izleme, alan derinliği ve açıklık şekli (bu durumda bir altıgen ) nedeniyle bir kameranın etkilerini simüle edebilir .
Bir "ışın"ın yapabileceği yansıma veya sıçrama sayısı ve bir yüzeyle her karşılaştığında nasıl etkileneceği yazılımdaki ayarlarla kontrol edilir. Bu görüntüde her bir ışının 16 kata kadar yansımasına izin verildi . Dolayısıyla bu alanlarda çoklu “yansıma yansımaları” görülebilir. ( Kobalt ile oluşturulan resim .)
Bir "ışın"ın yapabileceği kırılma sayısı ve ışığın iletilmesine izin veren bir yüzeyle her karşılaştığında nasıl etkileneceği yazılımdaki ayarlarla kontrol edilir. Burada, her ışın 9 kata kadar kırılmaya veya yansıtmaya ("derinlik") ayarlanmıştır . Fresnel yansımaları kullanılmış ve kostikler görülebilmektedir. ( V-Ray ile oluşturulmuş resim .)

Daha önceki algoritmalar, gözden gelen ışınları bir nesneye çarpana kadar sahneye kadar takip etti, ancak tekrar tekrar daha fazla ışın izlemeden ışın rengini belirledi. Özyinelemeli ışın izleme işlemi devam ettirir. Bir ışın bir yüzeye çarptığında, yansıma, kırılma ve gölge nedeniyle ek ışınlar dökülebilir:

  • Ayna-yansıma yönünde bir yansıma ışını izlenir. Kesiştiği en yakın nesne, yansımada görülecektir.
  • Saydam malzemeden geçen bir kırılma ışını benzer şekilde çalışır, ayrıca bir kırılma ışını bir malzemeye giriyor veya çıkıyor olabilir. Turner Whitted , saydam bir katıdan geçen ışınların matematiksel mantığını, kırılma etkilerini içerecek şekilde genişletti.
  • Her ışığa doğru bir gölge ışını izlenir. Yüzey ile ışık arasında opak bir cisim bulunursa, yüzey gölgededir ve ışık onu aydınlatmaz.

Bu özyinelemeli ışınlar, ışın izlemeli görüntülere daha fazla gerçekçilik katar.

Diğer işleme yöntemlerine göre avantajlar

Işın izleme tabanlı işlemenin popülaritesi , daha gerçekçi geometri simülasyonuna odaklanan rasterleştirme gibi diğer işleme yöntemleriyle karşılaştırıldığında, gerçekçi bir ışık taşıma simülasyonu temelinden kaynaklanmaktadır . Diğer algoritmalar kullanılarak simüle edilmesi zor olan yansımalar ve gölgeler gibi etkiler ışın izleme algoritmasının doğal bir sonucudur. Her ışının hesaplama bağımsızlığı, ışın izlemeyi temel bir paralelleştirme düzeyine uygun hale getirir , ancak ışın yollarının farklılığı, paralellik altında yüksek kullanımı pratikte elde etmeyi oldukça zorlaştırır.

Dezavantajları

Işın izlemenin ciddi bir dezavantajı performanstır (teorik olarak sahne karmaşıklığına ve ekrandaki piksel sayısına bağlı olarak geleneksel tarama çizgisi oluşturmadan daha hızlı olabilir). 2010'ların sonlarına kadar, gerçek zamanlı ışın izleme, genellikle önemsiz olmayan görevler için tüketici donanımında imkansız olarak kabul edildi. Tarama çizgisi algoritmaları ve diğer algoritmalar, pikseller arasındaki hesaplamaları paylaşmak için veri tutarlılığını kullanırken, ışın izleme normalde süreci yeniden başlatarak her bir göz ışınını ayrı ayrı ele alır. Bununla birlikte, bu ayrım, uzamsal kenar yumuşatma gerçekleştirmek ve gerektiğinde görüntü kalitesini iyileştirmek için gerektiğinde daha fazla ışın çekme yeteneği gibi başka avantajlar da sunar .

Yansıma ve kırılma gibi optik etkileri doğru bir şekilde ele alsa da, geleneksel ışın izleme de mutlaka fotogerçekçi değildir . Gerçek fotogerçekçilik, işleme denklemine yakın bir şekilde yaklaşıldığında veya tam olarak uygulandığında ortaya çıkar. Denklem, ışık akışının her fiziksel etkisini tanımladığı için, işleme denklemini uygulamak gerçek fotogerçekçiliği verir. Ancak, gerekli bilgi işlem kaynakları göz önüne alındığında bu genellikle mümkün değildir.

Tüm işleme yöntemlerinin gerçekçiliği, denkleme bir yaklaşım olarak değerlendirilebilir. Işın izleme, Whitted'in algoritmasıyla sınırlıysa, mutlaka en gerçekçi olanı değildir. Işınları izleyen, ancak ek teknikler ( foton haritalama , yol izleme ) içeren yöntemler , gerçek dünya aydınlatmasının çok daha doğru bir simülasyonunu sağlar.

Işınlar tarafından sahnenin ters yönü

Bir görüntüyü oluşturmak için ışınları gözden ışık kaynağına çekme işlemine bazen geriye doğru ışın izleme denir , çünkü fotonların gerçekte hareket ettiği yönün tersidir. Ancak bu terminolojide bir karışıklık var. Erken ışın izleme her zaman gözden yapıldı ve James Arvo gibi ilk araştırmacılar, geriye doğru ışın izleme terimini , ışıklardan ışınları çekmek ve sonuçları toplamak için kullandılar. Bu nedenle, göz tabanlı ve ışık tabanlı ışın izlemeyi ayırt etmek daha nettir .

Doğrudan aydınlatma genellikle göz tabanlı ışın izleme kullanılarak en iyi şekilde örneklenirken, bazı dolaylı etkiler, ışıklardan üretilen ışınlardan yararlanabilir. Kostikler , ışığın geniş bir yansıtıcı bölgeden (yakın) dağınık yüzeyin dar bir alanına odaklanmasının neden olduğu parlak desenlerdir. Işınları doğrudan ışıklardan yansıtıcı nesnelere gönderen ve bunların göze giden yollarını izleyen bir algoritma bu fenomeni daha iyi örnekleyecektir. Göz temelli ve ışık temelli ışınların bu entegrasyonu genellikle iki yönlü yol izleme olarak ifade edilir, burada yollar hem gözden hem de ışıklardan izlenir ve yollar daha sonra belirli bir uzunluktan sonra bir bağlantı ışını ile birleştirilir.

Foton haritalama , hem ışık tabanlı hem de göz tabanlı ışın izlemeyi kullanan başka bir yöntemdir; bir ilk geçişte, enerjik fotonlar, 3 boyutlu uzayın bir fonksiyonu olarak ışıma akısının bir tahminini hesaplamak için ışık kaynağından gelen ışınlar boyunca izlenir (kendi adını taşıyan foton haritasının kendisi). Bir sonraki geçişte, görünür yüzeyleri belirlemek için gözden sahneye doğru ışınlar izlenir ve görünür yüzey noktalarındaki aydınlatmayı tahmin etmek için foton haritası kullanılır. Foton haritalamanın çift yönlü yol izlemeye karşı avantajı, istatistiksel sapma pahasına, hesaplamayı azaltarak fotonların önemli ölçüde yeniden kullanılmasını sağlama yeteneğidir.

Sahneyi aydınlatmak için ışığın çok dar bir açıklıktan geçmesi gerektiğinde (parlak bir şekilde aydınlatılmış bir odaya açılan bir kapısı hafifçe aralık olan karanlık bir oda düşünün) veya çoğu noktanın doğrudan doğruya çizgiye sahip olmadığı bir sahnede ek bir sorun ortaya çıkar. - herhangi bir ışık kaynağına görüş (tavana yönelik aydınlatma armatürleri veya meşaleler gibi ). Bu gibi durumlarda, yolların yalnızca çok küçük bir alt kümesi enerjiyi taşıyacaktır; Metropolis hafif ulaşım , yol uzayının rastgele aranmasıyla başlayan ve enerjik yollar bulunduğunda, yakındaki ışın uzayını keşfederek bu bilgiyi yeniden kullanan bir yöntemdir.

İki dağınık yüzeyle karşılaştıktan sonra "gözden" (ve bir görüntü düzlemi boyunca) bir ışık kaynağına tekrarlayan şekilde oluşturulan ışınları gösteren görüntü .

Sağda, yukarıdaki algoritmayı kullanarak kameradan (veya gözden) ışık kaynağına tekrarlayan bir şekilde oluşturulan ışınların yolunun basit bir örneğini gösteren bir görüntü bulunmaktadır. Dağınık bir yüzey ışığı her yöne yansıtır.

İlk olarak, bir bakış noktasında bir ışın oluşturulur ve bir piksel boyunca ve dağınık bir yüzeye çarptığı sahneye doğru izlenir. Algoritma bu yüzeyden yinelemeli olarak bir yansıma ışını üretir, bu da sahne boyunca izlenir ve başka bir dağınık yüzeye çarpar. Son olarak, başka bir yansıma ışını oluşturulur ve sahne boyunca izlenir, burada ışık kaynağına çarpar ve emilir. Pikselin rengi artık birinci ve ikinci dağınık yüzeyin renklerine ve ışık kaynağından yayılan ışığın rengine bağlıdır. Örneğin, ışık kaynağı beyaz ışık yayarsa ve iki dağınık yüzey maviyse, pikselin elde edilen rengi mavidir.

Örnek

Işın izleme ile ilgili ilkelerin bir gösterimi olarak, bir ışın ile bir küre arasındaki kesişimi nasıl bulacağınızı düşünün. Bu, yalnızca çizgi-küre kesişiminin arkasındaki matematik ve ardından hesaplanan pikselin renginin belirlenmesidir. Elbette, ışın izlemenin genel sürecinden çok daha fazlası vardır, ancak bu, kullanılan algoritmaların bir örneğini göstermektedir.

Olarak vektör gösterimde , merkezi olan bir küre denklemi ve yarıçapı olan

Yönlü noktadan başlayan bir ışın üzerindeki herhangi bir nokta (burada bir birim vektör ) şu şekilde yazılabilir:

ve arasındaki mesafe nerede . Bizim probleminde, bildiğimiz , , (örneğin bir ışık kaynağı pozisyonu) ve ve biz bulmalıyız . Bu nedenle, yerine koyuyoruz :

Basitlik için izin verin ; sonra

d'nin bir birim vektör olduğunu bilmek bize şu küçük sadeleştirmeyi sağlar:

Bu ikinci dereceden denklemin çözümleri var

Bu denklemi çözerek bulunan iki değer , ışının küreyi kestiği noktalar olan iki değerdir.

Negatif olan herhangi bir değer ışın üzerinde değil, zıt yarım hatta (yani zıt yönden başlayan ) yer alır.

Karekökün altındaki miktar ( ayrımcı ) negatifse, ışın küreyi kesmez.

Şimdi en azından olumlu bir çözüm olduğunu varsayalım ve en az çözüm olsun . Ayrıca, kürenin ışınımızı kesen sahnemizde en yakın nesne olduğunu ve yansıtıcı bir malzemeden yapıldığını varsayalım. Işık ışınının hangi yönde yansıdığını bulmamız gerekir. Yansıma yasaları, yansıma açısının, gelen ışın ile kürenin normali arasındaki gelme açısına eşit ve zıt olduğunu belirtir .

Kürenin normali basitçe

daha önce bulunan kesişme noktası nerede . Yansıma yönü bulunabilir yansıma arasında göre olan,

Böylece yansıyan ışın denklemi vardır

Şimdi , yansıyan ışık ışınımızın çarpacağı pikseli elde etmek için yalnızca son ışının görüş alanımızla kesişimini hesaplamamız gerekiyor . Son olarak, bu piksel, orijinal ışık kaynağının rengi ile kürenin renginin yansıma tarafından nasıl birleştirildiği dikkate alınarak uygun bir renge ayarlanır.

Uyarlanabilir derinlik kontrolü

Uyarlanabilir derinlik kontrolü, hesaplanan yoğunluk belirli bir eşiğin altına düştüğünde oluşturucunun yansıyan/iletilen ışınları üretmeyi durdurduğu anlamına gelir. Her zaman ayarlanmış bir maksimum derinlik olmalıdır, yoksa program sonsuz sayıda ışın üretecektir. Ancak yüzeyler çok yansıtıcı değilse her zaman maksimum derinliğe gitmek gerekli değildir. Bunu test etmek için ışın izleyici, ışınlar izlenirken global ve yansıma katsayılarının çarpımını hesaplamalı ve tutmalıdır.

Örnek: bir yüzey kümesi için Kr = 0,5 olsun. Sonra birinci yüzeyden maksimum katkı 0,5'tir, ikinciden yansıma için: 0,5 × 0,5 = 0,25, üçüncü: 0,25 × 0,5 = 0,125, dördüncü: 0,125 × 0,5 = 0,0625, beşinci: 0,0625 × 0,5 = 0,03125 , vb. Ek olarak, yoğunluk katkısını da azaltacak 1/D2 gibi bir mesafe azaltma faktörü uygulayabiliriz.

İletilen bir ışın için benzer bir şey yapabiliriz, ancak bu durumda nesneden geçen mesafe daha hızlı yoğunluk azalmasına neden olur. Buna bir örnek olarak, Hall & Greenberg, çok yansıtıcı bir sahne için bile, bunu maksimum 15 derinlikle kullanmanın, ortalama ışın ağacı derinliğinin 1.7 ile sonuçlandığını buldu.

sınırlayıcı hacimler

Nesne gruplarını hiyerarşik sınırlayıcı hacim kümeleri içine almak, ışın izleme için gereken hesaplama miktarını azaltır. Bir dökme ışın önce sınırlayıcı hacimle bir kesişim için test edilir ve daha sonra bir kesişme varsa, ışın nesneye çarpana kadar hacim özyinelemeli olarak bölünür. En iyi sınırlayıcı hacim türü, alttaki nesnenin veya nesnelerin şekline göre belirlenir. Örneğin, nesneler uzun ve inceyse, bir küre, bir kutuya kıyasla esas olarak boş alanı kaplayacaktır. Kutuların hiyerarşik sınırlayıcı hacimler oluşturması da daha kolaydır.

Bunun gibi bir hiyerarşik sistem kullanmanın (dikkatle yapıldığını varsayarak), kesişim hesaplama zamanını, nesne sayısına doğrusal bir bağımlılıktan, doğrusal ve logaritmik bir bağımlılık arasındaki bir şeye değiştirdiğini unutmayın. Bunun nedeni, mükemmel bir durum için her kesişme testinin olasılıkları ikiye bölerek ikili ağaç tipi bir yapıyla sonuçlanmasıdır. Aşağıda tartışılan uzamsal alt bölme yöntemleri bunu başarmaya çalışır.

Kay & Kajiya, hiyerarşik sınırlayıcı hacimler için istenen özelliklerin bir listesini verir:

  • Alt ağaçlar birbirine yakın nesneler içermelidir ve ağaçtan ne kadar aşağıdaysa nesneler o kadar yakın olmalıdır.
  • Her düğümün hacmi minimum olmalıdır.
  • Tüm sınırlayıcı hacimlerin hacimlerinin toplamı minimum olmalıdır.
  • Kökün yakınındaki bir dalı budamak, ağacın altındaki bir daldan daha fazla potansiyel nesneyi kaldıracağından, kökün yakınındaki düğümlere daha fazla dikkat edilmelidir.
  • Hiyerarşiyi oluşturmak için harcanan zaman, onu kullanarak kazanılan zamandan çok daha az olmalıdır.

Etkileşimli ışın izleme

Etkileşimli ışın izleyicinin ilk uygulaması, 1982 yılında Osaka Üniversitesi Mühendislik Fakültesi'nde profesörler Ohmura Kouichi, Shirakawa Isao ve Kawata Toru tarafından 50 öğrenciyle inşa edilen LINKS-1 Bilgisayar Grafik Sistemiydi . Bu bir oldu geniş paralel işlem bilgisayar 514 ile sistem mikroişlemci (257 birZilog Z8001s ve 257 iAPX 86s gerçekçi render için kullanılır), 3D bilgisayar grafikleri yüksek hızlı ışın izleme ile. Göre Japonya'nın Bilgi İşleme Derneği : "3D görüntü render çekirdek verilen bakış, bir render yüzeyini oluşturan her bir pikselin parlaklığı hesaplıyor ışık kaynağı ve nesne konumunda sistemi gerçekleştirmek için geliştirilmiştir-1 LINKS. Işın izleme kullanılarak her pikselin bağımsız olarak paralel olarak işlenebildiği görüntü oluşturma metodolojisi. LINKS-1, özellikle yüksek hızlı görüntü oluşturma için yeni bir yazılım metodolojisi geliştirerek, son derece gerçekçi görüntüleri hızla oluşturmayı başardı." Tamamen bilgisayar grafikleriyle yapılmış , göklerin erken dönem 3D planetaryum benzeri bir videosunu oluşturmak için kullanıldı . Video, Tsukuba'daki 1985 Uluslararası Fuarında Fujitsu pavyonunda sunuldu ." 1982'de Evans & Sutherland Digistar'dan sonra bunu yapan ikinci sistemdi . LINKS-1'in 1984'te dünyanın en güçlü bilgisayarı olduğu bildirildi.

Etkileşimli oluşturma ile "gerçek zamanlı" ışın izlemenin en eski kamu kaydı (yani, saniyede bir kareden daha büyük güncellemeler), 2005 SIGGRAPH bilgisayar grafikleri konferansında, 1986'da Mike Muuss tarafından REMRT/RT araçları olarak kabul edildi. BRL-CAD katı modelleme sistemi. İlk olarak 1987'de USENIX'te yayınlanan BRL-CAD ışın izleyici, işleme performansında saniyede birkaç kare elde eden paralel ağ dağıtılmış ışın izleme sisteminin erken bir uygulamasıydı. Bu performans, BRL-CAD'de yüksek düzeyde optimize edilmiş, ancak platformdan bağımsız LIBRT ışın izleme motoru aracılığıyla ve bir ticari ağ üzerinden birkaç paylaşılan bellek paralel makinede katı örtük CSG geometrisi kullanılarak elde edildi . BRL-CAD'in REMRT/RT araçları da dahil olmak üzere ışın izleyicisi, açık kaynaklı yazılım olarak bugün kullanıma sunulmaya ve geliştirilmeye devam ediyor .

O zamandan beri, bağımsız masaüstü yapılandırmalarında çeşitli amaçlar için gerçek zamanlı hızlarda ışın izlemeyi uygulamaya yönelik önemli çabalar ve araştırmalar yapıldı. Bu amaçlar, demoscene yapımları , bilgisayar ve video oyunları ve görüntü oluşturma gibi etkileşimli 3D grafik uygulamalarını içerir . Işın izlemeye dayalı bazı gerçek zamanlı yazılım 3D motorları , 1990'ların sonlarından beri hobi demo programcıları tarafından geliştirilmiştir .

1999'da Utah Üniversitesi'nden Steven Parker liderliğindeki bir ekip , 1999 Etkileşimli 3D Grafikler Sempozyumu'nda canlı olarak etkileşimli ışın izlemeyi gösterdi. 60 CPU'da saniyede yaklaşık 15 kare hızında çalışan 512 x 512 piksel çözünürlükte 35 milyon küre modeli oluşturdular.

OpenRT projesi , etkileşimli 3D grafikler için mevcut rasterleştirme tabanlı yaklaşıma bir alternatif sunmak amacıyla, OpenGL benzeri bir API ile birlikte ışın izleme için yüksek düzeyde optimize edilmiş bir yazılım çekirdeği içeriyordu . Saarland Üniversitesi'nde Sven Woop tarafından geliştirilen deneysel Işın İşleme Birimi gibi ışın izleme donanımı , ışın izlemenin hesaplama açısından yoğun bazı işlemlerini hızlandırmak için tasarlanmıştır. 16 Mart 2007'de Saarland Üniversitesi, bilgisayar oyunlarının yoğun kaynak kullanımı olmadan ışın izleme yoluyla işlenmesine izin veren yüksek performanslı bir ışın izleme motorunun bir uygulamasını ortaya çıkardı.

Quake Wars Işın İzlemeli

12 Haziran 2008'de Intel, Enemy Territory: Quake Wars'ın Quake Wars: Ray Traced başlıklı özel bir sürümünü gösterdi . ETQW saniyede 14-29 kare hızında çalışır. Gösteri, 2.93 GHz hızında çalışan 16 çekirdekli (4 soket, 4 çekirdekli) bir Xeon Tigerton sisteminde gerçekleştirildi.

SIGGRAPH 2009'da Nvidia , Nvidia GPU'larında gerçek zamanlı ışın izleme için ücretsiz bir API olan OptiX'i duyurdu . API, ışın izleme boru hattı içinde yedi programlanabilir giriş noktası ortaya çıkararak özel kameralara, ışın temelli kesişmelere, gölgelendiricilere, gölgelendirmeye vb. kuyruk özyineleme. OptiX tabanlı oluşturucular, Autodesk Arnold, Adobe AfterEffects , Bunkspeed Shot, Autodesk Maya , 3ds max ve diğer birçok oluşturucuda kullanılır.

Imagination Technologies , kuyruk özyinelemeli ışın izleme tabanlı işleme algoritmalarını hızlandıran ve tescilli ışın izleme donanımıyla birlikte Autodesk Maya ile birlikte çalışan OpenRL adlı ücretsiz bir API sunar ve 3D World'ün "gündelik sanatçılara gerçek zamanlı ışın izleme" dediği şeyi sağlar .

2014 yılında, Q-Games ve Japan Studio tarafından geliştirilen PlayStation 4 video oyunu The Tomorrow Children'ın bir demosu, Q-Games tarafından geliştirilen yeni aydınlatma tekniklerini, özellikle de aydınlatmayı gerçek zamanlı olarak simüle eden ve ışıklandırmayı kullanan kademeli voksel koni ışın izlemeyi gösterdi. daha gerçekçi yansımalar ziyade ekran alanı yansımaları.

Nvidia, GeForce RTX ve Quadro RTX GPU'larında şu anda Ampere mimarisini temel alan donanım hızlandırmalı ışın izleme sunuyor . Nvidia donanımı, genel olarak "RT çekirdeği" olarak adlandırılan ayrı bir işlevsel blok kullanır. Bu birim, boyut, gecikme ve işlemci çekirdeği arabirimi açısından bir doku birimiyle karşılaştırılabilir. Ünite, BVH geçişi, sıkıştırılmış BVH düğüm dekompresyonu, ışın-AABB kesişim testi ve ışın-üçgen kesişim testi özelliklerine sahiptir.

AMD, Radeon ProRender aracılığıyla Vega grafik kartlarında OpenCL'nin üstünde etkileşimli ışın izleme sunar . Ekim 2020'de şirket , çevrimiçi bir etkinlikte donanım hızlandırmalı ışın izleme desteğine sahip ikinci nesil Navi GPU'ları Radeon RX 6000 serisini tanıttı .

PlayStation 5 , Xbox Serisi X ve Serisi S adanmış destekleyen ışın izleme donanım bileşenlerini gerçek zamanlı ışın izleme etkileri onların GPU'lardaki.

hesaplama karmaşıklığı

Işın izleme probleminin belirli formülasyonları için çeşitli karmaşıklık sonuçları kanıtlanmıştır. Özellikle, ışın izleme probleminin karar versiyonu aşağıdaki gibi tanımlanırsa – bir ışık ışınının başlangıç ​​konumu ve yönü ve sabit bir nokta verildiğinde, ışın sonunda o noktaya ulaşır mı, o zaman başvurulan kağıt aşağıdaki sonuçları kanıtlar:

  • Rasyonel ikinci dereceden eşitsizlikler sistemi tarafından temsil edilen sonlu bir yansıtıcı veya kırılma nesnesi kümesine sahip 3B optik sistemlerde ışın izleme karar verilemez .
  • Rasyonel lineer eşitsizlikler sistemi tarafından temsil edilen sonlu bir kırılma nesnesi setine sahip 3B optik sistemlerde ışın izleme karar verilemez.
  • Sonlu bir dikdörtgen yansıtıcı veya kırılma nesnesi setine sahip 3B optik sistemlerde ışın izleme karar verilemez.
  • Bazıları irrasyonel olabilen bir doğrusal eşitsizlikler sistemi tarafından temsil edilen sonlu bir yansıtıcı veya kısmen yansıtıcı nesneler kümesine sahip 3B optik sistemlerde ışın izleme karar verilemez.
  • Rasyonel doğrusal eşitsizlikler sistemi tarafından temsil edilen sınırlı sayıda yansıtıcı veya kısmen yansıtıcı nesneler içeren 3B optik sistemlerde ışın izleme, PSPACE- zordur.
  • 2'ye eşit veya daha büyük herhangi bir boyut için, rasyonel doğrusal eşitsizliklerle temsil edilen sonlu bir paralel ve dikey yansıtıcı yüzeyler kümesiyle ışın izleme PSPACE'dedir.

Ayrıca bakınız

Referanslar

Dış bağlantılar