Rozdziały 10–11 dały Ci izotropowy, jednowarstwowy, jednorazowo-rozproszony GGX. To fundament, ale trzy realne materiały — szczotkowany metal, lakier samochodowy, bardzo chropowaty metal — potrzebują trzech konkretnych rozszerzeń tego samego modelu.
GGX z Rozdziału 11 zakłada jeden α — fasetki rozrzucone tak samo we wszystkie strony. Szczotkowany metal, satyna, płyta CD i włosy (Rozdział 20) mają fasetki wyrównane wzdłuż konkretnego kierunku — gładsze wzdłuż rys szczotkowania, chropowate w poprzek. Trzeba rozdzielić α na dwie wartości, jedną dla każdej osi lokalnej ramki (tangenta T, bitangenta B):
Lakier samochodowy, polerowane drewno, skóra — mają przezroczystą warstwę nad materiałem bazowym. Światło najpierw trafia w tę warstwę: część odbija się od razu (własny, zwykle bardzo gładki specular), reszta wchodzi do bazy, gdzie dostaje pełny model materiału z Rozdziałów 10–11 (diffuse + specular bazy), i wychodzi z powrotem przez tę samą warstwę — drugi Fresnel przy wyjściu.
Produkcyjne implementacje rzadko symulują to w pełni — zamiast tego po prostu dodają drugi, niezależny, zwykle bardzo niski-roughness lob specular na wierzch pełnego BRDF bazy, ważony własnym Fresnelem. Prostsze niż prawdziwa symulacja dwuwarstwowa, a wizualnie bardzo zbliżone.
GGX z Rozdziału 11 liczy tylko jedno odbicie od mikrofasetki. Przy wysokim roughness część światła, która trafia w fasetkę odwróconą "źle", w realu odbija się do sąsiedniej fasetki i odbija ponownie, aż w końcu dotrze do widza. Model jednorazowego rozproszenia tę energię po prostu gubi — bardzo chropowate metale wychodzą sztucznie ciemniejsze, niż powinny.
Metoda Kulli i Conty'ego (2017) szacuje tę brakującą energię analitycznie — z tabeli policzonej raz, offline, w funkcji roughness i kąta — i dodaje ją jako dodatkowy, miękki lob. Coraz więcej silników (Blender Cycles, Arnold, Unreal) robi to domyślnie, bez żadnego przełącznika po stronie artysty.
„Anisotropy” i „Anisotropic Rotation” w Blenderze/Unrealu/Arnoldzie to αx/αy i orientacja T z tego rozdziału. „Clearcoat” i „Clearcoat Roughness” w Principled BSDF to dosłownie drugi lob z sekcji o lakierze. Multi-scatter najczęściej nie ma własnego slidera — po prostu jest domyślnie włączony w nowszych wersjach silników.
Dodatek B rozwija Rozdział 15: importance sampling, next event estimation i multiple importance sampling — czyli dlaczego niektóre próbki w path tracingu „liczą się” dużo bardziej niż inne.