Verrechnungsmodi in Photoshop – Teil 3

Weiches Licht (Soft Light)

Soft Light ist die Verrechnungsmethode, über die man am häufigsten Fehlerhaftes liest. Was auch daran liegt, dass verschiedene Hersteller die Methode unterschiedlich definieren und so zur Verwirrung beitragen. Ich habe leider noch keine Begründungen für die Wahl der jeweiligen Berechnungen gefunden.

Photoshop

Mein Photoshop CC verwendet die folgende Formel (wie beschrieben in der PDF Referenzdokumentation):

f(a,b) = \left\{ \begin{array}{lr}(1-a)ab + a(1-(1-a)(1-b)) & \text{f\"ur } b < {1/2}\\a+(2b-1)(\sqrt{a}-a) & \text{f\"ur } b \geq {1/2} \land a > {1/4}\\a+(2b-1)(((16a-12)a+4)a-a) & \text{f\"ur } b \geq {1/2} \land a \leq {1/4}\end{array} \right.

Ich konnte das prüfen, indem ich mittels eines kleinen Postscript-Programms (vielen Dank für die Unterstützung an meinen Vater, Dieter Zawischa) ein Quadrat mit dem Ergebnis der Verrechnung zweier linearer Verläufe von Schwarz zu Weiß füllte und das dann verglich mit dem, was Postscript bei der gleichen Verrechnung produziert (Details dazu siehe hier).

Die beiden Ausgangsbilder:

Verlauf A

Bild A – Verlauf horizontal

Verlauf B

Bild B – Verlauf vertikal

Das Ergebnis der Soft-Light Verrechnung aus dem Postscript-Programm

Soft Light  berechnet

Soft Light berechnet

und das aus Photoshop

Photoshop Soft Light

Photoshop Soft Light

Man kann durch Differenzbildung leicht prüfen, dass die beiden Bilder (bis auf kleine Ungenauigkeiten durch begrenzte Auflösung) identisch sind.

Interessant ist eine Betrachtung des Helligkeitsverlaufs für verschiedene feste b-Werte:

Gamma-Kurven-PDFWie man sieht, ergibt sich für b=0,5 die Diagonale, also eine lineare Übersetzung von a in Helligkeit. Wählt man für das B-Bild eine einheitliche 50% graue Fläche, bleibt das A-Bild unverändert. Das kann man als Ziel für alle betrachteten Formeln annehmen, 50% Grau als B soll neutral sein.

Für b=0 ergibt sich die vereinfachte Formel:

f(a,b) = a(1-(1-a)) = {a}^{2}.

Das ist genau die Formel für eine ?-Korrektur (Gamma-Korrektur) mit ?=2. Die Kurve für b=1 sieht der Quadratwurzelfunktion (das wäre ?=0,5) ähnlich, stimmt aber wegen der Korrektur für kleine a nicht damit überein.

Was mich interessiert ist, wie der Verlauf der Abweichung von der Diagonalen

f(a,b) = a

für verschiedene b ausieht. Also zeichne ich die Kurven für

f(a,b) = \left\{ \begin{array}{lr}(1-a)ab - a(1-a)(1-b) & \text{f\"ur } b < {1/2}\\(2b-1)(\sqrt{a}-a) & \text{f\"ur } b \geq {1/2} \land a > {1/4}\\(2b-1)(((16a-12)a+4)a-a) & \text{f\"ur } b \geq {1/2} \land a \leq {1/4}\end{array} \right.

Delta-Kurven-PDFDie Asymmmetrie für b > 0,5 ist augenfällig.

Varianten der Photoshop-Formel

Verwendet man die folgende Formel, die man auch gelegentlich als angebliche Photoshop-Formel findet, ergibt sich ein etwas anderes Bild. Hier erhält man für b=1 eine ?=0,5 Korrektur.

f(a,b) = \left\{ \begin{array}{lr}(1-a)ab + a(1-(1-a)(1-b)) & \text{f\"ur } b < {1/2}\\a+(2b-1)(\sqrt{a}-a) & \text{f\"ur } b \geq {1/2}\end{array} \right.

Ohne "Korrektur" für kleine a

Ohne „Korrektur“ für kleine a

Bei genauer Betrachtung sieht man, dass die obere linke Ecke etwas heller ist.

Die Kurven dazu sehen so aus:

Gamma-Kurven-PDF-2Auch das ist nicht symmetrisch an der Diagonalen. Gleiche b-Abweichungen von 0,5 erzeugen abhängig von ihrer Richtung unterschiedlich starke Effekte. Das sieht man wieder deutlich nach Subtraktion von a.

Delta-Kurven-PDF-2

Bei dieser Art der Darstellung sieht man deutlich, wie stark die Veränderung bei b>0 für kleine a ausfällt. Das könnte der Grund dafür sein, dass Adobe mit der speziellen Regelung für kleine a ausgleicht.

Man könnte jedoch auch nur den ersten Teil der Formel verwenden, also dies:

f(a,b) = (1-a)ab + a(1-(1-a)(1-b))

Nur der erste Teil

Nur der erste Teil

Auch ein schönes, sehr weiches Ergebnis, linear in b. Die Linearität in b sieht man auch in den Kurven:

Gamma-Kurven-PDF-1Das ist zwar nicht mehr symmetrisch an der Diagonalen, aber dafür ist der Abstand zwischen den Kurven für festes a immer gleich.

Delta-Kurven-PDF-1Die Symmetrie ist gegeben, sieht erst mal sehr plausibel aus. Man erreicht für b=1 allerdings nicht annähernd ?=0,5.

Illusions parametrische Gamma-Korrektur

Einen völlig anderen Vorschlag für Soft Light findet man bei illusions.hu. Ausgehend von der Idee der durch b steuerbaren ?-Korrektur wird verwendet:

f(a,b) = a^{2^{(1-2b)}}

Das Verrechnungsergebnis ist ansprechend:

Illusions.hu Gamma-Korrektur

Illusions.hu Gamma-Korrektur

Die Kurven sehen auf den ersten Blick fast genau so aus wie die der Original-Adobe-Formel.

Delta-Kurven-IllusionsBei genauerem Hinsehen sind die Übergänge natürlich viel gleichmäßiger.

Spiegeleien

Ich hätte auch noch einen Vorschlag, entstanden aus der Frage, ob der zweite Teil der Photoshop-Formel vielleicht durch Spiegelung des ersten Teils an der Diagonale hervorgegangen ist. Ist er nicht. Man erreicht diese Spiegelung durch Auflösen des ersten Teils nach a und Ersetzen von b durch (1-b‘). Letzteres, weil die Kurve für b > 0,5 immer der Spiegel einer mit b’=1-b sein soll.

f(a,b) = \left\{ \begin{array}{lr}(1-a)ab + a(1-(1-a)(1-b)) & \text{f\"ur } b < {1/2}\\ \frac{1-b}{1-2b}+\sqrt{\frac{(1-b)^2}{(2b-1)^2}+\frac{a}{2b-1}}& \text{f\"ur } b \geq {1/2}\end{array} \right.

Die Abweichungen von der Diagonalen in diesem Fall:

Delta-Kurven-HZIch finde das Ergebnis auch nicht schlecht. Etwas heller im linken unteren Bereich als Illusions, weniger drastisch oben links als die Photoshop-Formel ohne den dritten Teil.

"Mein" Soft Light

„Mein“ Soft Light

Zugegeben, das Ganze ist recht akademisch, da man Photoshop leider nicht so leicht neue Verrechnungsmodi beibringen kann, was ich äußerst bedauerlich finde.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.