Işın izlemenin temel mantığı
Işın izleme, gerçek dünyada ışığın ne şekilde hareket ettiğini göz önünde bulundurarak bir sahnenin görüntüsünü çizen bir grafik oluşturma yöntemidir. Bu yöntemde işlemler, gerçek yeryüzündeki yolun tersini izler. Gerçek dünyada ışık ışınları bir ışık kaynağından çıkar ve nesneleri aydınlatırlar. Işık, nesnelerden yansır ya da şeffaf nesnelerin içinden geçer. Yansıyan ışık gözümüze ya da kamera merceğine çarpar.
Kaynak, yansıyan ışık ışınlarının çoğunun bir gözlemciye erişmediğini belirtir. Bu nedenle bir sahnedeki ışınları izlemek sonsuza dek sürebilir. Bu durum, bilgisayar ortamında doğrudan ileri yönlü modellemenin neden zor olduğunu açıklar.
Klasik aydınlatma modellerinin sınırları
Phong aydınlatma modeline göre herhangi bir pikselin renk değeri belirlenirken üç bileşen kullanılır. Bunlar ortam (ambient), yaygın (diffuse) ve aynasal (specular) bileşenlerdir. Bu üç bileşen, toplamları 1’e eşit olan üç katsayı ile toplanarak, ilgili pikselin renk değeri hesaplanır.

Kaynak, klasik ışın izleme yönteminin ambient değerini gerçekçi olarak modelleyememektedir. Örneğin tavanında bir lambanın bulunduğu bir odanın simülasyonu yapılmak istendiğinde, odanın tavanı neredeyse tamamen karanlık kalmaktadır. Aynı odada bir masa olduğunu farz edersek, masanın altının da tamamen siyah olduğu görülür.
Gerçek dünyada bazı yüzeylerin tamamen karanlık olmamasına rağmen, ışın izlemenin sonucunda tamamen karanlık olmasının nedeni, ışık kaynağından çıkan ışınlar tarafından doğrudan aydınlatılmayan yüzeylerin gerçekte aydınlık olmasıdır. Yani sahnede aydınlık görünmesine rağmen, ışık kaynağından çıkan ışınların doğrudan çarpmadıkları yüzeyler bulunmaktadır. Bu yüzeyler kırılmalar veya yansımalar neticesinde aydınlanmaktadır.
Dolaylı aydınlatma ve özyineleme
Bu işleme Dolaylı aydınlatma (Indirect Illumination) denir. Doğrudan aydınlatmayan bu yüzeylerin renk değerlerinin hesaplanması, derinliği önceden belirlenmiş özyinelemeli bir algoritmayı gerekli kılar. Aksi takdirde görüntünün tamamen gerçekçi olması beklenemez.
Kaynak, bu algoritmanın koşmasının görüntünün daha da geç hesaplanmasına neden olduğunu belirtir. Bu nedenle algoritmanın optimum olması çok önemlidir.
İleri ve geri yönlü modeller
İleri Yönlü Işın İzleme (Forward Ray Tracing) yöntemi, ışık kaynağından doğrusal olarak saçılan ışınların cisimlerden yansıması ya da kırılması sonucu göze ulaştığı kabul edilerek yapılan modellemedir. Gerçek yeryüzündeki görme, bu modele uygun olarak gerçekleşmektedir.
Gerçek dünyada ışık kaynağından saçılan milyarlarca fotonun çok az bir kısmı göze ulaşır. Bu model bilgisayar ortamında gerçeklenirken, göze ulaşamayan fotonlar için çok sayıda gereksiz hesaplama yapılacaktır. Bu nedenle ileri yönde ışın izleme yönteminin bilgisayar ortamında gerçeklenmesi oldukça zordur.
Göze ulaşmayan ışınların sisteme getireceği yükten kurtulmak için, sadece göze ulaşan ışınlar için hesaplama yapılması istenir. Bu nedenle ışın izleme yönteminin bilgisayar ortamında gerçeklenmesi için Geri Yönde Işın İzleme (Backward Ray Tracing) modeli kullanılır. Bu modelde ileri yönde ışın izleme yönteminin tersine, ışınların gözden çıkarak cisimlere çarpıp yansıması ya da kırılması sonucu ışık kaynağına ulaştığı kabul edilir.
Bu yaklaşım sayesinde ileri yönde ışın izleme yöntemindeki gibi ışık kaynağından çıkan tüm ışınlar için değil, sadece göze ulaşabilen ışınlar için hesaplama yapılmış olur.
Matematiksel temel
Işın, başlangıç noktası ve doğrultusu olan vektörel bir büyüklüktür. Başlangıç noktası R0 olan, Rd doğrultusu boyunca ilerleyen R vektörü R = R0 + t Rd, t > 0 şeklinde tanımlanabilir. Burada t, Rd doğrultusu boyunca giden R ışınının R0 başlangıç noktasına uzaklığıdır. t değerinin R0 ile Rd arasındaki uzaklığa tam olarak eşit olması için Rd’nin boyu 1 olmalı, yani Rd normalize edilmelidir.
Bakış noktasından yollanan ve görüntü düzlemindeki her pikselin merkezinden geçen ışınlara Birincil Işınlar (Primary Rays) denir. Işın izleme yönteminin ilk adımı birincil ışınların oluşturulmasıdır.
Kesişim testlerinde, ışın ile yüzeyin kesişimi araştırılır. Eğer kesişim varsa 0’dan büyük bir t değeri geri döndürülür. Aksi takdirde t değeri 0 olur. Hesaplanan bu t değeri sayesinde yüzey üzerindeki kesişim noktasının koordinatları belirlenir. Eğer ışın bu kesişim noktasından kırılarak veya yansıyarak yoluna devam edecekse, kesişim noktası yeni başlangıç noktası yani R0 olur. Bu ışınlara İkincil Işın (Secondary Rays) denir. İkincil ışınlar istenen derinlik değerindeki bir özyinelemeli algoritma ile ışık kaynağına ulaşıncaya kadar yeniden hesaplanır.
This explanation is adapted from Wikipedia and is available under CC BY-SA 4.0.

Join the conversation