Renderização realista: quais processos do olho humano e do cérebro devo considerar?


12

A renderização fotorrealista tem o objetivo de renderizar uma imagem como uma câmera real a capturaria. Embora esse já seja um objetivo ambicioso, em certos cenários você pode ir além: renderize uma imagem como o olho humano a capturaria ou mesmo como o ser humano a perceberia. Você pode chamá-lo de renderização visiorrealista ou perceptiorrealista , mas se alguém puder inventar um termo mais atraente (ou me diga que já existe um), eu agradeceria.

Aqui estão alguns exemplos para esclarecer meu ponto. Quando você tira uma foto com uma câmera com um nível de iluminação baixo, você tem uma boa lente ou obtém uma imagem barulhenta. Para um observador humano, a visão escotópica entra em ação e dá origem ao efeito Purkinje (as cores mudam para o azul). Esse efeito depende das informações de luminância do HDR, que são perdidas quando a imagem é exibida em um monitor LDR. Além disso, o cérebro humano pode usar informações detalhadas para 'filtrar' a imagem percebida - informações perdidas em uma renderização final (não estéreo).

Montar uma lista exaustiva é provavelmente um objetivo ilusório. Você poderia sugerir alguns dos efeitos do olho e do cérebro que eu precisaria considerar?


Ouvi dizer uma vez que temos o mesmo ruído que as câmeras porque o ruído é físico e não apenas elétrico. (ou seja, não há tantos fótons, afinal). Mas o cérebro apaga, usando antialiasing temporal, eu acho. (ou seja, vemos com muito movimento borrado à noite).
v.oddou

Não entendi bem a idéia. Se você renderizar uma imagem com pouca luz e simular um efeito Purkinje, ela não parecerá realista, pois o olho humano adicionará seu próprio efeito, não é?
Yves Daoust

1
@YvesDaoust Como a imagem é mostrada em um monitor LDR sob condições de iluminação desconhecidas, provavelmente não. Simplificando, a imagem que você vê na tela ficará mais clara, facilitando a percepção. Se estivéssemos usando um monitor HDR e pudéssemos reproduzir exatamente os valores de luminância de uma cena noturna (e ter uma sala escura), você está certo.
David Kuri

1
Não há nada de errado com o que você está lutando, mas receio que isso pareça um pouco amplo demais para mim, pois há tantos efeitos que precisamos considerar. Eu não poderia escrever isso no formato SE, porque seria realmente errado. No entanto, se você ajustar seu escopo um pouco como "Você pode sugerir alguns dos efeitos que eu precisaria considerar" do que seria mais fácil começar.
Joojaa

@joojaa Alterei as perguntas como você sugeriu, obrigado.
David Kuri

Respostas:


5

você pode ir além: renderize uma imagem como o olho humano a capturaria ou mesmo como o ser humano a perceberia.

Existem duas maneiras de interpretar isso. Eu vou fazer as duas coisas.


Interpretação 1: Renderize uma imagem que pareça perceptivamente realista.

No final do dia, sua imagem ainda precisa ser exibida em algum lugar. Aqui está a chave: você deseja renderizar sua imagem de modo que, quando você * exibir * essa imagem em um dispositivo de exibição específico, produzirá a mesma sensação que a imagem radiométrica original teria produzido.

Veja como descompactar essa ideia.

No mundo real, espectros radiométricos (ou seja, distribuições reais de luz) entram no seu olho e estimulam aproximadamente 1 quatro receptores de luz. Os estímulos dos receptores produzem as sensações de cor que associamos às imagens.

Na renderização, não temos controle arbitrário sobre os espectros que produzimos. Felizmente, como nós (normalmente) temos apenas três cones, cada um dos quais produz apenas um valor escalar, a visão de cores pode ser reproduzida usando exatamente três primárias. A conclusão é que você pode produzir qualquer sensação de cor usando apenas uma combinação linear de três comprimentos de onda (até algumas cores que talvez precisem ser negativas; nesse caso, basta usar diferentes cores primárias).

Você não tem uma escolha de primárias. Quase todos os dispositivos de exibição em cores usam o padrão sRGB, que fornece três primárias (que na verdade geralmente não têm um único comprimento de onda). Tudo bem, porque tudo é abstraído e você não precisa se preocupar.

Para esclarecer a bagunça que é a renderização perceptualmente precisa, eis o algoritmo:

  1. Renderize sua imagem usando cálculos radiométricos corretos. Você rastreia comprimentos de onda individuais de luz ou baldes de comprimentos de onda. Tanto faz. No final, você tem uma imagem que tem uma representação do espectro recebido em todos os pontos.
  2. Em cada pixel, você pega o espectro renderizado e o converte no espaço de cores CIE XYZ . Isso funciona para integrar o produto do espectro às funções padrão de observador (consulte a definição CIE XYZ) .
  3. Isso produz três valores escalares, que são as cores CIE XYZ.
  4. Use uma transformação de matriz para converter isso em RGB linear e, a partir daí, use uma transformação linear / de potência para converter RGB linear em sRGB .
  5. Converta do ponto flutuante para o uint8 e salve, fixando valores fora do intervalo (o monitor não pode representá-los).
  6. Envie os pixels uint8 para o buffer de moldura.
  7. A tela pega as cores sRGB, faz a inversão para produzir três primárias de intensidades particulares. Cada um dimensiona a saída de qualquer elemento de imagem pelo qual ele é responsável. Os elementos da imagem acendem, produzindo um espectro. Esse espectro será (espero) um metâmero para o espectro original que você renderizou.
  8. Você percebe o espectro como teria percebido o espectro renderizado.

