Pintura de Cenas Lineares

Anteriormente referida com pintura HDR e pinturas referentes a Cenas, a Pintura Linear de Cenas está a aplicar a pintura digital num tipo de espaço de cores peculiar. Está a pintar num espaço de cores que é…

  1. Linear - não existe nenhuma codificação do gama, mapeamento de tons ou qualquer outra coisa com os pixels que manipula. (Isto é diferente dos pixels que vê, mas já lá chegaremos)

  2. Vírgula Flutuante - Por isso, 16 bits ou 32 bits de vírgula flutuante por canal.

Estas são as duas características mais importantes. O espaço de cores tem mais algumas propriedades que estas, como o ponto branco, ou mais importante ainda, as colorações que compõem o gamute. Mas existe o ponto em que estas duas podem ser qualquer coisa, desde que o espaço seja linear e a profundidade de cores seja em vírgula flutuante.

Como tal, as Cenas Lineares não são um espaço de cores individual, mas sim um **TIPO* de espaço de cores*. Poderá ter um espaço de cenas lineares que usa as colorações sRGB/Rec.709 ou um que usa o AdobeRGB, ou ainda outro que use a Rec.2020, desde que seja linear e que tenha uma profundidade de cores de vírgula flutuante.

Nota

Se quiser criar imagens para mostrar numa área de desenho HDR, tem de seleccionar o perfil do espaço Rec. 2020 com um gama linear. O perfil predefinido no Krita para tal é o Rec2020-elle-V4-g10.icc.

Estes dois factores existem por uma razão: Para tornar o preto e o branco valores arbitrários. Isto poderá ser um pouco estranho. Mas quando estiver a lidar com fontes de luz, irá lidar com um número massivo de contrastes, e terá de decidir depois qual o branco e o preto que gostaria de ter. Isto é o que a cena representa nas cenas lineares, sendo os valores relevantes únicos por cada cena, como numa cena do mundo real: um campo de flores ao luar, uma cidade ao fim da noite ou uma praia cheia de sol. Irá querer colocar a ênfase correcta sobre os valores de contraste mais importantes, e ser capaz de escolher o que representa o preto e o que é o branco é uma ferramenta bastante poderosa aqui. Afinal de contas, os humanos na vida real conseguem ver muito mais quanto estão habituados ao escuro ou ao Sol; então porque não aplicar isso à forma como concebemos as nossas imagens?

É também por isto que precisa de ser Linear. Os espaços de cores baseados no Gama e nas Tonalidades já estão a escolher qual o contraste que é mais importante para si. Mas para tal, precisam também de escolher o que é o preto e o branco. Os espaços Lineares não assumem nada disto, por isso são muito melhores para quando os deseja escolher você mesmo. Eventualmente irá querer passar a sua imagem através de alguma correcção de gama ou mapeamento de tons, mas só na fase final, depois de ter aplicado os filtros e misturado as cores!

De facto, existe sempre uma espécie de transformação não-destrutiva em curso, enquanto estiver a trabalhar na sua imagem, que inclui o mapeamento de tons. Esta é chamada de transformação de apresentação ou visualização, onde oferecem uma espécie de binóculos para o mundo da sua imagem. Sem ele, o seu computador não consegue mostrar estas cores de forma adequada; ele não sabe como as interpretar correctamente, tornando a imagem demasiado escura. O fornecimento desta transformação e a possibilidade de a configurar é a função principal da gestão de cores.

Entre as diferentes transformações de visualização e apresentação, existe também uma diferença nos tipos. Algumas são bastante inocentes, outras são mais sofisticadas e algumas precisam de ser usadas de certa forma para funcionarem correctamente. A gestão de cores do ICC só consegue oferecer um dado tipo de transformações de visualização, enquanto a gestão de cores do OCIO, na área do LUT, poderão gerar transformações muito mais complexas, facilmente configuráveis e outras opções personalizadas que poderão ser partilhadas entre programas.

../../_images/Krita_scenelinear_cat_01.png

