Ainda é importante levar em consideração a gama?

17

Monitores diferentes (incluindo telas de celular) ainda usam funções gama significativamente diferentes ao exibir imagens coloridas? Existe uma maneira padronizada de representar cores que podem ser traduzidas de acordo com a gama do monitor ou todas elas são suficientemente semelhantes para impedir a necessidade disso atualmente?

Trichoplax
fonte
5
Eu diria que este post está no tópico. Parece relacionar fortemente a GPU Gems 3: Capítulo 24. A Importância de Ser Linear http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html
Alan Wolfe
5
Se algo está no tópico em outro lugar não é relevante para esta decisão. Só precisamos saber se está no tópico aqui .
Trichoplax
1
Estou deliberadamente postando perguntas limítrofes para medir onde fica a fronteira. Aumente o maior número possível de incertezas no Meta.
Trichoplax
3
Ser bem-vindo em outro lugar nunca é um motivo adequado para declarar algo fora de tópico aqui .
Chris diz Reinstate Monica
2
@robobenklein em nenhum lugar do escopo desta pilha afirma que essa pilha é especificamente para gráficos 3D.
Qix

Respostas:

15

Sim, enquanto muitas telas e operações do sistema operacional estão usando uma gama de 2.2, seu resultado de hardware e computação ainda precisa ser corrigido. Existem também meios especiais, como TVs de transmissão que possuem uma gama diferente. Os equipamentos sensores, como as câmeras, são principalmente lineares e, portanto, precisam ser ajustados de acordo. Além disso, o usuário pode definir seu sistema para qualquer gama que desejar.

Na computação gráfica, o principal motivo para explicar a gama é que seu cálculo provavelmente é feito no espaço linear * ou a soma de contribuições de luz se torna desnecessariamente complicada. De qualquer forma, gamma é realmente uma simplificação, seria muito melhor fazer conversões de perfil para perfil, se for possível investir tempo computacional para isso.

Explicação matemática

Isso pode ser mais simples de entender. Seu monitor possui um erro de exibição de que não é problema se seus dados estiverem em conformidade com ; no entanto, se você deseja calcular:g(x)g(x)

a+b+c+d

e , , , , têm o erro de você realmente precisaria calcular.abcdg(x)

g(g1(a)+g1(b)+g1(c)+g1(d))

Você precisaria fazer isso para cada subelemento repetidamente. Portanto, em vez de executar a transformação cada vez que você transforma tudo uma vez em linear e depois volta.

E, finalmente, uma razão artística

Pode parecer melhor com uma gama diferente. Muitos jogos têm um ajuste de gama por esse motivo.

* O pior caso é que você considera seus cálculos lineares, mas não compensa as características de saída não lineares dos monitores.

joojaa
fonte
Já temos látex?
Joojaa
2
Não, mas espero que possamos no futuro . Sinta-se à vontade para adicionar sua resposta como um exemplo de sua necessidade.
Chris diz Reinstate Monica
Se você quiser mostrar como seria sua resposta se tivéssemos o MathJax, para ajudar no caso, use mathurl.com .
Trichoplax
11

Atualmente, o espaço de cores padrão de fato para imagens digitais é o sRGB . sRGB é uma boa suposição padrão se estiver trabalhando com uma tela cujo espaço de cores exato não é conhecido (ou seja, na maioria das telas aleatórias em que alguém pode executar o aplicativo) ou imagens cuja codificação de espaço de cores não é conhecida (ou seja, na maioria dos arquivos de imagem aleatórios que você possa encontrar) .

O padrão sRGB define a cromaticidade CIE das primárias vermelhas, verdes e azuis puras e do ponto branco - em outras palavras, define como essas primárias e brancas devem parecer perceptivamente em relação aos comprimentos de onda puros.

O sRGB também define uma curva gama usada para codificar os valores RGB. A curva gama é a parte com a qual os programadores gráficos geralmente se preocupam, pois precisamos converter cores entre sRGB e linear para fazer a matemática matemática corretamente. Todas as GPUs modernas têm suporte a sRGB embutido: elas podem aplicar automaticamente as transformações gama no hardware ao experimentar uma textura ou gravar um valor de pixel em um destino de renderização.

No que diz respeito aos monitores, com um de alta qualidade, deve ser possível calibrar suas configurações (ou pode ser pré-calibrado) para que sua saída corresponda ao sRGB da maneira mais fiel possível. Caso o próprio monitor não consiga, uma quantidade limitada de correção de cores também pode ser feita na GPU durante a digitalização; existem algumas pequenas tabelas de pesquisa de hardware pelas quais os valores RGB são mapeados antes de serem enviados por fio.

Você também pode encontrar a Rec. 709 , que é o espaço de cores padrão para HDTVs; é muito semelhante ao sRGB, usando as mesmas primárias e ponto branco, mas com uma curva gama ligeiramente diferente. Alguns monitores avançados usam o espaço de cores Adobe RGB , que é um pouco mais amplo que o sRGB; os fotógrafos tendem a gostar deles porque representam mais fielmente como serão as fotos quando impressas. A próxima geração de TVs HDR lançadas (espero) nos próximos anos usará o Rec. 2020 , que possui uma gama enorme e requer 10 ou 12 bits por componente, em vez de 8.

Então, voltando à sua pergunta, se você precisa se preocupar com monitores diferentes com gama diferente: não muito. Para jogos e gráficos gerais de PC, você pode assumir o sRGB e descobrir que, se o usuário realmente se importa com a precisão das cores, ele terá um bom monitor calibrado. Se você estiver produzindo software para fotógrafos ou mídia impressa ou para os padrões de vídeo HDR de última geração, poderá ter que começar a se preocupar com espaços de cores de gama ampla.

Nathan Reed
fonte
Monitores de gama mais ampla também começarão a ser comuns em um futuro próximo. Por exemplo, eu não calibrei para sRGB na minha pior arte, mas o conversor de perfil para perfil faz com que as imagens continuem iguais às da minha máquina de desenvolvimento.
joojaa