MERL · 100 materiałówPARAM · RusinkiewiczGAP · analityczny vs zmierzonyEXT OF · R.10–11 · Dodatek A
Dodatek AB / Głębiej: BRDF

BRDF w praktyce: zmierzone dane i pułapki parametryzacji

Cook-Torrance i GGX z Rozdziałów 10–11 to eleganckie, gładkie wzory — ale to wciąż tylko przybliżenie tego, co robią prawdziwe materiały. Ten dodatek pokazuje, skąd bierzemy dowód na to, jak bardzo (i gdzie) to przybliżenie się rozjeżdża z rzeczywistością — i dlaczego ten sam „Roughness = 0,3” może wyglądać zupełnie inaczej w dwóch różnych silnikach.

TL;DR
Pass: Dane zmierzone

Skąd bierze się „prawdziwa” BRDF

Cook-Torrance i GGX z Rozdziałów 10–11 to modele — matematyczne przybliżenia tego, jak zachowuje się światło na chropowatej powierzchni, wyprowadzone z uproszczonej fizyki mikrofasetek. Da się też zrobić coś zupełnie innego: wziąć prawdziwą próbkę materiału, umieścić ją w gonioreflektometrze (urządzenie obracające źródło światła i czujnik wokół próbki po tysiącach kombinacji kątów) i po prostu zmierzyć, ile światła wraca dla każdej pary kierunków L, V. Najbardziej znanym publicznym zbiorem takich pomiarów jest MERL BRDF Database — około 100 materiałów (metale, plastiki, tkaniny, farby), każdy zmierzony gęsto po kątach i zapisany jako tabela liczb, nie wzór.

Surowe dane z pomiaru miałyby cztery wymiary kątowe (kierunek L i kierunek V, każdy opisany dwoma kątami) — ogromna tabela. Rusinkiewicz (1998) pokazał, że dla materiałów izotropowych (takich, które wyglądają tak samo obrócone wokół swojej normalnej) dane da się przeparametryzować przez kąt half-vector θ_h (ten sam H z Rozdziału 5) i kąt różnicowy θ_d — w tej parametryzacji BRDF zmienia się bardzo powoli wzdłuż jednego z wymiarów, więc tabelę da się bez straty jakości skompresować drastycznie mocniej niż w surowych L,V.

Pass: Rozjazd

Gdzie analityczny model się myli

Dla większości „zwykłych” materiałów — plastiku, farby, polerowanego metalu — GGX z Rozdziału 11 jest bardzo bliski temu, co pokazują zmierzone dane: gładki, symetryczny lob wokół kierunku idealnego odbicia. Problem zaczyna się przy materiałach o innej mikrostrukturze niż „losowo zorientowane mikrofasetki”. Klasyczny przykład to aksamit: włókna tkaniny stoją niemal prostopadle do powierzchni, więc światło wchodzące pod płytkim kątem odbija się głównie z powrotem w stronę, z której przyszło (retroreflection) — zupełnie inny kształt loba niż cokolwiek, co potrafi wyprodukować GGX, który zawsze ma szczyt przy idealnym odbiciu zwierciadlanym, nigdy przy powrocie do źródła.

Lobe.shapesGGX vs velvet (measured)
GGX (ANALITYCZNY) AKSAMIT (ZMIERZONY) L lob przy idealnym odbiciu L garb z powrotem do L
Ten sam kierunek światła L — GGX zawsze celuje w kierunek idealnego odbicia, zmierzony aksamit ma dodatkowy garb wracający do źródła.

To nie jest błąd GGX — to po prostu materiał spoza założeń, na których GGX został wyprowadzony (losowo zorientowane, nieprzezroczyste mikrofasetki). Stąd osobne, wyspecjalizowane modele „sheen” dla tkanin (m.in. w rozszerzeniu KHR_materials_sheen standardu glTF i w Principled BSDF), doklejane obok zwykłego GGX właśnie po to, żeby złapać ten dodatkowy garb.

Pass: Dlaczego analityczny wygrywa

Czemu produkcja i tak używa głównie modeli, nie danych

