DODATEK · DFORMAT · YAMLEXT OF · Rozdział 12
Dodatek D / Głębiej: Kolor

Architektura configu OpenColorIO

Rozdział 12 użył configu OCIO jak gotowego narzędzia. Tu rozkładamy go na czynniki pierwsze: colorspace, role, transformy, wyszukiwanie ścieżki.

TL;DR

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.

Etap: Przestrzeń referencyjna jako piasta

N transformów zamiast N razy N

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.

Etap: Role, displays, views

Cztery sekcje, które robią całą robotę

# 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]}
Etap: Skąd narzędzie wie, którego configu użyć

Zmienna OCIO, ustawiana za kulisami

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.