Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

1

25.05.2014, 15:28

Gamma Korrektur

Hallo! Ich hoffe ich habe Gamma Korrektur richtig im Zusammenhang mit Texturen und Lichtern verstanden:
Wenn ich eine Streufarbentextur im RGB-Farbraum habe und ich diese in einem Shader auslese, ist der nächste Schritt, die Farbwerte mittels Gammakorrektur in den linearen Farbraum zu bringen (color^2.2). Jetzt kann ich ganz normal meine NxL-Berechnung mit dem ausgerechneten Farbwert durchführen. Am Ende des Shaders einfach finalColor^(1/2.2) und den Wert dann zurückliefern. Stimmen die Schritte so? Oder lässt man den letzten Schritt weg und macht die inverse Korrektur als PostProcess?

Gedankengang:

Quellcode

1
2
3
4
5
6
7
8
Color color = FarbeVonTextur;
color = color ^ 2.2;

// diffuse term

color *= diffuse;

return color ^(1/2.2)


Danke!

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

25.05.2014, 21:25

Jap. Du kannst aber auch einfach ein passendes sRGB Format für deine Texturen/Buffer verwenden, dann kümmert sich die Hardware um die nötigen Umwandlungen. x^2.2 ist genaugenommen eh nur eine Näherung, die tatsächliche sRGB Kurve ist ein wenig komplizierter...

Werbeanzeige