Skoro dane zmierzone są dokładniejsze, dlaczego nie używać ich zawsze? Trzy powody, każdy praktyczny:

W praktyce dane zmierzone służą głównie jako punkt odniesienia — sprawdzasz nimi, jak bardzo Twój analityczny model się myli dla danej klasy materiałów, i albo akceptujesz różnicę, albo dokładasz wyspecjalizowany człon (jak sheen dla tkanin wyżej).

Pass: Parametryzacja

„Roughness = 0,3” nie zawsze znaczy to samo

Rozdział 11 wprowadził α = roughness² — kwadrat, nie sam roughness, żeby slider czuł się bardziej liniowo percepcyjnie. To jedna, konkretna konwencja remapowania, nie fizyczne prawo. Równie ważny wzór D(H) da się podłączyć bezpośrednio pod α = roughness (bez kwadratu) — matematycznie to wciąż poprawna, energooszczędna BRDF, tylko inaczej wyskalowana. Problem: te dwie konwencje dają zupełnie inny wygląd przy tej samej liczbie na sliderze.

Konwencja A (liniowa): α = roughness   Konwencja B (kwadratowa, z Rozdziału 11): α = roughness²obie są wewnętrznie spójne i energooszczędne — różnią się tylko tym, co dokładnie oznacza liczba na sliderze
Policzone: ta sama liczba, dwie konwencje
roughness = 0,3, patrzymy dokładnie w kierunku idealnego odbicia (N·H=1), więc D(H) = 1/(π·α²) — uproszczenie wzoru z Rozdziału 11 przy N·H=1
Konwencja A: α = 0,3 → D(H) = 1/(π·0,09) = 3,54
Konwencja B: α = 0,3² = 0,09 → D(H) = 1/(π·0,0081) = 39,3
Ta sama liczba „0,3” na sliderze — ponad 11× różnica w szczytowej jasności błysku, zależnie wyłącznie od konwencji remapowania.
To nie błąd żadnej ze stron — obie konwencje są matematycznie poprawne. Problem pojawia się, gdy przenosisz wartość liczbową między dwoma narzędziami, które milcząco zakładają różne konwencje.

W praktyce dochodzi jeszcze druga oś rozjazdu: parametr „Specular” (nie mylić z roughness) bywa wystawiony jako bezpośredni IOR, jako F0 wprost (0–8% typowe dla dielektryków), albo jako skalar 0–1 przemnożony przez stały zakres (konwencja glTF/Disney: F0 = 0,08 · specular, więc domyślne specular=0,5 daje dokładnie F0≈0,04 z Rozdziału 11). Żadna z tych konwencji nie jest „poprawniejsza” — ale przenoszenie materiału między silnikami bez świadomości, która konwencja obowiązuje po drugiej stronie, jest jednym z najczęstszych źródeł „ten sam materiał wygląda inaczej po imporcie”.

Z praktyki

Gdy przenosisz materiał między silnikami (albo porównujesz referencyjne zdjęcie z renderem), pierwsze pytanie do zadania nie brzmi „czy roughness jest za wysoki”, tylko „czy w ogóle porównuję jabłka z jabłkami” — sprawdź w dokumentacji obu narzędzi, jaką dokładnie konwencję remapowania roughness i jaką konwencję Specular/F0 stosują, zanim zaczniesz dostrajać liczby na oko.

Słowniczek
MERL BRDF Database
Zbiór realnie zmierzonych BRDF ze 100 materiałów, publicznie dostępny.
Gonioreflektometr
Urządzenie mierzące odbicie światła próbki po wielu kombinacjach kątów.
Parametryzacja Rusinkiewicza
Zapis BRDF przez kąt half-vector i kąt różnicowy zamiast wprost L, V — mocno kompresowalny dla materiałów izotropowych.
Retroreflection
Silne odbicie z powrotem w stronę źródła światła — charakterystyczne dla tkanin jak aksamit.
Remapowanie roughness
Konwencja przeliczania wartości slidera na α użyte we wzorze D(H) — różna między narzędziami.