Işın izleme (İngilizce: Ray tracing), 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. Ancak bu yöntemde işlemler gerçek yeryüzündeki yolun tersini izler. Gerçek dünyada ışık bir çı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. Yansıyan ışık ışınlarının çoğu bir gözlemciye erişmediği için bir sahnedeki ışınları izlemek sonsuza dek sürebilir.
Giriş
Günümüzde pek çok alanda bilgisayar kullanımı oldukça yaygınlaşmıştır. İlk zamanlarda sadece bazı hesaplamalar yapmak için kullanılan bilgisayarlar, kullanım alanları genişledikçe insan hayatında daha çok yer edinmiş, iletişim yetenekleri geliştikçe de insanla daha çok ortamı paylaşır hale gelmişlerdir. Bu bağlamda görüntünün güzel olması pek çok uygulama için gerekli olmakla beraber, güncel uygulamaların büyük kısmında gerçekçilik de büyük önem taşır. Örneğin oyunlar ve animasyonlar bilgisayar dünyasında oldukça popülerdir. Görüntünün gerçekçi ve güzel arasında, uygulanabilir, yakın olması, metodun gerçek dünyada ışığın çevreyle olan etkileşimini modellemeye çalışmasıdır.
Elbette hiçbir algoritma mükemmel değildir. uygulanması da hızın artmasını sağlayabilir.
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. Klasik ışın izleme yöntemi, 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.
Ayrıca 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 direkt olarak çarpmadıkları yüzeyler bulunmaktadır. Bu yüzeyler kırılmalar veya yansımalar neticesinde aydınlanmaktadır. Bu işleme (Indirect Illumination) denir. 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. Elbette ki bu algoritmanın koşması, görüntünün daha da geç hesaplanmasına neden olacaktır. Bu nedenle algoritmanın olması çok önemlidir.
Işın İzleme Yöntemi
Işın İzleme Yöntemine Giriş
Işın izleme yöntemi, çıkan ışınların fiziksel davranışlarını modellemek üzere kurulmuştur. Gerçek yeryüzündeki cisimleri görebilmemiz için ışık kaynağından çıkan ışınların, cisimlere çarparak yansıması ya da cisimlerin içinden geçerek kırılması ve sonuçta da gözümüze ulaşması gerekir. Bilgisayar ortamında ise, gerçekçi 3B görüntüler üretebilmek için boyama ve görünmeyen yüzeylerin kaldırılması işlemleri gerçekleştirilmelidir.
Boyama, 3B nesnelerin herhangi bir noktasındaki renk değerinin belirlenmesine denir. Bu renk belirleme işlemi ışıklandırma, gölgelendirme, , yansıma ve kırılmaya bağlı olarak belirlenir.
Görünmeyen yüzeylerin kaldırılması ise, gözlemci tarafından 3B nesnelere bakıldığında, manzaradaki cisimleri oluşturan yüzeylerden görünmeyenlerin kaldırılması, dolayısı ile görünenlerin belirlenmesi işlemine verilen addır.
Işın izleme yöntemi hem görünmeyen yüzeylerin kaldırılması, hem de renk değerlerinin belirlenmesine ilişkin çözümler sunar.
İleri Yönlü Işın İzleme (Forward Ray Tracing) Yöntemi
Işık kaynağından olarak saçılan ışınların cisimlerden yansıması ya da kırılması sonucu göze ulaştığı kabul edilerek yapılan modellemeye İleri Yönde Işın İzleme (Forward Ray Tracing) yöntemi denir. 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.
Geri Yönlü Işın İzleme (Backward Ray Tracing) Yöntemi
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.
Geri yönde ışın izleme yönteminde, gözlemcinin belli bir noktadan, görüntü düzlemine dik olarak baktığı varsayılır. Bakış noktasından çıkıp görüntü düzleminden geçen ışınlar, cisimlere çarptıktan sonra kırılarak veya yansıyarak ışık kaynağına ulaşıyorsa, ilgili pikselin rengi ışık kaynağının konumuna, cisimlerin rengine, yansıtma ve geçirgenlik özelliklerine göre belirlenir.
Eğer tüm yansımalar ve kırılmalar sonucunda, gönderilen ışın ışık kaynağına ulaşmazsa, ilgili piksel siyaha boyanır. Burada yapılan yansıma ve kırılma işlemleri için bir derinlik değeri belirtilmelidir. Aksi takdirde işlemler çok uzun zaman alabilir.
Işının Tanımı
Işının matematiksel olarak ne ifade ettiğini belirtmek faydalı olacaktır. 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ü aşağıdaki gibi tanımlanabilir:
R = R0 + t Rd, t > 0 (2.1)
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.
Birincil Işınların Üretilmesi
Bakış noktasından yollanan ve görüntü düzlemindeki her pikselin merkezinden geçen ışınlara, Birincil Işınlar (Primary Rays) denir. izleme yönteminin ilk adımı birincil ışınların oluşturulmasıdır.
Birincil ışınlar cisimlere çarpıp yansıyarak ya da kırılarak ışık kaynağına ulaşırsa görüntü düzlemindeki ilgili pikselin rengi, bu birincil ışının çarpıp yansıdığı ya da kırıldığı cisimlerin fiziksel özelliklerine göre belirlenecektir.
Birincil ışınların üretilebilmesi için, ilk olarak doğrultunun hesaplanması gerekir. Bunun için 2.1 ifadesi yeniden düzenlenir :
Rd = (R - R0) / t (2.2)
Anlaşılacağı gibi, birincil ışının doğrultusunun hesaplanması için iki noktaya ve bir uzaklık bilgisine ihtiyaç vardır. İki noktadan birincisi genellikle R0 = [ 0 0 0 ] olarak seçilen bakış noktasıdır. İkinci nokta ise, renk değeri hesaplanmak istenen pikselin koordinatlarıdır. t değeri hipotenüs teoreminden hesaplanabileceği gibi iki nokta arası uzaklık formülünden de bulunabilir. Ancak biz t değerini, kesişim testi neticesinde bulacağız.
Bununla beraber, Rd’nin normalize edilmiş halini bulmak için X, Y ve Z koordinatlarını ayrı ayrı t’ye bölmek yeterlidir. Rd’nin bulunması ile birincil ışın üretimi bitmiş olur. Böylece başlangıç noktası ve doğrultusu bilinen bir vektör elde edilmiştir. Bu birincil ışın ile manzaradaki bir yüzeyin kesişip kesişmediğini tespit etmek için, başlangıç noktası R0’ın ve doğrultu vektörü olan Rd’nin bilinmesi yeterlidir.
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. Yansıma veya kırılma doğrultusu belirlenerek yeniden kesişim testleri yapılır. Bu ışınlara İkincil Işın (Secondary Rays) denir. İkincil ışınlar istenen derinlik değerindeki bir özyinelemeli bir algoritma ile ışık kaynağına ulaşıncaya kadar yeniden hesaplanır.
Gerçek Piksel Koordinatlarının Hesaplanması
Görüntü düzleminin her bir pikseline karşılık, manzarada birden çok piksel karşılık düşer. Örneğin 10 x 10 boyutunda ve bakış noktasından z doğrultusunda 5 birim uzakta bir görüntü düzleminin bulunduğunu varsayalım. Eğer manzaramızın çözünürlüğü 1024 x 768 olarak seçilirse, 10 x 10 birimlik görüntü düzleminin herhangi bir (X, Y, 5) noktasından geçen ışının gerçek piksel koordinatları :
(10 * X / 1024 – X0, Y0 – 10 * Y / 768, 5 ) olur. (2.3)
Bu ifadedeki (X0, Y0, 5 ) noktası, 10 x 10 birimlik görüntü düzleminin en üst sol köşesinin koordinatlarıdır.
Görünmeyen Yüzeylerin Kaldırılması
Görünmeyen yüzeylerin kaldırılmasının, gözlemci tarafından 3B nesnelere bakıldığında, manzaradaki cisimleri oluşturan yüzeylerden görünmeyenlerin kaldırılması, dolayısı ile görünenlerin belirlenmesi işlemine verilen ad olduğunu belirtmiştik.
Görünmeyen yüzeylerin kaldırılmasında kullanılan başlıca yöntemler (Z-Buffer) ve Işın İzleme (Ray Tracing) ’dir.
Derinlik tamponu yönteminde üç boyutlu cisimlerin iki boyutlu görüntü düzlemine izdüşümü alınırken, ilgili pikselin renk değerinin yanı sıra cisimle kesişim noktasının Z değeri de saklanır. Aynı piksel için yeni bir cisim kesişimi algılandığında Z değerleri karşılaştırılır. Yeni Z değeri eskisinden küçükse bu pikselin rengi yeni cismin rengi ile değiştirilir ve Z değeri yenisiyle güncellenir.
Işın izleme yöntemi ile görünmeyen yüzeyler kaldırılırken, bakış noktasına göre aynı doğrultuda bulunan yüzeylerden, t uzaklığı en küçük olanı seçilmelidir. İlgili pikselin renk değeri hesaplanırken, seçilen bu yüzey esas alınır, diğerleri göz ardı edilir.
Dikkat edilirse, Z Buffer yöntemi ve benzeri tüm diğer yöntemlerde kullanılan çokgen türü üçgen olmasına rağmen, ışın izlemede işlemler yönteminde piksel mertebesinde gerçekleştirilir. Bu sayede eğrisel yüzeylerde bile iyi sonuçlar elde edilir. Diğer yöntemlerde bu derece gerçekçi sonuçlar elde etmek için çokgenlerin son derece küçük seçilerek bir piksel boyutuna indirilmesi gerekir ki oldukça zor, hatta imkânsız denilebilir.
Arka Yüzeylerin Kaldırılması (Backface Culling)
Görünmeyen yüzeylerle ilgili diğer bir konu da arka yüzeylerin kaldırılmasıdır. Arka yüzeyler, bakış noktasından bakıldığında asla görülemeyecek olan yüzeylerdir. Örneğin dik olarak bakılan bir küpün arka yüzeyi asla görülemez. Bu yüzeylerin kaldırılması ışın izleme yönteminin hızlanmasını sağlar. Bununla birlikte arka yüzeylerin kaldırılması ışın izleme yöntemi ile çok kolay gerçekleştirilebilir.
Işın - Nesne Kesişim Testleri
Işın izleme yönteminin en temel özelliği, bakış noktasından gönderilen ışınların cisimlerle kesişip kesişmediğini anlamak üzere yapılan kesişim testleridir. Bu testlerde, kesişimi araştırılacak cismin matematiksel denklemi ile ışının başlangıç noktası ve doğrultusunun koordinatları kullanılır. Sonuçta, varsa, kesişim noktası ve bu nokta ile bakış noktası arasındaki t uzaklığı hesaplanır. Aynı doğrultuda birden fazla kesişim noktası bulunabilir. Bu durumda en küçük t değeri esas alınır. Böylece görünmeyen yüzeyler kaldırılmış olur.
Bu kısımda ışın izleme yönteminde kullanılacak temel matematiksel işlemler için gerekli vektörel ifadeler ve işlemler anlatılacaktır.
Işın İzlemede Kullanılan Temel Matematiksel İfadeler
Üç Boyutlu Uzayda Noktanın Tanımı
Üç boyutlu uzayda bir P noktası, kendine ait X, Y, Z koordinatları ile aşağıdaki gibi ifade edilebilir:
P = [ x y z ] (2.4)
Skaler Çarpım
İki vektörün skaler çarpım değeri karşılıklı olarak x, y ve z değerlerinin çarpımlarının toplamına eşittir. Skaler çarpımı * sembolü ile temsil edilirse V1 ve V2 vektörlerinin skaler çarpımı aşağıdaki gibi hesaplanır:
V1 * V2 = (V1X * V2X) + (V1Y * V2Y ) + (V1Z * V2Z) (2.5)
V1 ve V2 vektörlerinin boyunun 1 birim olduğu, yani her iki vektörün de normalize olduğu durumda, bu iki vektörün skaler çarpımı iki vektörün arasındaki açının kosinüs değerini verir. İki vektör arasındaki açının kosinüsü aydınlatmada kullanılır.
Vektörel Çarpım
Vektörel çarpım işlemini x sembolüyle temsil edersek V1 ve V2 vektörlerinin vektörel çarpımı aşağıdaki gibi hesaplanır: V1 x V2 = [ V1Y* V2Z - V1Z* V2Y V1Z* V2X - V1X* V2Z V1X* V2Y - V1Y* V2X ] (2.6)
Vektörel çarpım, ışın izleme yönteminde üçgenlerin normalini bulmak için kullanılır. Yansıyan veya kırılan ışınların yeni doğrultularının hesaplanması için yüzeye dik olan vektörün, yani yüzey normalinin, bilinmesi gerekir.
Difüz ve speküler aydınlatma yapılırken de yüzey normali kullanılır. Ayrıca arka yüzey kaldırmada da hangi yüzün arka yüzey olduğunu belirlerlerken yüzey normali esas alınır. Bakış noktası ile arasında 90°’den daha büyük açı bulunan yüzeyler, arka yüzey kabul edilir.
Tüm bu işlemlerde kullanılacak olan yüzey normalinin birim vektör olması, yeni normalize olması, gerekir.
Barisentrik Koordinatlar
Üçgenin bir köşesinden başlanıp, kenarları belli katsayılarla çarparak başlangıçta alınan köşeye eklenirse, üçgen içinde istenen bir noktaya ulaşmak mümkündür. Kenarların çarpıldığı katsayılara Barisentrik Koordinatlar denir. Üçgen içindeki herhangi bir noktanın barisentrik koordinatlar cinsinden gösterimi aşağıdaki gibidir :
t (u, v ) = V0 + u (V1 – V0 ) + v (V2 – V0) (2.7)
Bu ifadedeki u ve v değerleri ve aşağıdaki şartları sağlamalıdır:
u ≥ 0 ve v ≥ 0 için u + v ≤ 1
Barisentrik koordinatlar bu çalışmada hızlı kesişim testleri gerçekleştirilirken kullanılmıştır. Barisentrik koordinatlardan faydalanılarak daha kısa sürede kesişim testi yapılabilmektedir.
Işın – Yüzey Kesişim Testi
Orijine olan uzaklığı D olan, Pn = [ A B C ] normaline sahip olan P yüzeyini denklemi aşağıdaki gibidir :
Ax + By + Cz + D = 0 (2.8)
Köşe koordinatları Vi (X, Y, Z ) olan üçgenin oturduğu yüzeyin denklemi aşağıdaki gibi hesaplanabilir :
A * Vo,x + B * Vo,y + C * Vo,z + D = 0 (2.9)
2.9 ifadesinden D değeri bulunur. Eğer P yüzeyi ile R ışını kesişiyorsa, R’nin o noktaya karşılık gelen t değeri için yüzey denklemi sağlanmalıdır.
A * (X0 + tXd) + B * (Y0 + tYd) + C * (Z0 + tZd) + D = 0 (2.10)
2.10 ifadesi t’ye göre yeniden düzenlenirse, başlangıç noktası ile yüzey arasındaki uzaklık belirlenmiş olur :
t = - (A * X0 + B * Y0 + C * Z0 ) / (A * Xd + B * Yd + C * Zd ) (2.11)
Eğer t < 0 ise kesişim yoktur. Eğer t > 0 ise kesişim vardır ve kesişim noktası I aşağıdaki gibi hesaplanabilir :
I (X, Y, Z) = (X0 + tXd, Y0 + tYd, Z0 + tZd ) (2.12)
Işın-Üçgen Kesişim Testleri
3B nesneler genellikle üçgenlerden oluşacak şekilde modellenir. Bu sebeple kesişim testi algoritmalarının çoğu üçgenler üzerine yoğunlaşmıştır.
Alan Hesabı İle Işın – Üçgen Kesişim Testi
Bu yöntem, ışın – üçgen kesişim testleri arasından en basit olanıdır. Öncelikle ışın – yüzey kesişim testi yapılmalıdır. Daha sonra ışın ve yüzeyi oluşturan üçgenin köşe noktaları görüntü düzlemine perspektif olarak izdüşürülür. ile üçgenin ikişer noktası sıra ile alınarak üç tane alt üçgen elde edilir. Bu üçgenlerin alanları hesaplanarak toplanır. Elde edilen toplam alan, kesişim testi yapılan üçgenin alanına bir ε kadar yakınsa ışın üçgenin içindedir yani ışın ile üçgen kesişmektedir denir.
Açı Hesabı ile Işın -Üçgen Kesişim Testi
Işın düzlem kesişim testinden elde edilen kesişim noktasının üçgenin içerisinde olup olmadığının kontrolü için kullanılan diğer bir yöntem de açı testidir. Yine ilk olarak ışın – yüzey kesişim testi yapılmalıdır. Daha sonra ışın ve yüzeyi oluşturan üçgenini köşe noktaları görüntü düzlemine perspektif olarak izdüşürülür. Kesişim noktası ile üçgenin ikişer noktası sıra ile alınarak üç tane üçgen elde edilir. Bu üçgenlerin I noktasını merkez nokta kabul eden açıları hesaplanarak toplanır. Elde edilen toplam açı 360° ise ışın üçgenin içindedir yani ışın ile üçgen kesişmektedir denir.
Tomas Möller Işın – Üçgen Kesişim Testi
Yukarıda anlatılan tekniklerin her ikisi de kesişim testi yapmadan önce ışın – yüzey kesişim testi yapılmakta, daha sonra perspektif izdüşümü yapılmaktadır. Böylece problem 3B’dan 2B’a indirgenmekte ve test esnasında 2B noktanın 2B üçgenin içinde olup olmadığı araştırılmaktadır. Ancak tüm bu işlemler için öncelikle yüzey denkleminin belirlenmesi, dolayısı ile normalin hesaplanması gerekmektedir. Elbette ki kesişim testine geçilmeden önce yapılan bu işlemler algoritmanın yavaş çalışmasına neden olmaktadır. Bunun yerine kullanılan Tomas – Möller kesişim testinde yüzey normalinin hesaplanması gerekmemektedir.
Kesişim Testi Algoritması
Başlangıç noktası R0 olan ve Rd doğrultusu boyunca ilerleyen R vektörünü aşağıdaki gibi tanımlamıştık
R = R0 + t Rd, t > 0 (2.1)
Kesişim testi yapılacak olan üçgenin köşeleri Vi ise, üçgen üzerindeki herhangi bir t (u, v ) noktasının barisentrik koordinatlarını aşağıdaki gibi ifade etmiştik:
t (u, v ) = V0 + u (V1 – V0 ) + v (V2 – V0) (2.7)
R ışını, verilen üçgeni bir t (u, v ) noktasında kesiyorsa, aşağıdaki ifade sağlanmalıdır :
R0 + t Rd = V0 + u (V1 – V0 ) + v (V2 – V0) (2.13)
2.13 ifadesi düzenlenirse, u, v ve t’ye bağlı bir lineer denklem sistemi elde edilir. Bu sistemin çözülmesi halinde u, v ve t bulunur. Görüldüğü gibi bu yöntemde yüzey normali ve perspektif izdüşüme gerek yoktur.
Algoritmanın Uygulanması
Tomas – Möller yöntemine ilişkin yalancı dil kodu (pseudocode) aşağıda verilmiştir:
IşınÜçgenKesişimi (o, d, vo, v1, v2 )
- e1 = v1 - v2
- e2 = v2 – v0
- p = d x e2
- α = e1 * p
- if (α > -ε and α < ε ) return (REJECT, 0, 0, 0 );
- f = 1 / α
- s = o - vo
- u = f (s * p )
- if (u < 0.0 or u > 1.0 ) return (REJECT, 0, 0, 0 );
- q = s x e1
- v = f (d * q )
- if (v < 0.0 or u + v > 1.0 ) return (REJECT, 0, 0, 0 );
- t = f (e2 * q )
- return (INTERSECT, u, v, t );
Gölgeler
Bir yüzeye ışığın gelmesini engelleyen başka bir yüzey varsa, ışığın ulaşamadığı yüzey gölgede kalmış olur. Gölge testi için, kesişim noktasından ışık kaynağına yollanan ışınlar ile diğer nesnelerin kesişimleri araştırılır. Eğer kesişim tespit edilirse yüzey gölgelenir.
Gölgelemenin gerçekleşmesi için, test için gönderilen ışından elde edilen kesişim noktası ile testi yapılan yüzey arasındaki uzaklığın, yüzeyin ışık kaynağına olan uzaklığından daha küçük olması gerekir.
Aynasal Yansıma
Diğer yöntemlerde çok zor tanımlanmasına rağmen, ışın izleme yönteminde yansıyan ve kırılan ışınlar mükemmel şekilde modellenebilir. Böylece son derece gerçekçi görüntüler elde edilebilir.
Eğer bir yüzeyin yansıtıcılık özelliği varsa, bu yüzeye çarparak yansıyan ışın diğer bir yüzeye çarptığında, bu yüzeyin rengi yansıtıcılık özelliği bulunan yüzey üzerinde görülür. Elbette bu işlem için de derinliği belirlenmiş özyinelemeli bir algoritma koşulmalıdır.
Yansıma değerinin belirlenmesi oldukça kolay bir işlemdir. Gerekli olan bir nokta ve bir doğrultudur. Nokta, ışın ile yansıtıcı yüzeyin kesişim noktasıdır ki artık yeni bir başlangıç noktası olmuştur. Bu noktadan yansıyacak olan ışının doğrultusu, gelen ışının doğrultusuna ve normale bağlıdır. Zira gelen ışın ile normal arasındaki açı, yansıyan ışın ile normal arasındaki açıya eşit olmalıdır. N ilgili yüzeyin normali, I gelen ışının olmak üzere Rref yansıma doğrultusu aşağıdaki gibi hesaplanır :
Rref = I – 2 (I * N ) * N (2.14)
POV-Ray gibi ışın izleme programları ise simüle edilen bir kamera ile başlarlar ve ışık ışınlarını sahneye yollarlar. Kullanıcı kameranın, ışık kaynaklarının, nesnelerin yerini ve bunların yüzey özelliklerini belirler, eğer isterse sahneye sis, duman, ateş gibi atmosferik etkiler de ekleyebilir.
Sonuç görüntüdeki her piksel için bir ya da daha çok ışın kameradan sahneye yöneltilir ve sahnedeki bir nesne ile kesişip kesişmediğine bakılır. Kameradan çıkan bu ışının bir nesneyi kestiği her noktadaki yüzey rengi hesaplanır. Bunun için ışınlar sahnedeki her ışık kaynağına da yönlendirilir ve böylece kaynaklardan gelen ışık miktarı da hesaplanır. Benzer şekilde her yüzey noktasının gölgede kalıp kalmadığı hesaplanır. Yüzeyin şeffaf olup olmamasına göre de ne kadar ışığı geçirdiği ve ne kadar ışık kırılmasına yol açtığı da hesaplanarak nihai renk belirlenir.
İç bağlantılar
Dış bağlantılar
- The Ray Tracing News[] - (İngilizce)- Kısa bir araştırma ve diğer kaynaklara linkler]
- - A thesis about real time ray tracing and it's state in december 2006
- Internet Işın izleme yarışması 24 Eylül 2006 tarihinde Wayback Machine sitesinde . - sabit ve anime kategoriler
Işın izleme yazılımları
- Blender 28 Şubat 2011 tarihinde Wayback Machine sitesinde .
- BRL-CAD 23 Şubat 2011 tarihinde Wayback Machine sitesinde .
- Bryce (software) 4 Ocak 2008 tarihinde Wayback Machine sitesinde .
- Indigo 18 Temmuz 2007 tarihinde Wayback Machine sitesinde . - an unbiased render engine
- - A portable raytracer written in C++
- Kray 20 Ocak 2008 tarihinde Wayback Machine sitesinde . - global illumination renderer
- OpenRT 7 Eylül 2006 tarihinde Wayback Machine sitesinde . - realtime raytracing library
- Optis 7 Ocak 2008 tarihinde Wayback Machine sitesinde . - Straylight and illumination software with full CAD integration (Solidworks and Catia V5)
- OSLO 3 Eylül 2006 tarihinde Wayback Machine sitesinde . - Lens design and optimization software; OSLO-EDU is a free download
- PBRT 17 Eylül 2020 tarihinde Wayback Machine sitesinde . - a Physically Based Raytracer
- Pixie 7 Eylül 2006 tarihinde Wayback Machine sitesinde .
- POV-Ray 10 Haziran 2006 tarihinde Wayback Machine sitesinde .
- Radiance 28 Eylül 2006 tarihinde Wayback Machine sitesinde .
- Rayshade 29 Ağustos 2006 tarihinde Wayback Machine sitesinde .
- RayTrace 29 Aralık 2007 tarihinde Wayback Machine sitesinde . - open source C++ software
- RealStorm Engine 4 Ağustos 2020 tarihinde Wayback Machine sitesinde . - a realtime raytracing engine
- RPS Ray Tace 5 Ocak 2014 tarihinde Wayback Machine sitesinde . - Ray Trace for SketchUp
- - C++ source code for a Monte-carlo pathtracer - written with ease of understanding in mind.
- Sunflow 2 Mart 2008 tarihinde Wayback Machine sitesinde . - Written in Java (platform independent)
- Tachyon 12 Eylül 2006 tarihinde Wayback Machine sitesinde .
- TracePro 4 Eylül 2006 tarihinde Wayback Machine sitesinde . - Straylight and illumination software with a CAD-like interface
- TropLux[] - Daylighting simulation
- Yafray 9 Mart 2009 tarihinde Wayback Machine sitesinde .
- Zemax 11 Ağustos 2006 tarihinde Wayback Machine sitesinde . - Well Known Commercial Software for Optics design
- More ray tracing source code links 23 Eylül 2006 tarihinde Wayback Machine sitesinde .
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Isin izleme Ingilizce Ray tracing gercek dunyada isigin ne sekilde hareket ettigini goz onunde bulundurarak bir sahnenin goruntusunu cizen bir grafik olusturma yontemidir Ancak bu yontemde islemler gercek yeryuzundeki yolun tersini izler Gercek dunyada isik bir cikar ve nesneleri aydinlatirlar Isik nesnelerden yansir ya da seffaf nesnelerin icinden gecer Yansiyan isik gozumuze ya da kamera mercegine carpar Yansiyan isik isinlarinin cogu bir gozlemciye erismedigi icin bir sahnedeki isinlari izlemek sonsuza dek surebilir Bir isin izleme sahnesiIsin izleme yontemi ile olusturulmus bir uc boyutlu resim Olusturulma suresi 56 saat GirisGunumuzde pek cok alanda bilgisayar kullanimi oldukca yayginlasmistir Ilk zamanlarda sadece bazi hesaplamalar yapmak icin kullanilan bilgisayarlar kullanim alanlari genisledikce insan hayatinda daha cok yer edinmis iletisim yetenekleri gelistikce de insanla daha cok ortami paylasir hale gelmislerdir Bu baglamda goruntunun guzel olmasi pek cok uygulama icin gerekli olmakla beraber guncel uygulamalarin buyuk kisminda gercekcilik de buyuk onem tasir Ornegin oyunlar ve animasyonlar bilgisayar dunyasinda oldukca populerdir Goruntunun gercekci ve guzel arasinda uygulanabilir yakin olmasi metodun gercek dunyada isigin cevreyle olan etkilesimini modellemeye calismasidir Elbette hicbir algoritma mukemmel degildir uygulanmasi da hizin artmasini saglayabilir Phong aydinlatma modeline gore herhangi bir pikselin renk degeri belirlenirken uc bilesen kullanilir Bunlar ortam ambient yaygin diffuse ve aynasal specular bilesenlerdir Bu uc bilesen toplamlari 1 e esit olan uc katsayi ile toplanarak ilgili pikselin renk degeri hesaplanir Klasik isin izleme yontemi ambient degerini gercekci olarak modelleyememektedir Ornegin tavaninda bir lambanin bulundugu bir odanin simulasyonu yapilmak istendiginde odanin tavani neredeyse tamamen karanlik kalmaktadir Ayrica ayni odada bir masa oldugunu farz edersek masanin altinin da tamamen siyah oldugu gorulur Gercek dunyada bazi yuzeylerin tamamen karanlik olmamasina ragmen isin izlemenin sonucunda tamamen karanlik olmasinin nedeni isik kaynagindan cikan isinlar tarafindan dogrudan aydinlatilmayan yuzeylerin gercekte aydinlik olmasidir Yani sahnede aydinlik gorunmesine ragmen isik kaynagindan cikan isinlarin direkt olarak carpmadiklari yuzeyler bulunmaktadir Bu yuzeyler kirilmalar veya yansimalar neticesinde aydinlanmaktadir Bu isleme Indirect Illumination denir bu yuzeylerin renk degerlerinin hesaplanmasi derinligi onceden belirlenmis ozyinelemeli bir algoritmayi gerekli kilar Aksi takdirde goruntunun tamamen gercekci olmasi beklenemez Elbette ki bu algoritmanin kosmasi goruntunun daha da gec hesaplanmasina neden olacaktir Bu nedenle algoritmanin olmasi cok onemlidir Isin Izleme YontemiIsin Izleme Yontemine Giris Isin izleme yontemi cikan isinlarin fiziksel davranislarini modellemek uzere kurulmustur Gercek yeryuzundeki cisimleri gorebilmemiz icin isik kaynagindan cikan isinlarin cisimlere carparak yansimasi ya da cisimlerin icinden gecerek kirilmasi ve sonucta da gozumuze ulasmasi gerekir Bilgisayar ortaminda ise gercekci 3B goruntuler uretebilmek icin boyama ve gorunmeyen yuzeylerin kaldirilmasi islemleri gerceklestirilmelidir Boyama 3B nesnelerin herhangi bir noktasindaki renk degerinin belirlenmesine denir Bu renk belirleme islemi isiklandirma golgelendirme yansima ve kirilmaya bagli olarak belirlenir Gorunmeyen yuzeylerin kaldirilmasi ise gozlemci tarafindan 3B nesnelere bakildiginda manzaradaki cisimleri olusturan yuzeylerden gorunmeyenlerin kaldirilmasi dolayisi ile gorunenlerin belirlenmesi islemine verilen addir Isin izleme yontemi hem gorunmeyen yuzeylerin kaldirilmasi hem de renk degerlerinin belirlenmesine iliskin cozumler sunar Ileri Yonlu Isin Izleme Forward Ray Tracing Yontemi Isik kaynagindan olarak sacilan isinlarin cisimlerden yansimasi ya da kirilmasi sonucu goze ulastigi kabul edilerek yapilan modellemeye Ileri Yonde Isin Izleme Forward Ray Tracing yontemi denir Gercek yeryuzundeki gorme bu modele uygun olarak gerceklesmektedir Gercek dunyada isik kaynagindan sacilan milyarlarca fotonun cok az bir kismi goze ulasir Bu model bilgisayar ortaminda gerceklenirken goze ulasamayan fotonlar icin cok sayida gereksiz hesaplama yapilacaktir Bu nedenle ileri yonde isin izleme yonteminin bilgisayar ortaminda gerceklenmesi oldukca zordur Geri Yonlu Isin Izleme Backward Ray Tracing Yontemi Goze ulasmayan isinlarin sisteme getirecegi yukten kurtulmak icin sadece goze ulasan isinlar icin hesaplama yapilmasi istenir Bu nedenle isin izleme yonteminin bilgisayar ortaminda gerceklenmesi icin Geri Yonde Isin Izleme Backward Ray Tracing modeli kullanilir Bu modelde ileri yonde isin izleme yonteminin tersine isinlarin gozden cikarak cisimlere carpip yansimasi ya da kirilmasi sonucu isik kaynagina ulastigi kabul edilir Bu yaklasim sayesinde ileri yonde isin izleme yontemindeki gibi isik kaynagindan cikan tum isinlar icin degil sadece goze ulasabilen isinlar icin hesaplama yapilmis olur Geri yonde isin izleme yonteminde gozlemcinin belli bir noktadan goruntu duzlemine dik olarak baktigi varsayilir Bakis noktasindan cikip goruntu duzleminden gecen isinlar cisimlere carptiktan sonra kirilarak veya yansiyarak isik kaynagina ulasiyorsa ilgili pikselin rengi isik kaynaginin konumuna cisimlerin rengine yansitma ve gecirgenlik ozelliklerine gore belirlenir Eger tum yansimalar ve kirilmalar sonucunda gonderilen isin isik kaynagina ulasmazsa ilgili piksel siyaha boyanir Burada yapilan yansima ve kirilma islemleri icin bir derinlik degeri belirtilmelidir Aksi takdirde islemler cok uzun zaman alabilir Isinin Tanimi Isinin matematiksel olarak ne ifade ettigini belirtmek faydali olacaktir Isin baslangic noktasi ve dogrultusu olan vektorel bir buyukluktur Baslangic noktasi R0 olan Rd dogrultusu boyunca ilerleyen R vektoru asagidaki gibi tanimlanabilir R R0 t Rd t gt 0 2 1 Burada t Rd dogrultusu boyunca giden R isininin R0 baslangic noktasina uzakligidir t degerinin R0 ile Rd arasindaki uzakliga tam olarak esit olmasi icin Rd nin boyu 1 olmali yani Rd normalize edilmelidir Birincil Isinlarin Uretilmesi Bakis noktasindan yollanan ve goruntu duzlemindeki her pikselin merkezinden gecen isinlara Birincil Isinlar Primary Rays denir izleme yonteminin ilk adimi birincil isinlarin olusturulmasidir Birincil isinlar cisimlere carpip yansiyarak ya da kirilarak isik kaynagina ulasirsa goruntu duzlemindeki ilgili pikselin rengi bu birincil isinin carpip yansidigi ya da kirildigi cisimlerin fiziksel ozelliklerine gore belirlenecektir Birincil isinlarin uretilebilmesi icin ilk olarak dogrultunun hesaplanmasi gerekir Bunun icin 2 1 ifadesi yeniden duzenlenir Rd R R0 t 2 2 Anlasilacagi gibi birincil isinin dogrultusunun hesaplanmasi icin iki noktaya ve bir uzaklik bilgisine ihtiyac vardir Iki noktadan birincisi genellikle R0 0 0 0 olarak secilen bakis noktasidir Ikinci nokta ise renk degeri hesaplanmak istenen pikselin koordinatlaridir t degeri hipotenus teoreminden hesaplanabilecegi gibi iki nokta arasi uzaklik formulunden de bulunabilir Ancak biz t degerini kesisim testi neticesinde bulacagiz Bununla beraber Rd nin normalize edilmis halini bulmak icin X Y ve Z koordinatlarini ayri ayri t ye bolmek yeterlidir Rd nin bulunmasi ile birincil isin uretimi bitmis olur Boylece baslangic noktasi ve dogrultusu bilinen bir vektor elde edilmistir Bu birincil isin ile manzaradaki bir yuzeyin kesisip kesismedigini tespit etmek icin baslangic noktasi R0 in ve dogrultu vektoru olan Rd nin bilinmesi yeterlidir testlerinde isin ile yuzeyin kesisimi arastirilir Eger kesisim varsa 0 dan buyuk bir t degeri geri dondurulur Aksi takdirde t degeri 0 olur Hesaplanan bu t degeri sayesinde yuzey uzerindeki kesisim noktasinin koordinatlari belirlenir Eger isin bu kesisim noktasindan kirilarak veya yansiyarak yoluna devam edecekse kesisim noktasi yeni baslangic noktasi yani R0 olur Yansima veya kirilma dogrultusu belirlenerek yeniden kesisim testleri yapilir Bu isinlara Ikincil Isin Secondary Rays denir Ikincil isinlar istenen derinlik degerindeki bir ozyinelemeli bir algoritma ile isik kaynagina ulasincaya kadar yeniden hesaplanir Gercek Piksel Koordinatlarinin Hesaplanmasi Goruntu duzleminin her bir pikseline karsilik manzarada birden cok piksel karsilik duser Ornegin 10 x 10 boyutunda ve bakis noktasindan z dogrultusunda 5 birim uzakta bir goruntu duzleminin bulundugunu varsayalim Eger manzaramizin cozunurlugu 1024 x 768 olarak secilirse 10 x 10 birimlik goruntu duzleminin herhangi bir X Y 5 noktasindan gecen isinin gercek piksel koordinatlari 10 X 1024 X0 Y0 10 Y 768 5 olur 2 3 Bu ifadedeki X0 Y0 5 noktasi 10 x 10 birimlik goruntu duzleminin en ust sol kosesinin koordinatlaridir Gorunmeyen Yuzeylerin Kaldirilmasi Gorunmeyen yuzeylerin kaldirilmasinin gozlemci tarafindan 3B nesnelere bakildiginda manzaradaki cisimleri olusturan yuzeylerden gorunmeyenlerin kaldirilmasi dolayisi ile gorunenlerin belirlenmesi islemine verilen ad oldugunu belirtmistik Gorunmeyen yuzeylerin kaldirilmasinda kullanilan baslica yontemler Z Buffer ve Isin Izleme Ray Tracing dir Derinlik tamponu yonteminde uc boyutlu cisimlerin iki boyutlu goruntu duzlemine izdusumu alinirken ilgili pikselin renk degerinin yani sira cisimle kesisim noktasinin Z degeri de saklanir Ayni piksel icin yeni bir cisim kesisimi algilandiginda Z degerleri karsilastirilir Yeni Z degeri eskisinden kucukse bu pikselin rengi yeni cismin rengi ile degistirilir ve Z degeri yenisiyle guncellenir Isin izleme yontemi ile gorunmeyen yuzeyler kaldirilirken bakis noktasina gore ayni dogrultuda bulunan yuzeylerden t uzakligi en kucuk olani secilmelidir Ilgili pikselin renk degeri hesaplanirken secilen bu yuzey esas alinir digerleri goz ardi edilir Dikkat edilirse Z Buffer yontemi ve benzeri tum diger yontemlerde kullanilan cokgen turu ucgen olmasina ragmen isin izlemede islemler yonteminde piksel mertebesinde gerceklestirilir Bu sayede egrisel yuzeylerde bile iyi sonuclar elde edilir Diger yontemlerde bu derece gercekci sonuclar elde etmek icin cokgenlerin son derece kucuk secilerek bir piksel boyutuna indirilmesi gerekir ki oldukca zor hatta imkansiz denilebilir Arka Yuzeylerin Kaldirilmasi Backface Culling Gorunmeyen yuzeylerle ilgili diger bir konu da arka yuzeylerin kaldirilmasidir Arka yuzeyler bakis noktasindan bakildiginda asla gorulemeyecek olan yuzeylerdir Ornegin dik olarak bakilan bir kupun arka yuzeyi asla gorulemez Bu yuzeylerin kaldirilmasi isin izleme yonteminin hizlanmasini saglar Bununla birlikte arka yuzeylerin kaldirilmasi isin izleme yontemi ile cok kolay gerceklestirilebilir Isin Nesne Kesisim Testleri Isin izleme yonteminin en temel ozelligi bakis noktasindan gonderilen isinlarin cisimlerle kesisip kesismedigini anlamak uzere yapilan kesisim testleridir Bu testlerde kesisimi arastirilacak cismin matematiksel denklemi ile isinin baslangic noktasi ve dogrultusunun koordinatlari kullanilir Sonucta varsa kesisim noktasi ve bu nokta ile bakis noktasi arasindaki t uzakligi hesaplanir Ayni dogrultuda birden fazla kesisim noktasi bulunabilir Bu durumda en kucuk t degeri esas alinir Boylece gorunmeyen yuzeyler kaldirilmis olur Bu kisimda isin izleme yonteminde kullanilacak temel matematiksel islemler icin gerekli vektorel ifadeler ve islemler anlatilacaktir Isin Izlemede Kullanilan Temel Matematiksel Ifadeler Uc Boyutlu Uzayda Noktanin Tanimi Uc boyutlu uzayda bir P noktasi kendine ait X Y Z koordinatlari ile asagidaki gibi ifade edilebilir P x y z 2 4 Skaler Carpim Iki vektorun skaler carpim degeri karsilikli olarak x y ve z degerlerinin carpimlarinin toplamina esittir Skaler carpimi sembolu ile temsil edilirse V1 ve V2 vektorlerinin skaler carpimi asagidaki gibi hesaplanir V1 V2 V1X V2X V1Y V2Y V1Z V2Z 2 5 V1 ve V2 vektorlerinin boyunun 1 birim oldugu yani her iki vektorun de normalize oldugu durumda bu iki vektorun skaler carpimi iki vektorun arasindaki acinin kosinus degerini verir Iki vektor arasindaki acinin kosinusu aydinlatmada kullanilir Vektorel Carpim Vektorel carpim islemini x semboluyle temsil edersek V1 ve V2 vektorlerinin vektorel carpimi asagidaki gibi hesaplanir V1 x V2 V1Y V2Z V1Z V2Y V1Z V2X V1X V2Z V1X V2Y V1Y V2X 2 6 Vektorel carpim isin izleme yonteminde ucgenlerin normalini bulmak icin kullanilir Yansiyan veya kirilan isinlarin yeni dogrultularinin hesaplanmasi icin yuzeye dik olan vektorun yani yuzey normalinin bilinmesi gerekir Difuz ve spekuler aydinlatma yapilirken de yuzey normali kullanilir Ayrica arka yuzey kaldirmada da hangi yuzun arka yuzey oldugunu belirlerlerken yuzey normali esas alinir Bakis noktasi ile arasinda 90 den daha buyuk aci bulunan yuzeyler arka yuzey kabul edilir Tum bu islemlerde kullanilacak olan yuzey normalinin birim vektor olmasi yeni normalize olmasi gerekir Barisentrik Koordinatlar Ucgenin bir kosesinden baslanip kenarlari belli katsayilarla carparak baslangicta alinan koseye eklenirse ucgen icinde istenen bir noktaya ulasmak mumkundur Kenarlarin carpildigi katsayilara Barisentrik Koordinatlar denir Ucgen icindeki herhangi bir noktanin barisentrik koordinatlar cinsinden gosterimi asagidaki gibidir t u v V0 u V1 V0 v V2 V0 2 7 Bu ifadedeki u ve v degerleri ve asagidaki sartlari saglamalidir u 0 ve v 0 icin u v 1 Barisentrik koordinatlar bu calismada hizli kesisim testleri gerceklestirilirken kullanilmistir Barisentrik koordinatlardan faydalanilarak daha kisa surede kesisim testi yapilabilmektedir Isin Yuzey Kesisim Testi Orijine olan uzakligi D olan Pn A B C normaline sahip olan P yuzeyini denklemi asagidaki gibidir Ax By Cz D 0 2 8 Kose koordinatlari Vi X Y Z olan ucgenin oturdugu yuzeyin denklemi asagidaki gibi hesaplanabilir A Vo x B Vo y C Vo z D 0 2 9 2 9 ifadesinden D degeri bulunur Eger P yuzeyi ile R isini kesisiyorsa R nin o noktaya karsilik gelen t degeri icin yuzey denklemi saglanmalidir A X0 tXd B Y0 tYd C Z0 tZd D 0 2 10 2 10 ifadesi t ye gore yeniden duzenlenirse baslangic noktasi ile yuzey arasindaki uzaklik belirlenmis olur t A X0 B Y0 C Z0 A Xd B Yd C Zd 2 11 Eger t lt 0 ise kesisim yoktur Eger t gt 0 ise kesisim vardir ve kesisim noktasi I asagidaki gibi hesaplanabilir I X Y Z X0 tXd Y0 tYd Z0 tZd 2 12 Isin Ucgen Kesisim Testleri 3B nesneler genellikle ucgenlerden olusacak sekilde modellenir Bu sebeple kesisim testi algoritmalarinin cogu ucgenler uzerine yogunlasmistir Alan Hesabi Ile Isin Ucgen Kesisim Testi Bu yontem isin ucgen kesisim testleri arasindan en basit olanidir Oncelikle isin yuzey kesisim testi yapilmalidir Daha sonra isin ve yuzeyi olusturan ucgenin kose noktalari goruntu duzlemine perspektif olarak izdusurulur ile ucgenin ikiser noktasi sira ile alinarak uc tane alt ucgen elde edilir Bu ucgenlerin alanlari hesaplanarak toplanir Elde edilen toplam alan kesisim testi yapilan ucgenin alanina bir e kadar yakinsa isin ucgenin icindedir yani isin ile ucgen kesismektedir denir Aci Hesabi ile Isin Ucgen Kesisim Testi Isin duzlem kesisim testinden elde edilen kesisim noktasinin ucgenin icerisinde olup olmadiginin kontrolu icin kullanilan diger bir yontem de aci testidir Yine ilk olarak isin yuzey kesisim testi yapilmalidir Daha sonra isin ve yuzeyi olusturan ucgenini kose noktalari goruntu duzlemine perspektif olarak izdusurulur Kesisim noktasi ile ucgenin ikiser noktasi sira ile alinarak uc tane ucgen elde edilir Bu ucgenlerin I noktasini merkez nokta kabul eden acilari hesaplanarak toplanir Elde edilen toplam aci 360 ise isin ucgenin icindedir yani isin ile ucgen kesismektedir denir Tomas Moller Isin Ucgen Kesisim Testi Yukarida anlatilan tekniklerin her ikisi de kesisim testi yapmadan once isin yuzey kesisim testi yapilmakta daha sonra perspektif izdusumu yapilmaktadir Boylece problem 3B dan 2B a indirgenmekte ve test esnasinda 2B noktanin 2B ucgenin icinde olup olmadigi arastirilmaktadir Ancak tum bu islemler icin oncelikle yuzey denkleminin belirlenmesi dolayisi ile normalin hesaplanmasi gerekmektedir Elbette ki kesisim testine gecilmeden once yapilan bu islemler algoritmanin yavas calismasina neden olmaktadir Bunun yerine kullanilan Tomas Moller kesisim testinde yuzey normalinin hesaplanmasi gerekmemektedir Kesisim Testi Algoritmasi Baslangic noktasi R0 olan ve Rd dogrultusu boyunca ilerleyen R vektorunu asagidaki gibi tanimlamistik R R0 t Rd t gt 0 2 1 Kesisim testi yapilacak olan ucgenin koseleri Vi ise ucgen uzerindeki herhangi bir t u v noktasinin barisentrik koordinatlarini asagidaki gibi ifade etmistik t u v V0 u V1 V0 v V2 V0 2 7 R isini verilen ucgeni bir t u v noktasinda kesiyorsa asagidaki ifade saglanmalidir R0 t Rd V0 u V1 V0 v V2 V0 2 13 2 13 ifadesi duzenlenirse u v ve t ye bagli bir lineer denklem sistemi elde edilir Bu sistemin cozulmesi halinde u v ve t bulunur Goruldugu gibi bu yontemde yuzey normali ve perspektif izdusume gerek yoktur Algoritmanin Uygulanmasi Tomas Moller yontemine iliskin yalanci dil kodu pseudocode asagida verilmistir IsinUcgenKesisimi o d vo v1 v2 e1 v1 v2 e2 v2 v0 p d x e2 a e1 p if a gt e and a lt e return REJECT 0 0 0 f 1 a s o vo u f s p if u lt 0 0 or u gt 1 0 return REJECT 0 0 0 q s x e1 v f d q if v lt 0 0 or u v gt 1 0 return REJECT 0 0 0 t f e2 q return INTERSECT u v t Golgeler Bir yuzeye isigin gelmesini engelleyen baska bir yuzey varsa isigin ulasamadigi yuzey golgede kalmis olur Golge testi icin kesisim noktasindan isik kaynagina yollanan isinlar ile diger nesnelerin kesisimleri arastirilir Eger kesisim tespit edilirse yuzey golgelenir Golgelemenin gerceklesmesi icin test icin gonderilen isindan elde edilen kesisim noktasi ile testi yapilan yuzey arasindaki uzakligin yuzeyin isik kaynagina olan uzakligindan daha kucuk olmasi gerekir Biribirini ve yeri yansitan 3 adet kureAynasal Yansima Diger yontemlerde cok zor tanimlanmasina ragmen isin izleme yonteminde yansiyan ve kirilan isinlar mukemmel sekilde modellenebilir Boylece son derece gercekci goruntuler elde edilebilir Eger bir yuzeyin yansiticilik ozelligi varsa bu yuzeye carparak yansiyan isin diger bir yuzeye carptiginda bu yuzeyin rengi yansiticilik ozelligi bulunan yuzey uzerinde gorulur Elbette bu islem icin de derinligi belirlenmis ozyinelemeli bir algoritma kosulmalidir Yansima degerinin belirlenmesi oldukca kolay bir islemdir Gerekli olan bir nokta ve bir dogrultudur Nokta isin ile yansitici yuzeyin kesisim noktasidir ki artik yeni bir baslangic noktasi olmustur Bu noktadan yansiyacak olan isinin dogrultusu gelen isinin dogrultusuna ve normale baglidir Zira gelen isin ile normal arasindaki aci yansiyan isin ile normal arasindaki aciya esit olmalidir N ilgili yuzeyin normali I gelen isinin olmak uzere Rref yansima dogrultusu asagidaki gibi hesaplanir Rref I 2 I N N 2 14 POV Ray gibi isin izleme programlari ise simule edilen bir kamera ile baslarlar ve isik isinlarini sahneye yollarlar Kullanici kameranin isik kaynaklarinin nesnelerin yerini ve bunlarin yuzey ozelliklerini belirler eger isterse sahneye sis duman ates gibi atmosferik etkiler de ekleyebilir Sonuc goruntudeki her piksel icin bir ya da daha cok isin kameradan sahneye yoneltilir ve sahnedeki bir nesne ile kesisip kesismedigine bakilir Kameradan cikan bu isinin bir nesneyi kestigi her noktadaki yuzey rengi hesaplanir Bunun icin isinlar sahnedeki her isik kaynagina da yonlendirilir ve boylece kaynaklardan gelen isik miktari da hesaplanir Benzer sekilde her yuzey noktasinin golgede kalip kalmadigi hesaplanir Yuzeyin seffaf olup olmamasina gore de ne kadar isigi gecirdigi ve ne kadar isik kirilmasina yol actigi da hesaplanarak nihai renk belirlenir Ic baglantilarPOV RayDis baglantilarThe Ray Tracing News olu kirik baglanti Ingilizce Kisa bir arastirma ve diger kaynaklara linkler A thesis about real time ray tracing and it s state in december 2006 Internet Isin izleme yarismasi 24 Eylul 2006 tarihinde Wayback Machine sitesinde sabit ve anime kategorilerIsin izleme yazilimlariBlender 28 Subat 2011 tarihinde Wayback Machine sitesinde BRL CAD 23 Subat 2011 tarihinde Wayback Machine sitesinde Bryce software 4 Ocak 2008 tarihinde Wayback Machine sitesinde Indigo 18 Temmuz 2007 tarihinde Wayback Machine sitesinde an unbiased render engine A portable raytracer written in C Kray 20 Ocak 2008 tarihinde Wayback Machine sitesinde global illumination renderer OpenRT 7 Eylul 2006 tarihinde Wayback Machine sitesinde realtime raytracing library Optis 7 Ocak 2008 tarihinde Wayback Machine sitesinde Straylight and illumination software with full CAD integration Solidworks and Catia V5 OSLO 3 Eylul 2006 tarihinde Wayback Machine sitesinde Lens design and optimization software OSLO EDU is a free download PBRT 17 Eylul 2020 tarihinde Wayback Machine sitesinde a Physically Based Raytracer Pixie 7 Eylul 2006 tarihinde Wayback Machine sitesinde POV Ray 10 Haziran 2006 tarihinde Wayback Machine sitesinde Radiance 28 Eylul 2006 tarihinde Wayback Machine sitesinde Rayshade 29 Agustos 2006 tarihinde Wayback Machine sitesinde RayTrace 29 Aralik 2007 tarihinde Wayback Machine sitesinde open source C software RealStorm Engine 4 Agustos 2020 tarihinde Wayback Machine sitesinde a realtime raytracing engine RPS Ray Tace 5 Ocak 2014 tarihinde Wayback Machine sitesinde Ray Trace for SketchUp C source code for a Monte carlo pathtracer written with ease of understanding in mind Sunflow 2 Mart 2008 tarihinde Wayback Machine sitesinde Written in Java platform independent Tachyon 12 Eylul 2006 tarihinde Wayback Machine sitesinde TracePro 4 Eylul 2006 tarihinde Wayback Machine sitesinde Straylight and illumination software with a CAD like interface TropLux olu kirik baglanti Daylighting simulation Yafray 9 Mart 2009 tarihinde Wayback Machine sitesinde Zemax 11 Agustos 2006 tarihinde Wayback Machine sitesinde Well Known Commercial Software for Optics design More ray tracing source code links 23 Eylul 2006 tarihinde Wayback Machine sitesinde