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

atormentar
fonte
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.

r3aktormk
fonte
Obrigado, examinarei mais de perto quando encontrar algum tempo.
Harry