Benutzer:Toni Grappa/ Linearer Workflow

Linearer Workflow Bearbeiten

Die nun folgenden Ausführungen nehmen Bezug auf den Gamma Wert, der beim Bemühen, Bilder mit einer natürlicheren Farbgebung beim Rendern zu erzeugen, Bedeutung hat. «Natürlich» ist hier im Sinne von physikalisch glaubwürdig gemeint bzw. so, wie wir die Farben und Lichter in der Realität wahrnehmen.

Was versteht man unter Gammakorrektur? Bearbeiten

Der linare Workflow in einer Kette von bildverarbeitenden Geräten ist sehr komplex und kann an dieser Stelle nicht umfassend behandelt werden. Wenn Sie detailliertere Informationen wünschen, lesen Sie bitte den Artikel über die Gammakorrektur im Wikibuch.

Die Gammakorrektur ist -vereinfacht gesprochen- die Lösung für ein Problem, dass auftritt, wenn Bilder durch einem Röhrenmonitor dargestellt werden sollen. Nehmen wir den einfachen Fall, dass ein schwarz/weiß Bild durch einen Kathodenstrahl in einem Fernseher abgebildet wird. Für eine bestimmte Helligkeit wird eine gewisse Voltzahl benötigt und idealer Weise würde die Voltzahl äquivalent mit der Helligkeit ansteigen (siehe Gerade Abb.1 links). Aber genau das ist in den Röhrengeräten nicht der Fall. Eine höhere Voltzahl setzte sich nicht eins zu eins in eine größere Helligkeit um, sondern nur "nicht linear". Dunkle Bildanteile werden damit etwas dunkler am Bildschirm dargestellt (siehe rote Kurve Abb.1 rechts). Um diesem Effekt entgegen zu arbeiten, werden dem Bild Informationen mitgegeben, so dass es genau in dem Maße heller wird, wie es der Bildschirm abdunkelt (siehe grüne Kurve Abb.1 rechts). Das Ergebnis ist eine normalisierte Abbildung am Bildschirm.

 
Abb. 1: Einfluss der Gammawerte auf die Bildschirmdarstellung eines Bildes

Der Gamma-Wert eines normalen Monitors, der mit Windows angesteuert wird, liegt bei 2,2. Ein Gamma-Wert von 1 erzielt keine Veränderung. Um nun den Monitor-Gammawert von 2,2 zu kompensieren, muss der reziproke Wert mit 1 / 2.2 = 0.4545 gebildet werden. Hat ein Bild den Gammawert 0.45, so wird es an einem Monitor mit dem Gammawert 2.2 linear, also für unsere Augen «richtig» dargestellt (Abb.1 links). Dieser Gammaänderung ist in das Farbprofil des Bildes integriert und wird diesem automatisch angehängt. (siehe sRGB, insbesondere ICC-Profil)

Wie sieht der Renderer das Bild? Bearbeiten

Wenn wir uns in die Lage des Renderers versetzen würden, sähen wir das Bild allerdings vollkommen anders. Dem Renderer stellt sich das Bild nämlich so dar, wie es in «Wirklichkeit» ist, mit einem integrierten Gammawert von 0,45 und damit viel zu hell. In Abb.2 ist das Bild so dargestellt, wie es vom Renderer aus "gesehen" wird, indem der Gammawert des Monitors auf 1 gestellt wurde. Dadurch erhält der Renderer «zu helle» Informationen und rechnet sein Ergebnis somit konsequent mit «falschen» Farben.

 
Abb. 2: So "sieht" der Renderer das Bild. Der Monitor hat den Gammawert 1, das Bild 0.45

Damit der Renderer das Bild "linear" sieht, muss der Tonwertwert auf 0.45 erniedrigt werden. Dies geschieht mit dem Filter Tonwertkorrektur in einem bliebigen Bildbearbeitungsprogramm. Nun ist es für die Berechnung im Renderer optimal vorbereitet.

 
Abb. 3: Monitor Gammawert = 1; Tonwert erniedrigt auf 0.45. Nun sieht das Bild für den Renderer «linear» aus.

Nur der Betrachter am Bildschirm könnte zu dem Eindruck kommen, das Bild sei «viel zu dunkel»...

 
Abb. 4: Monitor Gammawert = 2.2; Tonwert Bild 0.45

