Confusione.
C’è un po di confusione riguardo alla premoltiplica delle immagini cgi. Questo problema è influenzato direttamente dal canale di alpha e dallo spazio colore di compositing. Vediamo quindi di fare un po di chiarezza.
Importanza della premoltiplica.
Innazitutto è fondamentale conoscere tutte le fasi matematiche del compositing per capire a fondo cosa succede durante i diversi step di manipolazione. Lavorare senza curare attentamente la premoltiplica crea degli artefatti neri in prossimità dei bordi nel compositing. Spesso potremmo trovarci di fronte a immagini non premoltiplicate con bordi molto seghettati.
Tutti sappiamo che le immagini sono formate da pixel e che questi ultimi tendono a discretizzare la qualità di una immagine visualizzabile. Un algoritmo di sampling effettuato via software discretizza ulteriormente parte delle nostra immagine. Ora immaginiamo di osservare il bordo di una sfera virtuale, chiaramente il sampling dell’alpha channel forma un gradiente che va dal bianco al nero.
Una immagine rgb senza premoltiplica è composta da colori interi saturi. La premoltiplica consiste nel moltiplicare i colori rgb per il canale alpha. Questo processo tende a scurire i pixel con alpha minore di 1 rendendoli totalmente neri dove l’alpha è 0. La premoltiplica è necessaria per avere una immagine finale corretta ma il problema deriva dalla fase di compositing.
Compositing.
Quando una immagine viene importata in un software di compositing la prima cosa da fare è depremoltiplicare l’immagine ( unpremult ), convertire l’immagine in uno spazio colore lineare e rieffettuare la premoltiplica. Questo processo evita di convertire i colori rgb in lineare modificati dal processo di premoltiplica durante il render. Generalmente anche dopo aver convertito l’immagine in uno spazio colore lineare, i pixel otterranno comunque una variazione logaritmica srgb temporanea poichè l’immagine viene visualizzata su un monitor classico.
I software di compositing permettono di ridurre i problemi di premoltiplica già in fase di input. L’immagine importata viene flaggata come premoltiplicata, questo farà capire al software che i colori rgb dovranno essere divisi per l’alpha in modo da riottenere i colori originali.
I pixel premoltiplicati portano con sè una percentuale di background originato durante il render. La percentuale di background è 100 meno la percentuale di alpha ( il bianco mappato a 100 e il nero a 0 ). Ciò vuol dire che se ad esempio andiamo a renderizzare una immagine su sfondo nero, una parte dei pixel periferici avranno tonalità scure dovute al blending tra l’immagine e il background nero.
Il software di compositing nel processo di divisione restituisce la tonalità originale ai pixel. E’ importante non premoltiplicare le immagini su sfondo diverso dal nero poichè il blending del pixel con lo sfondo differente porterebbe ulteriori problematiche. In questo caso bisognerebbe prima sottrarre la percentuale di colore del background per simulare un rendering su sfondo nero e a questo punto dividere per l’alpha per riotterere il colore solido originale.
Nel prossimo articolo vedremo la correzione colore legata alla premoltiplica.