BRDF · f(L,V)ENERGY · ≤ 1METALLIC · 0 / 1MODEL · Cook-Torrance
Rozdział 10 / Realizm i jakość obrazu

Materiały: dielektryki, metale i BRDF

Blinn-Phong z Rozdziału 5 dawał przekonujący błysk, ale bez fizycznego uzasadnienia. Ten rozdział pyta: co materiał właściwie robi ze światłem — i dlaczego slider „Metallic” w każdym silniku PBR to nie estetyczny wybór, tylko przełącznik między dwoma różnymi zjawiskami fizycznymi.

TL;DR
Pass: BRDF

Co właściwie jest BRDF

BRDF (bidirectional reflectance distribution function) to funkcja opisująca, ile światła przychodzącego z kierunku L wychodzi z powrotem w kierunku V, w konkretnym punkcie powierzchni. Diffuse z Rozdziału 5 i specular z Rozdziału 5 to po prostu dwie różne BRDF, dodane do siebie.

Żeby BRDF miała sens fizyczny, musi spełniać dwa warunki. Symbole poniżej: N — normalna powierzchni w punkcie trafienia, L i V — kierunki do światła i do obserwatora (z akapitu wyżej), f(L,V) — wartość BRDF dla tej pary kierunków, dL — nieskończenie mały element kąta bryłowego wokół kierunku L, po którym całkujemy, zbierając wkład ze wszystkich kierunków hemisfery.

∫ f(L,V)·(N·L) dL ≤ 1energooszczędność: suma odbitej energii po całej hemisferze kierunków L nie może przekroczyć energii, która padła — Blinn-Phong tego nie gwarantuje
f(L,V) = f(V,L)wzajemność (zasada Helmholtza): zamiana miejscami światła i widza nie zmienia wartości BRDF
↑ Podstawy matematyczne — czym jest różniczka pod całką

BRDF jest funkcją, więc żeby ją zobaczyć, trzeba ją narysować. Robi się to w jeden, umowny sposób: z punktu trafienia odkłada się w każdym kierunku odcinek o długości proporcjonalnej do wartości BRDF dla tego kierunku, a końce tych odcinków tworzą zamknięty kształt. Ten kształt nazywa się lobem (ang. lobe) i to on pojawia się na diagramach w tej książce zawsze, gdy trzeba pokazać, „dokąd leci światło”.

Czyta się go jedną zasadą: im dalej brzeg lobu od punktu trafienia w danym kierunku, tym więcej światła leci właśnie tam. Szeroki, przysadzisty lob oznacza energię rozrzuconą po całej hemisferze — czyli diffuse. Wąski, wyciągnięty w jedną stronę oznacza energię skupioną wokół jednego kierunku — czyli specular. Sam kształt niesie więc pełną charakterystykę materiału — nie da się jej sprowadzić do jednej liczby.

BRDF.lobesdiffuse vs specular
LOB DIFFUSE (SZEROKI) LOB SPECULAR (WĄSKI) L długość odcinka w danym kierunku = ile światła leci właśnie tam L R
Kształt lobu to sama BRDF — diffuse rozprasza energię wszędzie, specular skupia ją wokół kierunku odbicia R. Ten sam typ rysunku wróci jeszcze dwa razy: przy rozkładzie GGX w Rozdziale 11, gdzie lob zwęża się i rozszerza wraz z roughness, oraz przy funkcji fazowej w Rozdziale 21, gdzie opisuje rozproszenie w objętości zamiast na powierzchni.
Pass: Dielektryki i metale

Dwie różne odpowiedzi na światło

Dielektryki (niemetale: plastik, drewno, skóra, kamień) częściowo odbijają światło od razu na powierzchni — to ten sam, niski Fresnel z Rozdziału 7 (R0 ≈ 2–5%), praktycznie bezbarwny. Resztę światła przepuszczają do wnętrza, gdzie się rozprasza między mikroskopijnymi cząstkami pigmentu i wraca w losowym miejscu jako diffuse — a to właśnie selektywna absorpcja pigmentu daje kolor. Kluczowy, często przegapiany wniosek: błysk specular na czerwonej plastikowej kuli jest biały, nie czerwony.

Metale (przewodniki: złoto, miedź, aluminium) mają swobodne elektrony na powierzchni, które natychmiast pochłaniają i emitują światło z powrotem — bez wnikania do wnętrza. Metal nie ma diffuse w ogóle. Cały kolor pochodzi z samego odbicia specular, a to odbicie jest kolorowe, bo odpowiedź elektronów zależy od długości fali — dlatego złoto jest żółte, a miedź czerwonawa.

↓ Dodatek AO — dlaczego elektrony w ogóle tak odpowiadają: model oscylatora
Dielectric.vs.metalsubsurface vs surface-only
DIELEKTRYK METAL specular (biały) rozpraszanie + diffuse ✕ brak wnikania — 100% na powierzchni
Dielektryk: bezbarwny specular + kolorowy diffuse z wnętrza. Metal: cały kolor w jednym, kolorowym odbiciu.
Pass: Mikrofasetki

