anatomia modułu
W darktable podstawowym elementem przetwarzania jest moduł przetwarzający. Do pełnej edycji surowego pliku potrzebnych jest na ogół kilka takich modułów, działających na zdjęciu wejściowym, z których każdy wykonuje inną operację na danych zdjęcia. Dla osób zaznajomionych z Adobe Photoshop moduły przetwarzające w darktable można porównać do warstwy dostosowania w takim sensie, że oba te elementy tworzą “narastające dostosowanie” zdjęcia na szczycie stosu modyfikacji, dokonanych wcześniej.
W darktable dostępne są również moduły użytkowe, nie są one jednak związane bezpośrednio z przetwarzaniem zdjęcia, a w zamian udostępniają interfejs, służący do zarządzania nimi, nadawania znaczników, eksportu, itd.
Każdy moduł przetwarzający działa niezależnie od innych, ale wszystkie moduły wykonują przetwarzanie w podobny sposób:
-
Otrzymują wejście modułu z ostatniego wykonywanego modułu i wykonują na nim operację w celu stworzenia przetworzonego wyjścia. Ta operacja jest inna dla każdego modułu przetwarzającego.
-
Łączą wejście modułu z przetworzonym wyjściem przy użyciu operatora mieszania w celu stworzenia zmieszanego wyjścia. Jeśli mieszanie nie jest wykonywane, wynik tego kroku jest identyczny, jak przetworzone wyjście.
-
Generują maskę, określającą krycie dla każdego piksela zdjęcia. Krycie wykorzystywane jest później do kontroli siły, z jaką działanie moduły stosowane jest do poszczególnych części obrazu.
Możesz zdefiniować własną maskę, rysując kształty na zdjęciu lub korzystając z właściwości pikseli z wejścia modułu lub przetworzonego wyjścia (zob. maski). Maska może być następnie modyfikowana globalnym ustawieniem krycia, wpływającym identycznie na każdy piksel.
Jeśli nie określisz żadnej maski wektorowej/parametrycznej, wyjście tego etapu przekaże dalej maskę, gdzie każdy piksel ma taką samą wartość krycia (określoną przez ustawienie krycia globalnego). Jeśli nie zdefiniowano krycia (nie dokonujesz mieszania), zostanie przyjęte krycie globalne o wartości 1.0 (inaczej 100%).
-
Mieszają wejście modułu ze zmieszanym wyjściem dla każdego piksela oddzielnie w celu stworzenia maski jako operatora mieszającego i wygenerowania ostatecznego rezultatu. Jeśli krycie maski to 100%, ostatecznym rezultatem dla tego piksela jest zmieszane wyjście. Jeśli krycie maski to 0%, ostatecznym rezultatem dla tego modułu jest wejście modułu. Warianty pośrednie łączą proporcjonalnie zmieszane wyjście oraz wejście modułu. Ostateczny rezultat przekazywany jest do następnego modułu do dalszej obróbki.
Kroki 2 i 3 są opcjonalne i nie są wspierane przez wszystkie moduły. Przykładowo moduł demozaikowania musi zostać zastosowany do całego surowego pliku w celu stworzenia czytelnego obrazu, więc maskowanie i mieszanie wyjścia nie ma tu sensu.
Każdy z powyższych kroków opisany jest szczegółowo w kolejnych sekcjach.