Interpretação 2: Tentativa de simular os dados finais que o olho humano pode receber para fins de visualização ou compensação para exibições de LDR.

Este tem um significado menos útil, eu acho. Essencialmente, você está tentando produzir uma imagem que ajusta a maneira como o cérebro a percebe por diversão / lucro.

Por exemplo, houve um artigo na SIGGRAPH este ano em que eles simularam imagens posteriores e redução de cores para fazer com que as imagens pareçam perceptualmente diferentes. Obviamente, a única razão pela qual eles fazem isso é porque os monitores com os quais trabalhamos são todos de baixo alcance dinâmico (LDR). O objetivo é simular os efeitos que alguém pode ver se exposto a uma exibição real de alta faixa dinâmica (HDR) como dados de imagem reais.

Na prática, isso acaba não funcionando muito bem. Para imagens posteriores, por exemplo, vemos imagens posteriores devido a um estímulo muito brilhante que esgota as células coloridas. Se você tentar estimular o efeito com uma pós-imagem falsa, pode parecer um pouco semelhante - mas como é um mecanismo completamente diferente, não é muito convincente.

Esse tipo de gráfico é realmente pouco explorado na literatura, se você quiser tentar. O artigo mencionado é um exemplo das abordagens mais ou menos avançadas que temos. Eu acho que o consenso atual, no entanto, é que não vale a pena tentar simular (pelo menos nesse momento), já que na melhor das hipóteses você apenas aproximaria os efeitos reais da visão substituindo os diferentes, e que isso realmente não trabalhos.


1 Rod + 3 * cones, o caso usual. Aproximado, porque os seres humanos podem ter até zero receptores de luz funcionais até um máximo de sete conjeturados (sendo o mais alto já observado cinco).


Obrigado pela sua resposta. Eu considero incompleto embora. Sua afirmação da Interpretação 1 "Você percebe o espectro como teria percebido o espectro processado" está indiscutivelmente errada. Ao perceber o espectro real , surgem efeitos que não ocorrem ao usar a conversão que você descreveu (por exemplo, você teria que usar um observador escotópico padrão em condições de baixa iluminação, como mencionado em Jameson, Hurvich: Visual Psychophysics). O que você descreveu é a idéia de renderização espectral. Interpretação 2 é sobre o que quero aprender mais. O artigo será um bom começo, obrigado por isso.
David Kuri

4

Quando se trata de percepção, há também a questão do que estamos quase cegos (em termos de propriedades ou artefatos) e do que reforçamos a percepção.

Por exemplo, quanto ao som, você tem contraste ou frequências que o tornam menos ou menos ciente de outros conteúdos (um artigo antigo do SIGGRAPH ilustra como a textura pode mascarar a resolução da malha), além de todos os aspectos do tempo (pesquise no Google por "mudar a cegueira"). Da mesma forma, detalhes de superfície, normais e BRDF podem ou não ser vistos, dependendo dos valores e valores relativos.

Além disso, como nosso sistema perceptivo tende a se adaptar local e globalmente, para valores de baixa frequência, é importante ter máximos e mínimos nos lugares certos, mas seu valor exato não será realmente percebido.

Às vezes, a cognição pode estar presente, como você permite muitos erros nas nuvens e nas árvores, mas certamente menos nos rostos humanos. (Às vezes, você pode fazer o downgrade para estatísticas do parâmetro para uma determinada categoria.)

É por isso que prefiro usar a palavra "plausível" em vez de "foto-realista".

Por outro lado, somos ultra-sensíveis a artefatos, como pixels falsos ou pixels trêmulos, ultra-sensíveis a correlações como frentes de erro de apenas 1 nível de cinza, padrões indesejados como Moiré, alias ou aleatório incorreto etc.

A propósito, é uma das razões pelas quais soluções baseadas em otimização que somam tudo em uma energia simples podem ser uma péssima idéia, falando perceptivamente, pois em todas as situações paradoxais, isso pode ser propenso à concentração de erros em linhas ou pontos. Pela mesma razão, as pessoas com iluminação global no início ficaram realmente desapontadas com o fato de as soluções exatas de energia serem menos aceitas do que as sombras aproximadas com suavização de serrilhado (e depois vieram do quad-tree baseado nos métodos adaptativos baseados em malha).

Uma visão geral (bastante geral) sobre a percepção gráfica pode ser encontrada neste curso da SigAsia'11 sobre "Percepção em gráficos, visualização, ambientes virtuais e animação"

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.