Acima, um exemplo da transformação mais inocente que é fornecida pela passagem do sRGB de cenas lineares para o sRGB normal, e à direita uma transformação mais sofisticada que vai da configuração de OCIO de filme do Blender. Veja a diferença entre as patas. A imagem pertence a Wolthera van Hövell tot Westerflier, Licença: CC-BY-SA

Por outro lado, a transformação e a interpretação das cores da sua imagem é a única coisa que o OCIO consegue fazer, e consegue-o de facto com transformações realmente complexas e de forma realmente rápida. Não compreende qual é o espaço de cores original da sua imagem, não compreende o que é o CMYK e não existe qualquer coisa como um perfil de cores do OCIO. Como tal, terá de mudar para um fluxo de trabalho do ICC se desejar preparar-se para a impressão.

Sim, mas qual é a ideia?

A ideia é tornar as coisas mais simples a longo prazo:

  1. É mais fácil manter as cores saturadas e não-lamacentas num espaço linear.

  2. A profundidade de cor elevada possibilita obter misturas de cores mais suaves.

  3. Os filtros são mais poderosos e geram resultados mais agradáveis neste espaço. É muito mais fácil obter borrões bonitos e resultados do Bokeh.

  4. Os Modos de Mistura, como a Multiplicação ou a Edição, tornam-se de repente magia negra. Isto acontece porque a Cena Linear é o mais próximo que existe do modelo físico (da Física, não de materiais) da cor, onde a multiplicação de cores umas pelas outras é uma forma das formas principais de calcular o efeito da luz.

  5. A combinação da pintura com outros resultados de imagens, como a fotografia ou o desenho baseado na física, é muito mais simples, dado que também trabalham num tipo de espaço de cores como este. Como tal, poderá usar essas imagens como uma referência, com pequenos detalhes, ou criar texturas que lidem bem com um sistema de desenho como estes.

Como tal, as vantagens são cores mais bonitas, resultados dos filtros mais agradáveis, mais controlo e intercâmbio mais fácil com outros métodos.

Ok, mas então porque é que isto não é o futuro?

De uma forma simples, porque embora seja mais fácil a longo prazo, também terá de deixar de usar determinadas ferramentas e mudar de hábitos…

Em particular, existem demasiadas ferramentas que um pintor digital usa e que têm presunções fixas sobre o que é o preto e o branco.

Um problema muito simples mas massivo é o da inversão. A inversão de cores normalmente é feita a nível de código, tendo em em conta a cor branca e subtraindo a cor da qual deseja inverter. É usada em muitos modos de mistura. Mas, em muitos casos, a cor branca está fixa nesses filtros. Não existe nenhuma aplicação aí fora que lhe permita definir a gama de valores com que é feita a inversão, pelo que a mesma se torna inútil. E isso aplica-se também sobre os filtros e modos de mistura que a usam, como por exemplo (mas não só)…

  • Ecrã (inverter+multiplicar+inverter)

  • Sobreposição (ajusta os valores abaixo do valor médio; no sRGB, isso seria o cinzento médio)

  • Desvio de cores (divide a cor inferior por uma inversão da cor superior)

  • Queimadura de cores (inverte a cor inferior e depois divide-a pela cor do topo)

  • Luz forte (uma forma diferente de fazer a sobreposição, incluindo a inversão)

  • Luz suave (usa diversas inversões ao longo do percurso)

Por outro lado, a Multiplicação, o Desvio/Adição Linear (são a mesma coisa), a Subtracção, Divisão, Escurecimento (só comparar os valores dos canais das cores), o Aclaramento (igual) e a Diferença são adequados para uso, desde que o programa que usa não faça nenhum recorte estranho aí.

Outra são os algoritmos de HSL, HSI e HSY. Eles também precisam de assumir algo sobre o valor do topo para permitir a escala para o branco. O HSV não tem esse problema. Por isso, é melhor usar um selector de cores HSV.

