Mapeamento de tons e adaptação dos olhos - cores claras e imagem mais escura


9

Estou tentando implementar o mapeamento de tons junto com a adaptação dos olhos e o HDR. Na verdade, eu já implementei isso, mas não estou satisfeito com o resultado e acho que fiz algo errado.

Minha imagem final (antes do pós-processamento) armazeno na textura half float. Eu também tenho 2 texturas auxiliares. O primeiro armazena a luminância do log e a cor média, mínima e máxima no último mapa mip. O segundo armazena um valor de adaptação que é calculado como:

prevLum + (avgLum - prevLum) * (1.0 - exp2(-adaptionRate))

onde prevLum é o valor de adaptação anterior (o tamanho dessa textura é 1x1). A textura da luminância do log é o formato R8B8G8 e o segundo é o R8. Nos tutoriais, vi que são usadas texturas semi-flutuantes, mas no meu caso, tenho imagens muito brilhantes (quase brancas).

No final do processo de sombreamento, estou usando todos os valores para obter a adaptação dos olhos e o mapeamento de tons usando este código:

float autokey(in float lum) {
    return 1.03 - 2.0 / (2.0 + log10(lum + 1.0));
}

float hejl(in float color) {
    float x = max(0.0, color - 0.004);
    return (x * (A * x + B)) / (x * (A * x + C) + D);
}

float adaptedLum = texture(adaptedLuminance, vec2(0.5)).r;
float exp = exposure * autokey(adaptedLum) / adaptedLum;
result *= exp;

result.xyz=RGB2xyY(result.xyz); // conversion to CIE xyY

result.z = hejl(result.z);

result.xyz=xyY2RGB(result.xyz);

E aqui estão os meus resultados:

  • adaptação ocular e mapeamento de tons ativados adaptação ocular e mapeamento de tons
  • somente adaptação ocular adaptação ocular
  • somente mapeamento de tom mapeamento de tom
  • tudo fora fora

Como você pode ver quando o mapeamento de tons está ativado, a cor do coelho é mais pálida. E quando a adaptação ocular é ativada, a imagem final fica muito mais escura. Alguém poderia me explicar o que poderia causar isso, porque acho que algo aqui está errado. Talvez seja algo com espaços de cores que eu não entendo bem? Ou com a flor aplicada antes do mapeamento de tom e adaptação dos olhos?

Eu também tenho outro comportamento estranho com a adaptação dos olhos. Quando olho para áreas escuras, o fundo (céu) fica mais brilhante. Tudo bem, mas sempre acontece quando o centro da câmera está na área preta (não importa a que distância a câmera esteja desta área).

Baseei-me na implementação incluída nos projetos desta página: John Chapman , Nutty Software


Para começar, você deve tentar desativar o bloom e trabalhar apenas com o que é absolutamente necessário. Além disso, se o mapeamento de tons fizer com que seu branco fique mais escuro, provavelmente significa que ele não mapeia da faixa de 0 a 1, e você deve alterar isso ou adaptar a iluminação de acordo.
akaltar

Bom trabalho, você tem um link para o seu projeto?
31515 danijar

Obrigado. Atualmente não tenho nenhum link. Mas vou publicar alguns vídeos no YouTube ou no arquivo .exe quando terminar a minha tese de mestrado.
Harry

Respostas:


1

Você simplesmente não tonifica a floração, o desfoque ou a profundidade de campo.

Esses efeitos vêm em cima de todos os outros. Tente experimentar os valores também.


Obrigado, examinarei mais de perto quando encontrar algum tempo.
Harry
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.