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)
Zastanawiałem się nad tym dokładnie kilka dni temu. Nie znajdując żadnych zasobów w społeczności graficznej, podszedłem do wydziału fizyki na moim uniwersytecie i zapytałem .
Okazuje się, że ludzie w grafice wierzą w wiele kłamstw.
Po pierwsze, gdy światło uderza w powierzchnię, obowiązują równania Fresnela. Proporcje światła odbitego / załamanego zależą od nich. Prawdopodobnie to wiedziałeś.
Nie ma czegoś takiego jak „lustrzany kolor”
Być może nie wiedziałeś, że równania Fresnela różnią się w zależności od długości fali, ponieważ współczynnik załamania zmienia się w zależności od długości fali. Różnica jest stosunkowo niewielka w przypadku dielektryków (dyspersja, ktoś?), Ale może być ogromna w przypadku metali (przypuszczam, że ma to związek z różnymi strukturami elektrycznymi tych materiałów).
Dlatego też współczynnik odbicia Fresnela zmienia się w zależności od długości fali, a zatem różne długości fali są odbijane preferencyjnie . Widziane w świetle o szerokim spektrum, właśnie to prowadzi do odbłysków koloru. Ale w szczególności nie ma absorpcji, która magicznie zachodzi na powierzchni (pozostałe kolory są po prostu załamane).
Nie ma czegoś takiego jak „rozproszone odbicie”
Jak mówi Naty Hoffman w wykładzie połączonym z inną odpowiedzią, jest to tak naprawdę przybliżenie do rozproszonego rozpraszania podpowierzchniowego.
Metale przekazują światło
Naty Hoffman się myli (a dokładniej upraszczając). Światło nie jest natychmiast absorbowane przez metale. W rzeczywistości dość łatwo przejdzie przez materiały o grubości kilku nanometrów. (Na przykład dla złota potrzeba 11,6633 nm, aby osłabić światło 587,6 nm (żółte) o połowę.)
Absorpcja, podobnie jak w dielektrykach, wynika z prawa Beer-Lamberta. W przypadku metali współczynnik absorpcji jest po prostu znacznie większy (α = 4πκ / λ, gdzie κ jest urojonym składnikiem współczynnika załamania światła (dla metali ~ 0,5 i więcej), a λ podano w metrach ).
Ta transmisja (a dokładniej wytwarzany przez nią SSS ) jest w rzeczywistości odpowiedzialna za znaczną część kolorów metali (chociaż prawdą jest, że w wyglądzie metali dominuje ich odbicie).
źródło