Para os modos de mistura que usam o HSY, existe sempre o problema em que tendem a usar de forma fixa os valores do sRGB/Rec. 709, mas noutros casos funcionam sem problemas (e até geram resultados bem mais correctos num espaço linear). Como tal, não são uma boa ideia para usar em espaços de cores de gamute amplo, e devido à presunção sobre o preto e o branco, também são inadequados para pinturas de cenas lineares. Os seguintes modos de mistura usam-nos:

  • Cor

  • Luminosidade

  • Saturação

  • Cor Mais Escura (usa a luminosidade para determinar a cor)

  • Cor Mais Clara (é igual)

E isso é para os modos de mistura. Muitos filtros sofrem de problemas semelhantes e, em algumas aplicações, os filtros não estão ajustados para funcionar com brancos arbitrários.

Falando nos filtros, ao usar a ferramenta de transformação, deverá evitar o uso do “lanczos3”, o qual lhe criará um halo preto estranho sobre os contrastes fortes nas cenas lineares. O filtro de interpolação bi-linear irá funcionar perfeitamente neste caso.

O segundo grande problema é que o preto não parece ficar sempre igual.

Se alguma vez misturou pigmentos, saberá que o preto se poderá sobrepor facilmente às outras cores, pelo que só deverá adicionar o mínimo dos mínimos a uma mistura. Em contraste, o branco fica sujo com grande facilidade.

Num espaço de cores de Cenas Lineares, isto está invertido. O branco agora é muito mais poderoso e o preto fica deslavado com grande facilidade. Isto relaciona-se com a natureza aditiva da teoria da cor digital, a qual se torna mais óbvia quando se estiver a trabalhar em espaços lineares.

Isto torna os rascunhos um pouco diferentes; afinal de tudo, fica realmente difícil criar marcas agora. Para dar a volta a isto, poderá fazer o seguinte:

  • Faça o rascunho sobre um fundo cinzento-médio. Isto é recomendado, de qualquer das formas, já que serve de cenário neutro. Para um espaço linear, um cinzento de 18% ou 22% será um bom tom neutro.

  • Crie um pincel especial que seja mais opaco que os pincéis de rascunhos normais que usam.

  • Ou de forma inversa, faça os rascunhos a branco.

  • Para a pintura, bloqueie as formas com um pincel grande e opaco antes de começar a fazer as suas misturas.

De um modo global, isto é algo que poderá levar algum tempo a habituar-se, mas que acontecera em breve o suficiente.

Finalmente, existe a questão do tamanho.

As imagens de 16 bits de vírgula flutuante são grandes. As imagens a 32 bits por canal ainda são maiores. Isto significa que irão consumir bastante RAM e a pintura e a filtragem serão mais lentas. Isto é algo que se vai corrigindo ao longo dos tempos, mas nem todas as pessoas têm um PC topo-de-gama ainda, pelo que poderá ser algo bloqueante.

Como tal, os problemas são as ferramentas, as expectativas e o tamanho.

Em Resumo

A Pintura de Cenas Lineares está a pintar uma imagem num espaço de cores que é linear e que tem uma profundidade de cor de vírgula flutuante. Isto não assume nada sobre os valores do preto e branco, pelo que só poderá usar ferramentas que não assumam nada sobre os valores do preto e do branco. Tem a vantagem de obter resultados de filtros e misturas de cores mais agradáveis, assim como uma melhor interoperabilidade com outros resultados de cenas lineares.

Para ser capaz de ver uma destas imagens, poderá usar uma transformação da janela, também chamada de conversão da visualização. O que significa que, se quiser finalizar a sua imagem para a Web, poderá criar uma cópia da imagem que passe por uma conversão da visualização ou transformação da janela, a qual poderá ser gravada em PNG, JPEG ou TIFF.

Passar à pintura em si

Agora que cobrimos a teoria, vejamos um fluxo de trabalho para as pinturas de cenas lineares.

Configurar a Área de Desenho