Wie kann man in Blender einen linearisierten Arbeitsablauf gestalten? Bearbeiten

 
Abb. 5: Bild oben ohne Gammakorrektur, Texturen ohne Tonwertkorrektur - Bild unten mit Gammakorrektur, Texturen mit Tonwertkorrektur.

Das Rendern in einen linearisierten Arbeitsablauf ist in Version 2.48a noch nicht integriert. Deswegen bleibt dem Nutzer nur die Möglichkeit, sich mit improvisierten Lösungen zu behelfen, die deutliche Verbesserungen erzielen aber umständlich und aufwändig zu handhaben sind. In Abb.5 sehen Sie im oberen Teil ein gerendertes Bild, wie es mit normalen, das heißt unveränderten Einstellungen zu erzielen ist. Die Holztextur ist unbearbeitet und eine Lampe erhellt die Szene. Der Lichtabfall der Lampe ist, physikalisch korrekt, auf invers-quadratisch gestellt. Dennoch entspricht das Ergebnis nicht unseren Erwartungen, da die Lichthelligkeit sehr stark abfällt und der hintere Teil der Szene zu dunkel ist. Die Reflexionen auf den Kugeln sind etwas zu dominant und die Maserung des Holzes etwas zu blass. Die Schatten sind sehr stark ausgeprägt.


Die Umsetzung Bearbeiten

Erster Schritt Bearbeiten

 
Abb.: In einem Bildbearbeitungsprogramm den Tonwert des Bildes verändern

Laden Sie die Textur in einem Bildbearbeitungsprogramm und verändern den Tonwert auf 0.45. Speichern Sie das veränderte Bild ab. In Gimp finden Sie den Filter unter Farben → Werte; in PS unter Bild → Anpassungen → Tonwertkorrektur.

Zweiter Schritt Bearbeiten

In einem linearisierten Arbeitsablauf entspricht der Lichtabfall der Lampen den natürlichen physikalischen Gesetzen. Verwenden Sie deshalb bevorzugt die Einstellung "invers square" bei der «lamp» und dem «spot».

Dritter Schritt Bearbeiten

 
Abb.: Richten Sie dieses Node-Setup ein.

Dieses Nodesetup verändert drei Werte:

  1. Die erste RGB Kurve schränkt die Helligkeitswerte ein. Da Blender intern mit dem EXR Format rechnet, das einen Umfang von 32 Bit hat, kommt es nicht zu Farbabrissen. Das Bild sieht jetzt etwas «flauer» aus. Näher Infos über das Arbeiten mit diesem Tool finden Sie hier.
  2. Im nächsten Schritt werden die flauen Farben wieder etwas egalisiert, indem die dunklen und hellen Bildteile etwas verstärkt werden. Mit kleinen Änderungen erzielen Sie schon starke Effekte.
  3. Das Bild erhält seinen Gammawert von 0.45 für die Darstellung am Monitor.

Schlussbemerkung Bearbeiten

Wie schon weiter oben beschrieben ist dieser Arbeitsablauf nur ein Provisorium, bis bessere und einfacher zu bedienende Lösungen in Blender implementiert sind. So ist es im Augenblick nicht möglich, den Gammawert von prozeduralen Materialfarben einzustellen. Die Farben der Farbpalette sind nämlich nicht linearisiert und werden bei dem oben beschriebenen Nodesetup zu hell gerendert. Außerdem erfordert es einen enormen Aufwand, alle verwendeten Texturen von Hand zu linearisieren. Auch das Erstellen eines Nodesetups dürfte Einsteiger abschrecken, sich diesem Themengebiet zuzuwenden. Eine Lösung, die mit ein oder zwei aktivierten Buttons auf einen linearisierten Arbeitsablauf umschaltet, ist wünschenswert und theoretisch machbar.

Auf jeden Fall sollte sich jeder, der seine Renderergebnisse signifant verbessern möchte, auch mit diesem Themengebiet beschäftigen.

Links Bearbeiten

Dieser Artikel bezieht sich u.a. auf Informationen aus den unten stehenden Links. Leider sind alle Artikel und Videos auf englisch verfasst, aber sehr erschöpfend.

Webseite von Yves Piosannt, der das Thema auf Blenderartists angestoßen hat.

Claas Kühnen, der zwei Videotutorials über das Thema erstellt hat-erster Teil

Claas Kühnen, der zwei Videotutorials über das Thema erstellt hat-zweiter Teil