Tonabbildung und Augenanpassung - blasse Farben und dunkleres Bild

9

Ich versuche, Tone Mapping zusammen mit Augenanpassung und HDR zu implementieren. Eigentlich habe ich das schon implementiert, aber ich bin mit dem Ergebnis nicht zufrieden und ich denke, dass ich etwas falsch gemacht habe.

Mein endgültiges Bild (vor der Nachbearbeitung) speichere ich in halber Float-Textur. Ich habe auch 2 Hilfstexturen. Die erste speichert die logarithmische Luminanz und die durchschnittliche, minimale und maximale Farbe in der letzten Mip-Map. Der zweite speichert den Anpassungswert, der wie folgt berechnet wird:

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

Dabei ist prevLum der vorherige Anpassungswert (Größe dieser Textur ist 1x1). Die Protokollluminanztextur ist im R8B8G8-Format und die zweite ist R8. In Tutorials habe ich gesehen, dass Half Float-Texturen verwendet werden, aber in meinem Fall habe ich zu helle Bilder (fast weiß).

Im letzten Postprozess-Shader verwende ich alle diese Werte, um mithilfe dieses Codes eine Augenanpassung und Tonzuordnung zu erhalten:

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);

Und hier sind meine Ergebnisse:

  • Augenanpassung und Tonzuordnung aktiviert Augenanpassung und Tonabbildung
  • nur Augenanpassung Augenanpassung
  • Nur Tonzuordnung Tonzuordnung
  • alles aus aus

Wie Sie sehen können, wenn die Tonzuordnung aktiviert ist, ist die Hasenfarbe blasser. Und wenn die Augenanpassung aktiviert ist, ist das endgültige Bild viel dunkler. Könnte mir jemand erklären, was das verursachen könnte, weil ich denke, dass hier etwas nicht stimmt. Vielleicht ist es etwas mit Farbräumen, die ich nicht gut verstehe? Oder mit Blüte, die vor der Tonabbildung und Augenanpassung angewendet wird?

Ich habe auch ein anderes seltsames Verhalten mit Augenanpassung. Wenn ich auf dunkle Bereiche schaue, wird der Hintergrund (Himmel) heller. Es ist in Ordnung, aber es passiert immer, wenn sich die Mitte der Kamera im schwarzen Bereich befindet (egal wie weit die Kamera von diesem Bereich entfernt ist).

Ich stütze mich auf die Implementierung in Projekten auf diesen Seiten: John Chapman , Nutty Software

Harry
quelle
Zunächst sollten Sie versuchen, die Blüte zu deaktivieren und nur mit dem arbeiten, was unbedingt erforderlich ist. Auch wenn die Tonzuordnung dazu führt, dass Ihr Weiß dunkler wird, bedeutet dies wahrscheinlich, dass es nicht im Bereich von 0 bis 1 abgebildet wird, und Sie sollten dies entweder ändern oder Ihre Beleuchtung entsprechend anpassen.
Akaltar
Gute Arbeit, haben Sie einen Link zu Ihrem Projekt?
Danijar
Danke. Derzeit habe ich keinen Link. Aber ich werde einige Videos auf YouTube oder in der EXE-Datei veröffentlichen, wenn ich meine Masterarbeit abgeschlossen habe.
Harry

Antworten:

1

Sie können nur keine Blüte, Unschärfe oder Schärfentiefe der Tonkarte zuordnen.

Diese Effekte kommen zu allen anderen hinzu. Versuchen Sie auch mit den Werten zu experimentieren.

r3aktormk
quelle
Danke, ich werde es mir genauer ansehen, wenn ich etwas Zeit finde.
Harry