METAL · anizotropia, 2 roughnessSZKŁO · grubość zmienia ExtinctionCIECZE · geometria, nie shader
Rozdział 18 / Materiały i detal

Metal, szkło, ciecze

Szczotkowany metal, mokre szkło i woda w szklance łamią to samo założenie na trzy różne sposoby — każde ma swój własny parametr, o którym łatwo zapomnieć.

TL;DR
Etap: Metal z bliska

Szczotkowany metal: anizotropia to kierunek, nie tylko wielkość

GGX z jednym roughness (raytracing-book, Rozdział 11) zakłada, że mikrofasetki są rozrzucone tak samo we wszystkie strony. Szczotkowana blacha, satyna, płyta winylowa mają fasetki wyrównane wzdłuż konkretnego kierunku — gładsze wzdłuż rys szczotkowania, chropowate w poprzek. Rozkład D dostaje wtedy dwie niezależne wartości roughness zamiast jednej, po jednej na oś lokalnej ramki stycznej (raytracing-book, Dodatek A):

D(H) = 1 / ( π·αx·αy·( (H·T/αx)² + (H·B/αy)² + (H·N)² )² )αx, αy — roughness wzdłuż tangenty T i bitangenty B; αx=αy sprowadza wzór z powrotem do izotropowego GGX
↓ raytracing-book, Dodatek A — pełne wyprowadzenie anizotropowego GGX

Arnold steruje tym parą specular_anisotropy (0–1, ile rozciągnięcia) i specular_rotation (0–1, mapowane na 0–360°, kierunek). PxrSurface ma odpowiadający zakres −1…1 (ujemna połowa to te same elipsy obrócone o 90°), ale nie ma odpowiednika rotacji jako liczby — kierunek steruje wyłącznie Shading Tangent, wejście przyjmujące tylko połączenie, nie wartość. Praktyczna konsekwencja: kierunek rys szczotkowania trzeba dostarczyć mapą przepływu tangenty (tangent-flow map), zgodną z rzeczywistym kierunkiem obróbki powierzchni — bez niej elipsa błysku wskazuje w przypadkowym kierunku wyznaczonym domyślną parametryzacją UV, nie tam, gdzie faktycznie biegną rysy.

Etap: Szkło z bliska

Ta sama butelka, dwie grubości, dwa Extinction

Rozdział 15 pokazał mechanizm: kolor transmisji przestaje być prostym barwieniem, gdy ośrodek ma niezerową głębokość absorpcji — staje się barwą, jaką przyjmuje białe światło po przebyciu tego dystansu (prawo Beera-Lamberta, raytracing-book Rozdział 18). Tu widać konkretną konsekwencję: ta sama butelka zielonego szkła, cienka przy szyjce i gruba przy podstawie, w Arnoldzie wygląda spójnie z jednym transmission_depth, bo Arnold sam przelicza absorpcję do faktycznej grubości promienia w danym miejscu. W PxrSurface Extinction w Interior jest jedną, stałą wartością — dobraną pod konkretną grubość. Cienka szyjka i gruba podstawa tej samej butelki, żeby wyglądać jak ten sam materiał, wymagają w PxrSurface albo dwóch różnych wartości Extinction na dwóch shaderach, albo świadomego kompromisu na jednej wartości pośredniej.

Etap: Ciecze

Kiedy materiał to nie shader, tylko geometria

Woda w szklance to zwykle najprostszy shader w całej scenie — dielektryk o IOR≈1,33, praktycznie zerowy roughness, bez SSS, bez coatu. To, co sprawia, że wygląda przekonująco albo nie, prawie nigdy nie leży w parametrach shadera. Trzy miejsca, gdzie faktycznie trzeba popracować:

Meniskus. Powierzchnia cieczy przy ściance naczynia nie jest płaska — napięcie powierzchniowe podciąga ją w górę albo w dół, zależnie od zwilżalności. Płaska powierzchnia wody bez tego zagięcia od razu czyta się jako fałszywa, nawet jeśli widz nie potrafi nazwać dlaczego — to szczegół geometrii, nie materiału.

Zniekształcenie tła. Przekonującość szkła z wodą bierze się głównie z tego, jak bardzo załamuje to, co jest za nią — prosty test: czy tekst czy wzór za szklanką jest widocznie, wiarygodnie zniekształcony przez krzywiznę cieczy i naczynia razem. Jeśli scena review'owana jest pod HDRI bez wyraźnych krawędzi w tle (Rozdział 21), transmisja może wyglądać poprawnie, mimo że IOR jest źle dobrany — dopiero kontrastowe tło ujawnia błąd.

Detal powierzchni. Nieruchoma, idealnie gładka ciecz w kadrze z bliska wygląda jak żywica, nie jak płyn — drobna normal map z falami albo napięciem powierzchniowym przy krawędziach kropli robi więcej dla wiarygodności niż jakikolwiek suwak w shaderze. Krople na powierzchni to ten sam problem co pieprzyki z Rozdziału 17: potrzebują nieregularnego rozkładu rozmiaru i kształtu (zwykle sterowanego geometrią przyczepności albo maską proceduralną), nie jednolitej tekstury powtarzanej bez zmian.

Słowniczek
Anizotropia (αx, αy)
Dwie niezależne wartości roughness wzdłuż tangenty i bitangenty zamiast jednej — rozciąga błysk w konkretnym kierunku.
Shading Tangent
PxrSurface: wejście-połączenie sterujące kierunkiem anizotropii, bez odpowiednika prostego suwaka rotacji.
Extinction a grubość
Absorpcja światła w ośrodku zależy od przebytego dystansu — ta sama wartość Extinction daje różny kolor przy różnej grubości.
Meniskus
Zakrzywienie powierzchni cieczy przy ściance naczynia, efekt napięcia powierzchniowego.