Seleccione uma imagem de 16 bits ou 32 bits. Por omissão, o Krita irá seleccionar um perfil sRGB linear. Se quiser criar imagens para visualização HDR, será necessário que confirme que o perfil seleccionado é o perfil Rec2020-elle-V4-g10.icc. As imagens HDR têm como padrão o gamute Rec. 2020, o qual é muito maior que o sRGB em tamanho, pelo que isto garante que você tem acesso a todas as cores.

Se estiver a trabalhar num monitor sem suporte para HDR, deverá activar o OCIO na Área do LUT.

Tenha em mente tudo o que foi mencionado acima. Nem todos os filtros e nem todos os modos de mistura funcionam. Isto irá melhorar no futuro. Fora isso, tudo o resto fica igual.

Escolher cores realmente brilhantes

A escolha de cores normais é fácil, mas como é que escolhemos as cores realmente brilhantes? Existem três formas de obter acesso a essas cores no Krita:

  1. Reduzindo a exposição na área do LUT. Isto irá aumentar a gama de cores visíveis nos selectores de cores. Poderá até associar combinações de teclas à exposição na configuração da entrada da área de desenho.

  2. Configurando a barra do NITS no Selector de Cores Pequeno para um valor superior a 100.

  3. Ou simplesmente abrindo o selector de cores interno, fazendo duplo-click sobre o botão de cores duplo e escrevendo valores superiores a 1 no campo.

  4. E, finalmente, escolhendo uma cor realmente brilhante de uma imagem que possua esses valores.

Depois pinte. Recomenda-se que crie um conjunto de selectores individuais de cores no canto, pelo menos, até que a nova área da paleta do Krita lhe permita gravar os valores em condições.

Fluxo baseado na iluminação

Deste modo, temos o nosso fluxo de trabalho estabelecido, onde só pintamos os cinzentos da imagem, para que nos possamos focar nos valores da imagem. Poderemos fazer algo com a Pintura de Cenas Lineares.

Onde, com o fluxo baseado no valor, irá pintar a imagem como se tivesse uma escala de tons de cinzento do que pretende pintar, enquanto que num fluxo baseado na iluminação iria pintar como se todos os objectos fossem brancos. O efeito da cor de um objecto poderá ser determinado se multiplicar a sua cor de base com a cor da luz. Como tal, poderia pintar todos os objectos como se fossem brancos, pintar as cores numa camada separada e depois simplesmente usar o modo de mistura por Multiplicação para obter as cores correctas.

../../_images/Krita_scenelinear_cat_02.png

A imagem mais à esquerda é a versão baseada na iluminação e com a camada de cores separada, a do meio tem as duas camadas multiplicadas e a da direita é uma vista baseada na luminosidade. Este gato é um bom exemplo, dado que demonstra porque é que ter as texturas e a iluminação separadas poderá ser interessante.

Poderá até combinar isto com um fluxo baseado no valor, abrindo uma nova janela e configurando o componente como luminosidade. Desta forma, poderemos ver tanto a escala de cinzentos como a versão baseada na iluminação ao lado uma da outra.

As pessoas mais esclarecidas irão reparar que um fluxo de trabalho baseado na iluminação recorda a ideia dos passos de luz e cor nos desenhos 3D. E, de facto, é mais ou menos a mesma coisa, pelo que poderá usar os passos de luz dos desenhos 3D aqui; basta gravá-los como EXR e importá-los como uma camada. É um dos exemplos onde a pintura de cenas lineares simplifica os métodos de combinação.

Finalizar

Quando terminar, irá querer aplica a transformação da visualização que tem usado para a imagem (pelo menos, se quiser publicar o resultado final na Internet)… Isto é chamado de composição do LUT e não é possível ainda no Krita. Como tal, terá de gravar a sua imagem em EXR e abri-la depois no Blender ou no Natron. Depois, no Blender, bastará usar a mesma configuração do OCIO, seleccionar os valores correctos e gravar o resultado como um PNG.

Para gravar imagens HDR, veja a página de Visualização em HDR.

Até poderá usar alguns dos filtros do Blender ou do Natron nesta fase e, ao lidar com outros poderá gravar em EXR, para que os outros possam vê-los.