Gamma e lineare¶
Ora, la situazione di cui parliamo quando trattiamo di teoria è quella che chiameremmo “linear”. Ciascun incremento della luminosità ha lo stesso valore. Gli occhi umani non lo percepiscono in modo lineare. Troviamo più facile, piuttosto, distinguere tra grigi più scuri che non tra grigi più chiari.
Dato che gli utilizzatori dei computer sono umani, è stato fatto in modo che i computer diano più spazio ai valori più scuri all’interno del sistema di coordinate dell’immagine. Chiamiamo questo “codifica di gamma” perché si applica una funzione di gamma alla TRC, o funzione di trasferimento di un’immagine. La TRC, che in questo caso è la «curva di risposta del tono» (Tone Response Curve), o «curva di riproduzione del tono» (Tone Reproduction Curve), o ancora funzione di «trasferimento» (perché gli specialisti di gestione dei colori odiano loro stessi), dice al tuo computer o alla tua stampante quanto colore corrisponde a un certo valore.
La tabella seguente mostra come un sacco di spazio sia utilizzato dai valori più chiari in uno spazio lineare rispetto alla TRC sRGB predefinita dei nostri moderni computer e ad altre TRC disponibili nei nostri profili riportati:
Se osservi la lineare delle TRC Rec. 709 puoi notare proprio un salto tra le sfumature più scure e quelle più chiare, mentre la TRC Lab L* o quella sRGB sembrano persino più distanziate. Ciò deriva dalla sensibilità dei nostri occhi ai valori più scuri. Questo significa anche che, se non abbiamo sufficiente profondità di bit, un’immagine in uno spazio lineare apparirà con un brutto effetto di bande (banding). Ecco perché quando creiamo immagini per la visualizzazione in un schermo utilizziamo sempre qualcosa di simile a TRC Lab L*, sRGB o Gamma 2.2 TRC per codificare l’immagine.
Questa modifica per attribuire più spazio ai valori più scuri porta, però, a calcoli instabili durante la miscelazione dei colori.
Possiamo osservare questo fenomeno nel seguente esperimento:
Cerchi colorati, mezzo sfuocati. In un ambiente con correzione di gamma, ciò restituisce uno strano bordo nero. In un ambiente lineare restituisce una sfumatura piacevole.
Questo vale anche per il pennello Sfumino a colori di Krita:
Cosa succede «dietro le quinte»¶
Immagina di voler miscelare rosso e verde.
Per prima cosa abbiamo bisogno delle coordinate del rosso e del verde all’interno del modello di colore dello spazio dei colori. Che dovrebbe essere…
Colore |
Rosso |
Verde |
Blu |
---|---|---|---|
Rosso |
1,0 |
0,0 |
0,0 |
Verde |
0,0 |
1,0 |
0,0 |
Quindi facciamo la media di queste tre coordinate sulle tre miscelazioni:
Rosso |
Mix1 |
Mix2 |
Mix3 |
Verde |
|
---|---|---|---|---|---|
Rosso |
1,0 |
0,75 |
0,5 |
0,25 |
0,0 |
Verde |
0,0 |
0,25 |
0,5 |
0,75 |
1,0 |
Blu |
0,0 |
0,0 |
0,0 |
0,0 |
0,0 |
Ma per capire come questi colori appaiono sullo schermo, inseriamo prima i valori individuali attraverso la TRC dello spazio dei colori con cui stiamo lavorando:
Quindi riempiamo i valori all’interno del punto corretto. Confronta questi valori con quelli della tavola di miscelazione sopra riportata!
E questo è il motivo per cui le miscele di colori sono più chiare nello spazio lineare. Lo spazio lineare è fisicamente più corretto, ma sRGB è più efficiente in termini di spazio, ed è la ragione per la quale molte immagini possiedono una TRC sRGB codificata al loro interno. Nel caso in cui tutto ciò non abbia ancora senso: sRGB restituisce valori ampiamente più scuri dello spazio lineare per le medesime coordinate.
Dunque TRC differenti restituiscono miscelazioni diverse tra i colori. Nell’esempio che segue, ogni gruppo di sfumature è una miscela che utilizza, nell’ordine: TRC lineare, TRC sRGB e TRC Lab L*.
Ti starai chiedendo: come attivo questa opzione? La trovo da qualche parte nelle impostazioni? La risposta è che abbiamo diversi profili ICC utilizzabili per questo tipo di lavoro:
scRGB (lineare)
Tutti i profili «elle» che finiscono con «g10», tipo sRGB-elle-v2-g10.icc.
Infatti, in tutti i profili «elle» l’ultimo numero indica la gamma. 1,0 è lineare, più alto è con correzione di gamma e «srgbtrc» è una speciale correzione di gamma per il profilo sRGB originale.
Se usi il navigatore dello spazio dei colori, puoi definire la TRC dalla «gamma stimata» (se è 1,0 è lineare), oppure dall’oggetto TRC in Krita 3.0, che appare esattamente come i grafici delle curve sopra riportati.
Anche se non dipingi molto ma crei, per esempio, trame per videogiochi o rendering, l’uso dello spazio lineare è molto utile e aumenterà un pochino la velocità del motore di resa in quanto non dovrà convertire le immagini per proprio conto.
L’aspetto negativo dello spazio lineare è che, ovviamente, il bianco sembra sopraffatto quando è miscelato col nero, poiché in uno spazio lineare i grigi chiari hanno più spazio. Sebbene lo spazio lineare sia fisicamente corretto e una manna quando lavori con motori di resa che seguono le leggi della fisica per videogiochi e ray tracing, in fondo Krita è uno strumento e, se al suo posto avrai preferito la miscelazione scura della TRC sRGB, nessuno ti condannerà.