Başlamak için, Naty Hoffman'ın oluşturma fiziğini kapsayan Siggraph sunumunu okumanızı şiddetle tavsiye ediyorum . Bununla birlikte, sunumundan görüntüler ödünç alarak senin özel sorularını cevaplamaya çalışacağım.
Bir malzemenin yüzeyinde bir noktaya vuran tek bir ışık parçacığına bakıldığında, 2 şey yapabilir: yansıt ya da kır. Yansıyan ışık, aynaya benzer şekilde yüzeyden uzağa sıçrayacaktır. Kırılan ışık malzemenin içinde zıplar ve malzemeye girdiği yerden biraz uzakta olabilir. Sonunda, ışık malzemenin molekülleriyle etkileşime girdiğinde, bir miktar enerji kaybeder. Enerjisini yeterince kaybederse, tamamen emilmesini düşünüyoruz.
Naty'den alıntı yapmak gerekirse, "Işık elektromanyetik dalgalardan oluşur. Dolayısıyla bir maddenin optik özellikleri elektriksel özellikleriyle yakından bağlantılıdır." Bu yüzden malzemeleri metal veya metal olmayan olarak gruplandırıyoruz.
Metal olmayanlar hem yansıma hem de kırılma sergilerler.
Metalik malzemelerin sadece yansıması var. Tüm kırılan ışık emilir.
Işık partikülünün malzemenin molekülleri ile olan etkileşimini modellemeye çalışmak son derece pahalı olacaktır. Bunun yerine bazı varsayımlar ve basitleştirmeler yapıyoruz.
Piksel boyutu veya gölgelendirme alanı giriş-çıkış mesafelerine göre daha büyükse, mesafelerin etkin bir şekilde sıfır olduğu varsayımını yapabiliriz. Kolaylık sağlamak için, ışık etkileşimlerini iki farklı terime ayırırız. "Speküler" yüzey yansıma terimi ve kırılma, soğurma, saçılma ve yeniden kırılma olarak adlandırılan "dağınık" olarak adlandırılan terim.
Ancak, bu oldukça büyük bir varsayımdır. Opak malzemelerin çoğu için bu varsayım tamamdır ve gerçek hayattan çok farklı değildir. Ancak, her türlü şeffaflığı olan malzemeler için, varsayım başarısız olur. Örneğin, süt, cilt, sabun vb.
Bir malzemenin gözlemlenen rengi, emilmeyen ışıktır. Bu, hem yansıyan ışığın hem de malzemeden çıkan kırılan ışığın bir birleşimidir. Örneğin, saf bir yeşil malzeme yeşil olmayan tüm ışığı emecektir, bu nedenle gözümüze ulaşan tek ışık yeşil ışıktır.
Bu nedenle, bir sanatçı bize malzemenin zayıflama işlevini, yani ışığın malzeme tarafından nasıl emileceğini vererek, malzemenin rengini modellemektedir. Basitleştirilmiş difüze / speküler modelimizde bu iki renk, difüz renk ve speküler renk ile gösterilebilir. Fiziksel temelli materyaller kullanılmadan önce, sanatçı keyfi olarak bu renklerin her birini seçecekti. Ancak, bu iki rengin ilişkili olması gerektiği açık görünmelidir. Albedo renginin girdiği yer burasıdır. Örneğin, UE4'te, dağınık ve speküler rengi aşağıdaki gibi hesaplar:
DiffuseColor = AlbedoColor - AlbedoColor * Metallic;
SpecColor = lerp(0.08 * Specular.xxx, AlbedoColor, Metallic)
Metalik metal olmayanlar için 0, metaller için ise 1'dir. 'Specular' parametresi bir nesnenin spekülerliğini kontrol eder (ancak malzemelerin% 99'u için genellikle 0,5'tir)