Ich werde einige Richtlinien hinzufügen, um den Lesern das Verständnis von Benedikt Bitterlis Aussage "Stellen Sie sicher, dass Ihre Bilder durch Gamma korrigiert werden" zu erleichtern.
Gammakorrekturbilder bedeuten nicht, dass am Ende ein Leistungsfilter angewendet wird. Es bedeutet, während aller Berechnungen im linearen Raum zu arbeiten und schließlich die Ausgabe in den Gammaraum zu codieren.
Der Gammaraum ist der Farbraum, in den alle Anzeigemaschinen dieses Alters erwarten, dass ihnen RGB-Werte präsentiert werden.
Der lineare Raum im Gegensatz dazu ist die Tatsache, mit Werten zu arbeiten, die proportional zu den physikalischen Emissionen sind.
Wenn der Künstler die Werte der Albedofarben der Weltoberflächen und die Farben der Lichter der Szene bearbeitet, tut er dies im Gammaraum, da keine Editionssoftware es wagt, die Eingaben des Benutzers zu ändern und nur zu speichern. ist. Der Künstler betrachtete also etwas, das für ihn gut aussah, während es im Gammaraum aufbewahrt wurde.
Der erste Schritt aller Rendering-Engines sollte daher darin bestehen, zuerst alle vom Menschen bearbeiteten Eingaben in den linearen Raum zu konvertieren. In Ihrem Fall bedeutet dies alle Kugelfarben und Emissionswerte.
Anschließend führen Sie Ihr übliches Raytracing, Ihre Brdf-Auswertung und Ihre Monte-Carlo-Probenahme in HDR durch, wenn möglich, unter Verwendung von float32
Komponenten. (funktioniert normalerweise gut mit 128-Bit-SIMD als r,g,b,a
Vektoren).
Schließlich filtern Sie das HDR-Bild nach dem von Ihnen gewählten Belichtungswert, heuristisch oder manuell. Diese Operation könnte sehr einfach sein wie a clamp
. Und dann und nur dann codieren Sie das endgültige Bild in den Gammaraum.
Die Basis ist: Ein Monitor nimmt einen Eingabewert x und wendet die Formel x ^ 2.2 an, um die physikalische Strahlung auf dem Ausgabepixel zu erzeugen.
Somit lauten die Umrechnungsformeln wie folgt:
linear zu Gamma: x ^ (1 / 2.2)
Gamma zu linear: x ^ 2.2
Bitte beachten Sie als Trivia, dass der sRGB-Speicher eine komplexe Formel, a if
und einen gewissen Versatz hat. Aber von weitem gesehen kommt die Kurve dem einfachen Gamma sehr nahe.
Sind Sie sicher, dass Ihre Stichprobe fair ist?
Sie könnten zu viel in die Richtungen abtasten, die mehr Strahlen privilegieren, um den Himmel zu erreichen. Überprüfen Sie die Gleichmäßigkeit Ihrer Probenahme. Sie sagten, Sie verwenden einen Gaußschen, der mir so vorkommt, als würden Sie nach Voreingenommenheit fragen. Verwenden Sie einfach die klassische Lambert-Verteilungsstichprobe: https://pathtracing.wordpress.com/. Auf
diese Weise reduzieren Sie die Anzahl der Stichproben, die erforderlich sind, um ein Varianzäquivalent mit einer rein einheitlichen Kugel zu erhalten. Außerdem speichern Sie die Kosinusauswertung, da sie in die Verteilung eingebettet ist.
Wenn Ihre Kugeln wirklich Spiegel sind und Ihr GI angeblich tatsächlich funktioniert, sammelt er reflektierte Energie auf dem Boden und kompensiert so Ihre Schatten vor Okklusion. Ich erwarte in solchen Fällen sogar mehr Energie als Verdunkelung.