Na początek gorąco polecam przeczytanie prezentacji Siggraph Naty Hoffman obejmującej fizykę renderowania. To powiedziawszy, postaram się odpowiedzieć na twoje konkretne pytania, zapożyczając obrazy z jego prezentacji.
Patrząc na pojedynczą lekką cząsteczkę uderzającą w punkt na powierzchni materiału, może ona zrobić 2 rzeczy: odbić lub załamać światło. Odbite światło odbije się od powierzchni, podobnie jak lustro. Załamane światło odbija się w materiale i może opuścić materiał w pewnej odległości od miejsca, w którym wszedł. Wreszcie, za każdym razem, gdy światło wchodzi w interakcje z cząsteczkami materiału, traci trochę energii. Jeśli straci wystarczająco dużo energii, uważamy, że jest całkowicie pochłonięta.
Cytując Naty, „Światło składa się z fal elektromagnetycznych. Zatem właściwości optyczne substancji są ściśle związane z jej właściwościami elektrycznymi”. Dlatego grupujemy materiały jako metale lub niemetale.
Niemetale będą wykazywać zarówno odbicie, jak i załamanie.
Materiały metalowe mają tylko odbicie. Całe załamane światło jest pochłaniane.
Próbowanie modelowania interakcji cząsteczki światła z cząsteczkami materiału byłoby zbyt drogie. Zamiast tego dokonujemy pewnych założeń i uproszczeń.
Jeśli rozmiar piksela lub obszar cieniowania jest duży w porównaniu z odległościami wejścia-wyjścia, możemy założyć, że odległości są faktycznie zerowe. Dla wygody podzieliliśmy interakcje światła na dwa różne terminy. Nazywamy odbicie powierzchniowe terminem „zwierciadlanym”, a pojęcie wynikające z załamania, absorpcji, rozpraszania i ponownego załamania nazywamy „rozproszonym”.
Jest to jednak dość duże założenie. W przypadku większości nieprzezroczystych materiałów to założenie jest prawidłowe i nie różni się zbytnio od rzeczywistego. Jednak w przypadku materiałów o dowolnym rodzaju przejrzystości założenie się nie powiedzie. Na przykład mleko, skóra, mydło itp.
Zaobserwowany kolor materiału to światło, które nie jest absorbowane. Jest to połączenie zarówno światła odbitego, jak i każdego światła załamanego wychodzącego z materiału. Na przykład czysty zielony materiał pochłonie całe światło, które nie jest zielone, więc jedynym światłem, które dociera do naszych oczu, jest zielone światło.
Dlatego artysta modeluje kolor materiału, nadając nam funkcję tłumienia materiału, tj. Sposób, w jaki światło będzie pochłaniane przez materiał. W naszym uproszczonym modelu rozproszonym / zwierciadlanym można to przedstawić za pomocą dwóch kolorów, rozproszonego koloru i koloru zwierciadlanego. Jeszcze przed użyciem materiałów opartych na fizyce artysta arbitralnie wybrał każdy z tych kolorów. Wydaje się jednak oczywiste, że te dwa kolory powinny być powiązane. Tutaj pojawia się kolor albedo. Na przykład w UE4 obliczają kolor rozproszony i lustrzany w następujący sposób:
DiffuseColor = AlbedoColor - AlbedoColor * Metallic;
SpecColor = lerp(0.08 * Specular.xxx, AlbedoColor, Metallic)
gdzie Metallic wynosi 0 dla niemetali i 1 dla metali. Parametr „Specular” kontroluje specularity obiektu (ale zwykle jest to stała 0,5 dla 99% materiałów)