Wie verwenden AAA-Spiele diese Textur im Tone-Mapping-Shader?

43

Ich fand heraus, dass Battlefield 3 und Saint's Row the Third diese Textur in ihrer finalen Ton-Mapping-Phase verwenden. Kann jemand einen Link zu einem Artikel darüber teilen, wie diese Textur verwendet wird?

BF3-Tone-Mapping-Textur

UPDATE: Da es im Internet kaum Beispiele für die Implementierung von Color Grading gibt, werde ich mein schnelles und unsauberes Beispiel für XNA 4.0 veröffentlichen. Dies ist nichts anderes, als die standardmäßige 2D-Farbkarte auf der GPU von Grund auf neu zu erstellen, den Inhalt in eine 3D-Textur auf der CPU zu kopieren und die eigentliche Farbkorrektur mit dem Shader-Code aus dem in der Antwort angegebenen Artikel durchzuführen.

XNA 4.0-Farbkorrekturmuster

Wenn Sie wissen möchten, was Sie damit machen können, schauen Sie hier:

http://the-witness.net/news/2012/08/fun-with-in-engine-color-grading/

Kurz erklärt der Autor dort, wie Sie im Grunde genommen einen Screenshot Ihres normalen In-Game-Bildes mit der Standard-Farbkorrekturpalette oben machen, eine Screenshot-Farbkorrektur in Photoshop durchführen, die deformierte Farbkorrekturpalette ausschneiden und in die Engine kopieren und haben Diese Farbkorrektur wird automatisch für jede In-Game-Szene angewendet.

Cubrman
quelle

Antworten:

49

Dies sieht aus wie die unterste Ebene einer Volumentextur, die heutzutage in vielen Spielen zur Farbkorrektur verwendet wird. Die Idee ist, dass die endgültige RGB-Bildschirmfarbe nach dem Rendern und Tonemapping als Texturkoordinate verwendet wird, um diese Textur zu indizieren. Die in der Textur enthaltene Farbe ersetzt die ursprüngliche Farbe.

Dadurch können Künstler die Farben der Szene beliebig ändern, indem sie eine Volumentextur laden, die die gewünschten Änderungen darstellt. Die "Identität" - Textur - die überhaupt keine Änderung der Farbe zur Folge hat - besteht aus einer Textur, die einen roten Farbverlauf entlang der X - Achse, einen grünen Farbverlauf entlang der Y - Achse und einen blauen Farbverlauf entlang der Z - Achse (d. H Volumen Textur Tiefenachse). Die erste Ebene (Z = 0) würde daher wie die Textur aussehen, die Sie gepostet haben.

GPU Gems 2 beschreibt die Technik detaillierter.

Nathan Reed
quelle