Gama e Linear

Agora, a situação que falamos na teoria é o que seria chamado de “linear”. Cada passo de brilho tem o mesmo valor. Os nossos olhos não têm uma percepção linear. Em vez disso, é para nós mais fácil distinguir entre cinzentos mais escuros do que entre os mais claros.

Dado que os humanos são os utilizadores dos computadores, fez-se com que os computadores dessem mais espaço aos valores escuros no sistema de coordenadas da imagem. Chamamos a isto “codificação do gama”, porque está a aplicar uma função-gama ao TRC ou função de transferência da imagem. O TRC neste caso significa Tone Response Curve (Curva de Resposta das Tonalidades ou Curva de Reprodução das Tonalidades), que indica ao seu computador ou impressora quanta cor corresponde a um dado valor.

../../_images/Pepper_tonecurves.png

Uma das questões mais comuns que as pessoas têm com a gestão de cores do Krita é a atribuição do espaço de cores correcto ao TRC codificado. Em cima, a Pepper ao centro é a correcta, onde o TRC atribuído e a codificação do mesmo são iguais. À esquerda, temos uma Pepper codificada em sRGB, mas com um perfil linear atribuído, e à direita temos uma Pepper codificada com um TRC linear e com um TRC sRGB atribuído. Imagem da Pepper & Carrot.

A seguinte tabela mostra uqe existe bastante espaço usado pelos valores mais claros num espaço linear, em comparação com o TRC predefinido do sRGB dos nossos computadores recentes e e nos outros TRC’s disponíveis com os nossos perfis entregues:

../../_images/trc_gray_gradients.svg

Se olhar para os TRC’s da Rec. 709, poderá ver que existe um grande salto entre os tons mais escuros e os mais claros, enquanto que se olharmos para o TRC Lab L* ou para o do sRGB, aí estarão espaçados de forma mais uniforme. Isto deve-se à sensibilidade dos nossos olhos aos valores mais escuros. Isto também significa que se não tiver profundidade de cores suficiente, uma imagem num espaço linear parecerá que tem algumas bandas feias. É por isso que, quando criamos imagens para ver num ecrã, iremos sempre usar TRC’s do tipo do LAB L*, sRGB ou Gamma 2.2 a usar na codificação dos TRC’s.

Contudo, esta modificação para dar mais espaço aos valores mais escuros gera de facto contas matemáticas com cores mais estranhas quando se misturam as cores.

Podemos ver isto com a seguinte experiência:

../../_images/Krita_2_9_colormanagement_blending_1.png

Esquerda: Círculos coloridos borrados num espaço RGB regular. Direita: Círculos coloridos borrados num espaço linear.

Círculos coloridos semi-borrados. Num ambiente com correcção do gama, isto cria um contorno preto estranho. Num ambiente linear, gera uma graduação correcta.

Isto também se aplica no pincel de manchas a cores do Krita:

../../_images/Krita_2_9_colormanagement_blending_2.png

É isso mesmo, o aspecto “lamacento” das cores é uma queixa comum dos pintores digitais em todo o lado; de facto é um espaço de cores com correcção do gama que está a “destruir” as suas cores. Se esteve a trabalhar no LAB para evitar isto, certifique-se que experimenta um espaço de cores RGB linear.

O que se passa nos bastidores

Imagine que desejamos misturar o vermelho com verde.

Em primeiro lugar, iremos precisar das coordenadas de cores do vermelho e do verde no nosso espaço de cores. Como tal, isso seria…

Cor

Vermelho

Verde

Azul

Vermelho

1,0

0,0

0,0

Verde

0,0

1,0

0,0

Depois iremos misturar essas coordenadas com três misturas:

Vermelho

Mistura1

Mistura2

Mistura3

Verde

Vermelho

1,0

0,75

0,5

0,25

0,0

Verde

0,0

0,25

0,5

0,75

1,0

Azul

0,0

0,0

0,0

0,0

0,0

Mas para descobrir como ficam essas cores no ecrã, são colocados primeiro os valores individuais no TRC do espaço de cores com que trabalhamos:

../../_images/Basicreading3trcsv2.svg

Depois preenchemos os valores no local correcto. Compare estes valores com os da tabela de misturas acima!

../../_images/red_green_mixes_trc.svg

E é por isto que as misturas de cores são mais claras e suaves num espaço linear. O espaço linear é fisicamente mais correcto, mas o sRGB é mais eficiente em termos de espaço, e é por isso que tantas imagens têm um TRC sRGB codificado nelas. No caso de isto ainda não fazer sentido: o sRGB gera valores bastante mais escuros que o espaço linear para as mesmas coordenadas.

Como tal, diferentes TRC’s geram diferentes misturas entre cores. No seguinte exemplo, cada um dos conjuntos de gradientes é, respectivamente uma mistura com TRC linear, uma mistura com o TRC do sRGB e uma mistura com o TRC do LAB L*.

../../_images/3trcsresult.png

Como tal, poderá perguntar: como é que assinalo esta opção? Está algures na configuração? A resposta é que temos diversos perfis ICC que podem ser usados para este tipo de trabalho:

  • scRGB (linear)

  • Todos os perfis “elle” que terminam em “g10”, como o sRGB-elle-v2-g10.icc.

De facto, em todos os perfis “elle”, o último número indica o gama. O 1,0 é o linear, os valores superiores têm correcções de gama e o “srgbtrc” é uma correcção especial do gama para o perfil sRGB original.

Se usar o navegador de espaços de cores, poderá definir o TRC a partir do “gama estimado” (se for igual a 1,0, é linear), ou do elemento do TRC no Krita 3.0, que se parece exactamente com os gráficos das curvas acima.

Mesmo se não pintar muito, mas se criar por exemplo texturas para jogos ou cenários, o uso de um espaço linear é bastante benéfico e irá acelerar um pouco o desenho dos mesmos, já que não terá de converter por si só as imagens.

A desvantagem óbvia do espaço linear é que o branco parece muito menos forte quando o misturar com o preto, porque num espaço linear, os cinzentos claros ocupam mais espaço. Por fim, embora o espaço linear seja fisicamente correcto e seja fácil de trabalhar com ele quando lidar com os sistemas de desenho de jogos e desenho artístico, o Krita é uma ferramenta e ninguém o julgará por preferir a mistura mais escura do TRC do sRGB.