Rozdział 12 użył configu OCIO jak gotowego narzędzia. Tu rozkładamy go na czynniki pierwsze: colorspace, role, transformy, wyszukiwanie ścieżki.
roles, displays, colorspaces i search_path.OCIO.Rozdział 12 opisał OCIO jako „jeden config, do którego odwołuje się każde narzędzie" — użyteczny mentalny skrót, ale niewystarczający, jeśli chcesz zrozumieć, dlaczego dodanie nowej przestrzeni kolorów do configu nie wymaga dopisania transformów do każdej innej przestrzeni, która już tam jest. Ten dodatek pokazuje strukturę, która to umożliwia.
Gdyby OCIO musiał zdefiniować bezpośredni transform między każdą parą przestrzeni kolorów, liczba potrzebnych definicji rosłaby z kwadratem liczby przestrzeni — dziesięć przestrzeni oznaczałoby blisko sto transformów do utrzymania. Zamiast tego każda przestrzeń kolorów w configu definiuje transform tylko w jedną stronę: do wspólnej przestrzeni referencyjnej (to_reference) i z niej z powrotem (from_reference). Konwersja między dwiema dowolnymi przestrzeniami odbywa się zawsze przez ten sam, wspólny punkt pośredni — jak piasta koła, do której dochodzi każda szprycha, zamiast siatki połączeń między każdą parą punktów z osobna. Dziesięć przestrzeni potrzebuje więc dziesięciu par transformów, nie stu.
roles — mapowanie nazw ról (Rozdział 12) na konkretne przestrzenie kolorów zdefiniowane w tym samym configu, np. scene_linear: aces_cg.colorspaces — lista wszystkich przestrzeni, każda z własnym transformem do i z przestrzeni referencyjnej — macierzą, krzywą logarytmiczną albo odwołaniem do pliku LUT.displays — lista fizycznych urządzeń wyjściowych (np. sRGB, Rec.709, DCI-P3), z których każde oferuje kilka nazwanych views — konkretnych transformów do wyboru w rozwijanym menu przeglądarki obrazu, jak „ACES", „Log" czy „Raw".search_path — lista folderów, w których config szuka plików LUT, do których odwołują się poszczególne przestrzenie kolorów.# uproszczony przykład, nie pełna specyfikacja
roles:
scene_linear: aces_cg
default: raw
displays:
sRGB:
- !<View> {name: ACES, colorspace: aces_output_srgb}
- !<View> {name: Raw, colorspace: raw}
colorspaces:
- !<ColorSpace>
name: aces_cg
to_reference: !<MatrixTransform> {matrix: [...]}
- !<ColorSpace>
name: raw
to_reference: !<MatrixTransform> {matrix: [identity]}
Sam plik configu leży zwykle w repozytorium showu, wersjonowany tak jak każdy inny plik konfiguracyjny (Rozdział 9). To, który dokładnie plik jest aktywny w danej sesji, decyduje zmienna środowiskowa OCIO, ustawiana automatycznie przez menedżer środowiska z Rozdziału 17 w momencie budowania kontekstu dla danego showu — artysta nigdy nie wskazuje configu ręcznie, a każde narzędzie odczytujące tę zmienną na starcie dostaje dokładnie tę samą matematykę koloru, niezależnie od tego, na której stacji czy węźle farmy akurat działa.