Od Blinn-Phong do mikrofasetek

Żadna realna powierzchnia nie jest idealnie gładka w mikroskali — składa się z mnóstwa mikroskopijnych „fasetek”, każda jak miniaturowe zwierciadło, ale zwrócona w nieco innym kierunku. Roughness to po prostu to, jak bardzo rozrzucone są te kierunki: nisko = fasetki prawie równoległe do normalnej makro, więc odbicia się nakładają w wąski, jasny błysk; wysoko = fasetki wskazują wszędzie, więc błysk rozmywa się i ciemnieje.

Microfacets.zoomnormals per facet
roughness = 0,30 · rozrzut normalnych do ±12°
TA SAMA POWIERZCHNIA, ROSNĄCY ROUGHNESS
Przesuń roughness — każda krótka linia to normalna jednej mikrofasetki; przy roughness=0 wszystkie są równoległe do makro-normalnej, przy roughness=1 wskazują we własną, stałą, losową stronę.

Model Cook-Torrance'a (1982) łączy trzy składniki, korzystając z wektorów, które już masz. Ważne rozróżnienie: N, L, V i H to wektory — kierunki. D, G i F to zwykłe liczby z zakresu 0–1, policzone na podstawie tych kierunków — same w sobie nie mają kierunku ani nie „są" żadną normalną. Konkretnie: rozkład orientacji fasetek D (jaki ułamek ma normalną blisko H z Rozdziału 5), samo-zasłanianie fasetek G (jaki ułamek z nich nie jest zasłonięty przez sąsiednie), i Fresnel F (Schlick z Rozdziału 7, jaki ułamek światła się odbija):

specular = (D · G · F) / (4 · (N·L) · (N·V))to dosłownie wszystkie wektory i wzory z Rozdziałów 5 i 7, złożone w jedną, fizycznie spójną BRDF; pełny rozkład D (GGX) czeka w Rozdziale 11
Cook-Torrance.DGFN, L, V, H → D · G · F
N L V H D — orientacja fasetek wokół H G — ułamek fasetek nie zasłoniętych sąsiadami F — Fresnel (Schlick, Rozdział 7): % odbicia
N to kierunek — jeden wektor, ten sam co wszędzie indziej w książce. D, G i F to nie kierunki, tylko liczby 0–1: H leży w połowie drogi między L i V, D mierzy, jaki ułamek mikrofasetek ma normalną blisko H, G — jaki ich ułamek naraz widzi L i V bez wzajemnego zasłaniania, a F — jaki ułamek światła odbija się pod tym kątem padania.
Z praktyki

Slider „Metallic” w Substance Painter, Unrealu, Unity czy Blenderowym Principled BSDF dosłownie przełącza między dwoma modelami z tego rozdziału: 0 = dielektryk (diffuse + biały F0 ≈ 0,04), 1 = metal (zero diffuse, kolorowy F0 = albedo). To nie metafora — to ten sam przełącznik.

Wartości Metallic pomiędzy 0 i 1 nie odpowiadają żadnemu realnemu materiałowi — prawdziwa powierzchnia jest albo dielektrykiem, albo metalem. Wartości pośrednie bywają używane do stylizacji albo maskowania przejść na krawędziach tekstury, ale to wygoda warsztatowa, nie fizyka.

Słowniczek
BRDF
Funkcja opisująca, ile światła z L wraca w kierunku V w danym punkcie.
Energooszczędność
BRDF nie może odbić więcej energii, niż padło.
Wzajemność (Helmholtz)
f(L,V) = f(V,L).
Dielektryk
Niemetal: diffuse z pigmentu + bezbarwny specular.
Metal (przewodnik)
Zero diffuse; cały kolor w kolorowym specular.
Lob (lobe)
Kształt powstały z odłożenia wartości BRDF w każdym kierunku; im dalej brzeg od punktu trafienia, tym więcej światła leci w tę stronę.
Mikrofasetka
Mikroskopijny, płaski fragment powierzchni ze swoją normalną.
Model Cook-Torrance'a
Specular = D·G·F / (4·(N·L)·(N·V)).
Metallic/Roughness workflow
Standard PBR: dwa slidery zamiast osobnych map dla każdego parametru.
Idź głębiej
Dodatek A — Warianty materiałów PBR Dodatek AO — Oscylator elektronowy: dlaczego metal, szkło i pigment odpowiadają inaczej Dodatek AB — BRDF w praktyce: zmierzone dane i parametryzacja Dodatek AC — Warstwowe materiały: pełna matematyka Dodatek AG — Subsurface scattering Dodatek AI — MaterialX i OSL Dodatek AM — Rendering spektralny i polaryzacja