SKÓRA · stos warstw, nie 1 materiałMODEL · Jensen Dipole → Path TracedDETAL · pieprzyki, pory, nieregularność
Rozdział 17 / Materiały i detal

Skóra i organika

Skóra nie jest jednym materiałem — to stos warstw o różnej głębokości rozpraszania i innym specularu, a pieprzyki psują iluzję, jeśli są zbyt regularne.

TL;DR
Etap: Stos, nie materiał

Skóra to trzy warstwy naraz

Traktowanie skóry jako jednego subsurface_radius z Rozdziału 16 to dobry start, ale realna skóra to stos: cienka, zmienna warstwa tłuszczu i potu na wierzchu (coat z Rozdziału 15 — ostry, niski-roughness specular, niezależny od reszty), naskórek (płytkie rozpraszanie, krótki MFP), skóra właściwa pod spodem (głębsze rozpraszanie, tam mieszka czerwień hemoglobiny). Jeden płaski SSS bez osobnego coatu wygląda matowo i plastikowo — brakuje mu tego cienkiego, oddzielnego błysku, który realna skóra ma zawsze, niezależnie od tego, jak sucha wygląda w skali makro.

Domyślne wartości obu shaderów kryją w sobie fakt, który warto znać świadomie: subsurface_radius Arnolda domyślnie jest neutralne, (1; 1; 1) — świeży materiał SSS w Arnoldzie wygląda jak neutralny wosk. Mean Free Path Color PxrSurface domyślnie to (0,851; 0,557; 0,395) — wyraźnie ciepłe, czerwonawe, celowo dobrane pod skórę. Świeży materiał SSS w PxrSurface od razu czyta się jako ciało, zanim cokolwiek dostroisz. Konsekwencja przy migracji: przeniesienie promienia (1,1,1) z Arnolda do PxrSurface usuwa to wbudowane zaczerwienienie i materiał traci ciepło, którego nikt świadomie nie wyłączył.

Etap: Model rozpraszania

Sześć modeli w PxrSurface, dwa w Arnoldzie

PxrSurface daje wybór modelu transportu światła pod powierzchnią, wystawiony wprost jako Subsurface Model — sześć opcji, nie dwie:

Model PxrSurfaceCo liczyNajbliższy odpowiednik Arnolda
Jensen Dipole (domyślny)tylko dyfuzja, najstarsze, najtańsze przybliżeniediffusion
d'Eon Better Dipoledyfuzja, lepszy zanik niż Jensendiffusion
Burley Normalizeddyfuzja i pojedyncze rozproszeniemiędzy diffusion a randomwalk
Multiple Mean Free Pathstrzy niezależne zasięgi rozpraszania narazbrak odpowiednika
Exponential Path Tracedfaktyczne śledzenie fotonu wewnątrz materiałurandomwalk
Non-Exponential Path Tracedto samo, inny rozkład dystansu — lepszy na gęstych mediachrandomwalk_v2

Krytyczne niedopasowanie domyślnych wartości: Arnold od lat domyślnie liczy randomwalk — niemal każdy istniejący materiał SSS w Arnoldzie powstał właśnie na nim. PxrSurface domyślnie startuje z Jensen Dipole, najsłabszym przybliżeniem z całej listy.

Jeśli materiał w Arnoldzie używał randomwalk, uczciwym odpowiednikiem w PxrSurface jest model Path Traced, nie dipol, od którego PxrSurface zaczyna. Przybliżenia dipolowe trzymają się dobrze na grubych, zaokrąglonych formach i zawodzą dokładnie tam, gdzie geometria robi się cienka — uszy, nozdrza, palce, powieki (dokładnie ta sama granica cienkiej geometrii, o której mówi raytracing-book, Dodatek AG). To wyjaśnia często spotykany objaw: „na policzku wygląda dobrze, na uszach gumowato” — to nie kwestia strojenia koloru, tylko wybranego modelu.

Zastrzeżenie działające w drugą stronę: Mean Free Path Distance jest zaprojektowany pod modele dipolowe. W trybie Path Traced dokumentacja RenderMana odradza poleganie na nim — lepiej sterować wyglądem przez Subsurface Color i Mean Free Path Color. Zmiana modelu zmienia więc nie tylko jakość, ale i to, które parametry w ogóle mają znaczenie.

Etap: Multiple Mean Free Paths

Trójwarstwowy model skóry bez odpowiednika w Arnoldzie

Zamiast jednego MFP barwionego per kanał, tryb Multiple Mean Free Paths daje trzy pełne zestawy naraz — krótki, średni i długi zasięg, każdy z własnym gain, kolorem i dystansem:

ZasięgKolor domyślnyDystans domyślny
Krótkiprawie biały (0,9; 0,9; 0,9)5
Średniciepły, przełamany biały (0,830; 0,791; 0,753)10
Długiczysta czerwień (0,8; 0; 0)20

To gotowy, trójwarstwowy model skóry: blada, ciasna warstwa tuż pod powierzchnią, ciepła warstwa środkowa, głęboka czerwona warstwa krwi cztery razy dalej niż pierwsza. Dwie pułapki przy przełączeniu na ten tryb: Mean Free Path Color przestaje działać całkowicie (zastąpiony kolorami per-zasięg), a Subsurface Color zaczyna oznaczać wyłącznie kolor zasięgu średniego, nie całej warstwy — przeniesiony wprost z Arnolda kolor nagle robi znacznie węższą robotę, niż robił wcześniej.

Etap: Single Scatter

Ostry, kierunkowy poblask przez cienki materiał

Single Scatter to w PxrSurface osobny lob, nie część Subsurface — własny Gain, kolor, MFP, własny IOR (1,3) i kontrola rozmycia. Pojedyncze rozproszenie to światło, które odbija się raz i wychodzi — daje ostry, kierunkowy poblask przez cienki, gęsty materiał (dłoń przyłożona do latarki, plasterek nefrytu, świeca pod światłem), w odróżnieniu od miękkiego, wszechkierunkowego poblasku dyfuzji. Arnoldowy randomwalk ma to policzone automatycznie, jako część tej samej trasy promienia — nie ma osobnego przełącznika do włączenia czy zapomnienia. W PxrSurface zależy to od wybranego modelu: dipol (Jensen/d'Eon) liczy tylko dyfuzję, więc Single Scatter trzeba dołożyć ręcznie, jeśli materiał w Arnoldzie miał widoczny charakter pojedynczego rozproszenia; Burley Normalized ma je już wliczone; modele Path Traced też je już liczą — dokładanie Single Scatter na wierzch modelu Path Traced podwaja to samo światło.

Etap: Detal

Pieprzyki i pory: dlaczego regularność zabija iluzję

Skóra ma detal w dwóch różnych skalach, i oba muszą być nieregularne, żeby oko ich nie złapało jako wzorca. Pory to detal mikro — zwykle bump albo displacement (Rozdział 20) z teksturą szumu, nie geometria modelowana ręcznie; kluczowe jest zróżnicowanie gęstości i głębokości między obszarami (T-strefa twarzy ma inne pory niż policzki), nie jednolita siatka. Pieprzyki i przebarwienia to detal makro — jeśli są rozłożone regularnie (siatka, powtarzający się wzór z teksturowej płytki) albo mają identyczny rozmiar i kolor, oko wyłapuje powtórzenie w ułamku sekundy, nawet jeśli widz nie potrafi nazwać, co konkretnie go razi. Praktyczna technika: losowa wariacja skali, koloru i gęstości per instancję (maska proceduralna albo ręcznie malowana, nigdy jedna płytka powielona bez zmian), z rzadkimi, większymi „akcentami” rozbijającymi jednostajność drobnego szumu — dokładnie ta sama zasada nieregularności, która w Rozdziale 19 wraca przy rozkładzie włosów.

Przepis: migracja materiału skóry z Arnolda do PxrSurface, krok po kroku
1. Sprawdź skalę sceny, ustaw Unit Length zgodnie z nią — to mnoży wszystko inne, rób to pierwsze (Rozdział 16)
2. Dopasuj Subsurface Model do modelu z Arnolda zanim zaczniesz wpisywać liczby — randomwalk → Path Traced, diffusion → dipol
3. Przenieś promień → Mean Free Path Color, skalę → Mean Free Path Distance; w trybie Path Traced licz się bardziej z kolorami niż z dystansem
4. Skopiuj Subsurface Color i Gain wprost
5. Zapłać rachunek za energię — obniż Diffuse Gain w miarę wzrostu Subsurface Gain (Rozdział 13)
6. Oceniaj pod kontrę — z cienkim fragmentem w kadrze (ucho, nozdrze, palec); światło z przodu ukrywa większość błędów
7. Dopiero teraz rozważ Single Scatter, i tylko na modelu dipolowym
Kolejność ma znaczenie: model przed liczbami, energia przed kolorem, test pod kontrę przed uznaniem materiału za gotowy.
Słowniczek
Model dipolowy (Jensen, d'Eon)
Najtańsze przybliżenie SSS, oparte na gładkiej dyfuzji; zawodzi na cienkiej geometrii.
Model Path Traced
Faktyczne śledzenie fotonu wewnątrz materiału — odpowiednik Arnoldowego randomwalk.
Multiple Mean Free Paths
Tryb PxrSurface z trzema niezależnymi zasięgami rozpraszania (krótki/średni/długi) naraz — model skóry bez odpowiednika w Arnoldzie.
Single Scatter
Osobny lob światła rozproszonego dokładnie raz — ostry, kierunkowy poblask przez cienki materiał.
Test pod kontrę (backlit test)
Ocena materiału SSS z cienkim fragmentem geometrii oświetlonym od tyłu — ujawnia błędy modelu niewidoczne przy świetle z przodu.