Skala gamma i linowa

Teraz sytuacja, o której rozmawialiśmy przy okazji omawiania teorii nazywanej «liniową». Każdy krok jasności ma tę samą wartość. Nasze oczy nie odbierają światła liniowo. Jesteśmy w stanie łatwiej rozróżnić ciemniejsze szarości niż jaśniejsze.

Jako iż ludzie są tymi, którzy używają komputerów, to zrobiliśmy to tak, że komputery dają większą przestrzeń ciemniejszym wartością w układzie współrzędnych obrazu. Nazywamy to «kodowaniem-gamma», bo stosuje funkcje gamma do TRC lub funkcje przeniesienia obrazu. TRC w tym przypadku to Tone Response Curve (z ang. Krzywa Odpowiedzi Odcieni ) lub Tone Reproduction Curve (z ang. Krzywa Odwzorowania Odcieni) lub funkcja przeniesienia (ponieważ specjaliści od zarządzania barwami nie lubią się nawzajem), co mówi twojemu komputerowi lub drukarce jak bardzo barwa odpowiada danej wartości.

../../_images/Pepper_tonecurves.png

Jedną z najpowszechniejszych trudności ludzie mają przy zarządzaniu barwami w Kricie jest przypisywanie właściwych przestrzeni barw do zakodowanego TRC. Powyżej, środkowa papryka jest właściwa, gdzie zakodowane i przypisane TRC są te same. Po lewej masz paprykę zakodowaną w sRGB, lecz przypisany profil jest liniowy, po prawej masz paprykę zakodowaną liniowym TRC i z przypisanym sRGB TRC. Obraz z Papryka & Marchewka.

Następująca tabela pokazuje, że wykorzystywanej jest dużo przestrzeni przez jaśniejsze wartości w przestrzeni liniowej w porównaniu do domyślnego sRGB TRC naszych współczesnych komputerów i innych TRC dostępnych w profilach, które dostarczamy:

../../_images/trc_gray_gradients.svg

Jeśli spojrzysz na skalę linową Rec. 709 TRC, to zauważysz znaczny skok pomiędzy ciemniejszymi i jaśniejszymi odcieniami, podczas gdy skale L* TRC oraz sRGB TRC, wyglądają jakby miały bardziej równomierne odstępy. Jest tak ze względu na czułość naszych oczu na ciemniejsze wartości. Oznacza to, że jeśli nie masz wystarczająco głębi bitowej, to obraz w przestrzeni liniowej będzie wyglądać jakby miał brzydkie pasma. Z tego powodu, gdy tworzymy obrazy do oglądania na ekranie, zawsze używamy czegoś takiego jak Lab L*, sRGB lub Gamma 2.2 TRC do kodowania obrazu.

Jednakże, te zmiany nacelowane na danie więcej miejsca ciemniejszym wartością prowadzą do zwichrowanej matematyki barw przy mieszaniu barw.

Jest to widoczne w następującym doświadczeniu:

../../_images/Krita_2_9_colormanagement_blending_1.png

Po lewej: Barwne okręgi zamazane w zwykłej przestrzeni sRGB. Po prawej: Barwne okręgi zamazane w linowej przestrzeni.

Zabarwione okręgi, w połowie zamazane. W środowisku z poprawioną gammą, daje nam to dziwnie wyglądające czarne obramowanie. W linowym środowisku, daje nam to ładne stopniowanie.

Dotyczy to także pędzla barwnej smugi Krity:

../../_images/Krita_2_9_colormanagement_blending_2.png

To jest poprawne, na «zabłocenie» barw skarży się powszechnie wiele cyfrowych malarzy, jest to w rzeczywistości przestrzeń barw z poprawioną gamą, która brudzi barwy. Jeśli pracowałeś w przestrzeni LAB, aby tego uniknąć, to upewnij się, że wypróbowałeś przestrzeń barw RGB.

Co się dzieje pod maską

Wyobraź sobie, że chcemy zmieszać czerwony i zielony.

Najpierw będziemy potrzebować współrzędnych barw czerwonego i zielonego wewnątrz naszego modelu przestrzeni barw. Zatem będzie to…

Barwa

Czerwony

Zielony

Niebieski

Czerwony

1.0

0.0

0.0

Zielony

0.0

1.0

0.0

Następnie uśredniamy te współrzędne na trzech mieszaninach:

Czerwony

Mieszanina1

Mieszanina2

Mieszanina3

Zielony

Czerwony

1.0

0.75

0.5

0.25

0.0

Zielony

0.0

0.25

0.5

0.75

1.0

Niebieski

0.0

0.0

0.0

0.0

0.0

Aby dowiedzieć się jak te barwy będą wyglądać na ekranie, najpierw przepuszczamy poszczególne wartości przez TRC przestrzeni barw, w której pracujemy:

../../_images/Basicreading3trcsv2.svg

Następnie wpisujemy wartości w odpowiednie miejsce. Porównaj je z wartościami tabeli mieszanin powyżej!

../../_images/red_green_mixes_trc.svg

I to jest powód, dla którego mieszaniny są jaśniejsze i bardziej miękkie w przestrzeni liniowej. Przestrzeń liniowa jest bardziej poprawna fizycznie, lecz sRGB jest bardziej wydajne pod względem przestrzeni, stąd wiele obrazów ma sRGB TRC zakodowane w sobie. Jeśli nadal nie ma to dla ciebie sensu: sRGB daje w większości ciemniejsze wartości niż przestrzeń liniowa dla tych samych współrzędnych.

Tak więc różne TRC dają różne mieszaniny pomiędzy barwami, w następującym przykładzie, każdy zestaw gradientów jest w kolejności: mieszaniną używającą linowego TRC, mieszaniną używającą sRGB TRC oraz mieszaniną używającą LAB L* TRC.

../../_images/3trcsresult.png

Możesz się zastanawiać, jak włączyć to ustawienie? Znajduje się ono gdzieś w ustawieniach? Odpowiedź to, że mamy klika profili ICC, które można użyć do tego rodzaju pracy:

  • scRGB (linowa)

  • Wszystkie profile «elle» kończące się na «g10», takie jak sRGB-elle-v2-g10.icc.

W rzeczywistości, w wszystkich profilach «elle», ostatnia liczba wskazuje gammę. 1,0 to linowa, większe wartości to poprawiona gamma, a «srgbtrc» jest wyjątkowo poprawioną gammą dla pierwotnego profilu sRGB.

Jeśli używasz przeglądarki przestrzeni barw, to możesz odróżnić TRC od «szacowanej gammy» (jeśli jest to 1,0 , to jest ona liniowa) lub elementu interfejsu TRC w Kricie 3.0, która wygląda dokładnie tak samo jak wykres krzywej powyżej.

Nawet gdy nie malujesz tak dużo, lecz tworzysz np. tekstury dla gier wideo lub wyświetlania, to używanie przestrzeni liniowej jest bardzo korzystne i przyspieszy trochę program wyświetlający, gdyż nie będzie on musiał przekształcać obrazów na własną rękę.

Wadą przestrzeni liniowej jest oczywiście to, że biały wygląda na przezwyciężony przez czarny, ze względu na przestrzeń linowym, jasne odcienie szarości dostają więcej miejsca. Mimo tego, że linowa przestrzeń jest fizycznie poprawna i dobrodziejstwo pracy podczas pracy z fizycznie poprawnymi programami wyświetlającymi dla gier wideo i śledzenia promieni jest zauważalne, to Krita jest tylko narzędziem i nikt nie będzie cię gonił, jeśli wolisz używać ciemnego mieszania sRGB TRC.