Fluxos de trabalho lineares e gerenciamento de cores

Fluxos de trabalho lineares são uma abordagem de sombreamento, iluminação e renderização que oferece muitas vantagens sobre o trabalho diretamente com valores de vídeo não lineares, como sRGB. O gerenciamento de cores permite um fluxo de trabalho linear ao converter corretamente as cores entre os diferentes espaços de cores usados para entrada, renderização, exibição e saída.

Os espaços de cores especificam uma cor sem ambiguidade em termos dos componentes principais, e também o ponto branco, a codificação e outros atributos. Por exemplo, os valores primários vermelho, verde e azul usados para uma imagem sRGB em uma página da Web são diferentes dos usados por um projetor de cinema digital P3, e as condições de luz circundante para visualização na Web e no cinema também são diferentes. No entanto, é possível converter com precisão as cores para exibição em um monitor ou em um projetor padrão, pois os espaços de cores sRGB e ICD-P3 são bem caracterizados. No entanto, para interpretar corretamente uma trinca RGB como (0.5, 0.25. 0.25) ), seu espaço de cor desejado deve ser conhecido.

Os agentes de renderização modernos imitam a forma como a transmissão, a absorção, a reflexão e a refração da luz funcionam no mundo real. As luzes em uma cena 3D devem, portanto, ter uma correspondência muito próxima à iluminação real, seja ela externa ou em estúdio, em que os valores de cor são diretamente proporcionais à quantidade de energia da luz; resumindo, isso é chamado de espaço de trabalho linear de cena referenciada ou linear da cena. Em tal espaço de cor, não há brilho máximo: (1.0, 1.0, 1.0) é a cor considerada como "branca" por um observador típico que esteja totalmente adaptado à iluminação, mas as origens de luz e reflexões especulares podem ser muito mais brilhantes.

No entanto, os dispositivos de exibição têm um brilho máximo que também é indicado por (1.0, 1.0, 1.0) ou (255, 255, 255) quando expresso como valor inteiro de 8 bits. Mesmo em um dispositivo de alto alcance dinâmico, esse valor mais brilhante sequer se aproxima do que pode ocorrer no mundo real. Isso torna necessário mapear os valores de faixa dinâmica alta da cena para uma faixa mais limitada para exibição. O simples dimensionamento dos valores de cor para baixo, para ajustar a faixa de exibição, fornece uma imagem desagradável e com aparência "turva". É necessário um mapa de tons com resposta fotográfica.

Além de um alto intervalo dinâmico, também é geralmente desejável usar um espaço de cor com gama amplo para renderização. Isso permite representar mais cores e é particularmente importante no caso de conteúdo para cinema digital e TV HDR, que tem faixas mais largas que sRGB e HDTV (Rec. 709).

O gerenciamento de cores envolve a aplicação das transformações apropriadas para conversão entre os espaços de cores, conforme necessário. Essas transformações são aplicadas em pontos específicos ao longo do processo de criação:

Entradas de imagem

A maneira correta de lidar com uma imagem de entrada, como uma textura, por exemplo, depende de como essa imagem é usada na cena. Isso também depende da própria imagem, inclusive seu espaço de cor atual, sua codificação e seu estado de imagem (se seus valores de cor são proporcionais aos valores de luminosidade referenciados pela cena ou pela exibição).

As imagens usadas para dados não coloridos não devem ter nenhuma transformação aplicada. Isso inclui mapas de saliência, normal e de deslocamento, além de mapas usados para outros atributos, como translucidez, especularidade, reflexibilidade e assim por diante.

Para imagens que representam valores de cor, há diversas possibilidades:
  • A maioria das imagens de faixa dinâmica alta já é linear da cena, inclusive OpenEXR, HDR e alguns arquivos TIFF. Talvez eles não exijam linearização de escala de tom, mas podem exigir uma transformação para conversão das cores primárias e do ponto branco do espaço de entrada naqueles do espaço de renderização, caso sejam diferentes.
  • As imagens capturadas com um dispositivo específico devem ter aplicada uma transformação de entrada específica para esse dispositivo. Isso inclui filmagens de câmeras de cinema digital e chapas de filme de scanners calibrados com ADX. Outros tipos de chapas de filme digitalizadas normalmente exigem alguma forma de transformação log-para-linear.
  • As imagens que foram preparadas para exibição devem ter o gama removido. Isso inclui muitos formatos gráficos comuns, inclusive arquivos JPEG, PNG, BMP, Targa e alguns arquivos TIFF. No entanto, é muito importante observar que, após a remoção do gama, os valores de cor são linearmente proporcionais à luminosidade da exibição, e não da cena. Isso funciona bem para texturas, pois significa que não há valores acima de 1.0, o que é correto para imagens usadas para cor base, transparência e outros mapas de cores.

Visualização

Para exibir uma imagem linear da cena, ela deve ser convertida para visualização. Essa transformação normalmente tem duas etapas:
  • Na primeira, os valores de referência de cena são convertidos em um espaço de referência de exibição. Por exemplo, isso pode envolver um mapa de tom para converter cores de um alto intervalo dinâmico para o intervalo [0.0] e uma alteração de cores primárias.

  • A segunda etapa converte os valores para de uma exibição específica. Isso pode envolver outra alteração de cores primárias, gama apropriado e codificação como valores inteiros adequados.

Normalmente, as imagens são visualizadas em condições de iluminação muito mais opacas do que uma cena externa ou um set de filmagem com muita luz; por isso, os mapas de tons são usados para compactar valores de faixa dinâmica alta no intervalo de exibição com uma resposta fotográfica que produz uma imagem agradável. Os mapas de tom normalmente aplicam uma curva em forma de S que aumenta o contraste e a saturação para compensar a faixa dinâmica inferior e condições de visualização mais opacas. Essa curva também mapeia um valor de 1.0 no espaço de renderização para um valor menor, para permitir que o espaço de exibição tenha realces mais brilhantes.

A simples aplicação de gama não é suficiente para preparar completamente uma imagem linear da cena para exibição. Sem um mapa de tons, os valores de cores acima de 1.0 permanecem dessa forma e são cortados pelo monitor.

Saídas renderizadas

A aplicação ou não de uma transformação à saída renderizada depende de como esses arquivos serão usados.
  • Se os arquivos forem processados posteriormente, devem ser deixados no espaço de renderização linear da cena. Isso disponibiliza toda a faixa dinâmica para operações como composição e nivelamento. No entanto, o mapa de tons e a transformação de exibição ainda são necessários para visualizar esses arquivos em um monitor, para que não pareçam muito escuros.
  • Se os arquivos forem exibidos diretamente (por exemplo, publicados em uma página da Web), o mapa de tons e a codificação de exibição deverão ser consolidados.
  • Em algumas situações, pode ser preciso aplicar uma transformação diferente para converter os arquivos em um espaço específico.