Bölüm 10: Yalıtkanlar ve Cam (Dielectrics)
Su, cam, kristal, elmas gibi şeffaf malzemeler bilgisayar grafiklerinde Yalıtkan (Dielectric) olarak adlandırılır.
Işık bir cam veya su yüzeyine çarptığında iki farklı davranış gösterir: 1. Işığın bir kısmı yüzeyden ayna gibi geri seker (Yansıma / Reflection), 2. Bir kısmı ise maddenin içine girerek hızını ve doğrultusunu değiştirir (Kırılma / Refraction).
Bu bölümde bu optik fiziği sıfırdan modelleyeceğiz.
Kırılma ve Snell Yasası (Refraction & Snell's Law)
Işığın farklı optik yoğunluktaki ortamlardan geçerken nasıl kırıldığı Snell Yasası ile ifade edilir:
Burada: - \(\theta\): Gelen ışının yüzey normaliyle yaptığı açı, - \(\theta'\): Kırılan ışının normalle yaptığı açı, - \(\eta\) ve \(\eta'\): İki ortamın kırılma indisleridir (Refractive Index).
Yaygın bazı kırılma indisleri: - Hava: \(\approx 1.0\) - Su: \(1.33\) - Cam: \(1.5 - 1.7\) - Elmas: \(2.4\)

Kırılan ışın vektörünü \(\mathbf{R}'\) matematiksel olarak türetmek için normal vektörüne dik (\(\mathbf{R}'_{\perp}\)) ve paralel (\(\mathbf{R}'_{\parallel}\)) iki bileşene ayırırız:
Snell yasasını vektör cebirine uyguladığımızda:
Burada \(\cos \theta\), gelen birim ışın vektörü ile normalin nokta çarpımıyla bulunur: \(\cos \theta = (-\mathbf{R} \cdot \mathbf{n})\).
vec3.h dosyamıza bu refract fonksiyonunu ekleyelim:
| vec3.h (Kırılma Fonksiyonu) | |
|---|---|
Tam İç Yansıma (Total Internal Reflection)
Işın havadan suya girerken problem yoktur. Ancak ışın yoğun bir ortamdan (örneğin camın veya suyun içinden, \(\eta = 1.5\)) seyrek bir ortama (havaya, \(\eta' = 1.0\)) çıkmaya çalışırken çok ilginç bir durum ortaya çıkar!
Snell yasasını yeniden düzenleyelim:
Eğer ışın camın içinden çok yatık bir açıyla gelirse, \(\frac{1.5}{1.0} \cdot \sin \theta\) ifadesinin değeri \(1.0\)'dan büyük çıkabilir!
Matematikte bir açının sinüsü asla \(1\)'den büyük olamaz. \(\sin \theta' > 1.0\) çıktığında kırılma denkleminin gerçel bir çözümü yoktur; yani fiziksel olarak ışığın dışarı kırılması imkansızdır!
Bu durumda ışığın tamamı camın iç yüzeyinden mükemmel bir ayna gibi geri sekmek zorundadır. Doğada su altındayken su yüzeyine yatık baktığınızda yüzeyin ayna gibi görünmesinin sebebi işte bu Tam İç Yansıma (Total Internal Reflection) olgusudur.
Schlick Yaklaşımı (Fresnel Yansıması)
Gerçek bir pencere camına veya bir vitrine tam karşıdan (dik) baktığınızda cam neredeyse tamamen şeffaftır, neredeyse hiçbir yansıma görmezsiniz.
Fakat cama çok dar, yatık bir açıyla baktığınızda yüzey adeta gümüş bir ayna gibi parlar ve etrafı yansıtır!
Bu açıya bağlı yansıma miktarını kesin olarak hesaplayan denklemler (Augustin-Jean Fresnel'in dalga denklemleri) son derece karmaşıktır. Bilgisayar grafiklerinde bu etkiyi modellemek için Christophe Schlick tarafından geliştirilen efsanevi polinom yaklaşımı kullanılır:
Burada dik bakış açısındaki temel yansıma katsayısı şudur:
dielectric Materyal Sınıfının Tam Kod Tanımı
Tüm bu optik kuralları tek bir dielectric sınıfında birleştirelim:
İçi Boş Cam Küre (Hava Kabarcığı Numarası)
Bir cam kürenin içinde yüzen bir hava kabarcığı render etmek isterseniz ne yaparsınız?
İnanılmaz derecede zekice bir geometri numarası vardır: Yarıçapı negatif olan ikinci bir iç küre tanımlamak!
Neden negatif yarıçap? Çünkü kürenin normali \(\frac{\mathbf{P} - \mathbf{C}}{r}\) formülüyle hesaplanır. Yarıçap \(r\) negatif olduğunda normal vektörü dışarı değil, içe doğru yönelir! Bu da ışın izleyiciye camın içinde hava olduğunu bildirir!
Sonuç: Büyüleyici bir cam küre ve içinde ışığı baş aşağı kıran hava kabarcığı:
