Podkręcenie saturacji psuje skórę, zanim zdążysz to zauważyć na wykresie wektorowym — bo za tym jednym suwakiem stoi macierz, która traktuje każdy kolor inaczej.
Rozdział 8 wprowadził wzór na saturację przy okazji ASC CDL: out_c = luma + sat · (in_c − luma). Podstawiając definicję luma (współczynniki Rec.709: 0,2126 / 0,7152 / 0,0722) i grupując wyrazy przy R, G, B, ten sam wzór zapisuje się jako jedna macierz 3×3, identyczna dla wszystkich trzech kanałów wyjściowych, zależna tylko od jednego parametru sat:
To właśnie dlatego przesadzona saturacja najpierw psuje skórę: karnacja ma stosunkowo bliskie sobie wartości R, G i B (mała odległość od luma w porównaniu np. z nasyconą czerwienią ubrania), więc każdy dodatkowy procent sat wyolbrzymia tę niewielką różnicę nieproporcjonalnie mocno względem tego, jak subtelna zmiana jest jeszcze wiarygodna fizjologicznie — granica, za którą skóra zaczyna wyglądać poparzona słońcem albo chorobliwie czerwona, jest bliżej niż podpowiada intuicja patrząca tylko na jedną liczbę „Saturation”.
Saturacja skaluje odległość koloru od luma, ale nie zmienia kierunku tej odległości — czerwony pozostaje czerwony, tylko mniej lub bardziej intensywny. Obrót barwy robi coś przeciwnego: zmienia kierunek, zachowując odległość (i luma) bez zmian. Najwygodniej myśleć o tym w przestrzeni, która jawnie oddziela luma od chrominancji — na przykład YCbCr, gdzie Y to luma (ten sam wzór co wyżej), a Cb i Cr to dwuwymiarowa płaszczyzna koloru, niezależna od jasności. Obrót barwy o kąt θ to zwykły obrót 2D dokładnie tej płaszczyzny:
Część narzędzi (klasyczne „Hue” w edytorach zdjęć w rodzaju Photoshopa) implementuje ten sam efekt inaczej — jako przesunięcie kąta H w przestrzeni HSV/HSL, gdzie hue to wprost kąt na kole barw, a nie obrót w płaszczyźnie chrominancji YCbCr. Obie implementacje dążą do tego samego efektu wizualnego, ale nie są matematycznie identyczne — kolejny przykład (po „lift” z Rozdziału 7) tego, że ta sama nazwa parametru w dwóch programach nie gwarantuje identycznego wzoru pod spodem.
Materiał nakręcony pod ciepłym światłem żarowym albo pod chłodnym niebem bez chmur ma przesunięty balans kolorów, zanim ktokolwiek dotknie gradingu — to, co powinno być neutralnie białe (karta szara, biała koszula), rejestruje się z domieszką pomarańczu albo błękitu. Najprostsza korekta — białe wyważenie — mnoży każdy kanał osobno tak, żeby zmierzony neutralny punkt stał się dokładnie (1; 1; 1):
Ta prosta, diagonalna korekta (osobny mnożnik na każdy kanał, bez mieszania między nimi) działa dobrze przy niewielkich przesunięciach, ale to w istocie uproszczona, przybliżona wersja czegoś bardziej ogólnego: adaptacji chromatycznej. Przy dużych przesunięciach temperatury barwowej (bardzo ciepłe światło świecy kontra bardzo chłodne zachmurzone niebo) sama korekta diagonalna w RGB zaczyna dawać zauważalnie inne rezultaty niż to, jak faktycznie adaptuje się ludzkie oko — stąd transformacje von Kriesa i Bradforda, które tę samą ideę wykonują w przestrzeni lepiej dopasowanej do fizjologii widzenia (tej samej, której użyto już przy okazji różnicy D65/D60 w Rozdziale 4). Pełny wywód — łącznie z tym, dlaczego prosta diagonalna korekta czasem wystarcza, a czasem nie — jest w Dodatku E.
Saturacja i obrót barwy niemal zawsze siedzą w tym samym node'zie co offset/gain/gamma z Rozdziału 7 — aiColorCorrect w Arnoldzie wystawia wprost parametry saturation i hue_shift obok exposure i kontrastu z Rozdziału 9; PxrColorCorrect w RenderManie ma bezpośrednie odpowiedniki. Białe wyważenie bywa potraktowane osobno, czasem jako parametr „temperature/tint” bliższy językowi fotografii niż surowym gainom kanałów — Dodatek E pokazuje, jak taki parametr temperaturowy przekłada się z powrotem na dokładnie te same gainy albo macierze, które poznałeś w tym rozdziale.
Część III dała Ci pełny zestaw operatorów gradingu — offset, gain, gamma, CDL, ekspozycja, kontrast, saturacja, hue, białe wyważenie. Wszystkie zakładały jedno: że liczby, na których operujesz, są już poprawnie zdekodowane do scene-linear. Część IV wraca do tego założenia i sprawdza je od podszewki — zaczynając od pytania, które teksturę jest kolorem, a która czystymi danymi, i dlaczego pomylenie tych dwóch to najczęstszy błąd, jaki zobaczysz w cudzej scenie.