Gamma-Korrektur



  • Ich habe meine Farben als Vec3-floats gegeben. Die Farben gehen von 0.0 (schwarz) bis 1.0 (weiß).

    Nun möchte ich eine Gamma-Korrektur durchführen, bspw. mit Gamma=2.2. Dazu dachte ich es reicht "pow(color.red, 1.0f/gamma)" zu rechnen. Passt das? Sehr oft sehe ich noch +0,5 hinten dran, wüsste aber nicht woher das kommt...

    MfG SideWinder



  • jap, 2,2 ist gaengig.
    wo hast du 0.5 gesehen, ohne context ist das nicht so leicht zu kommentieren. gamma korrektur ja vom display ab, vielleicht war da was besonderes dran oder eine kuenstliche farbkorrektur um das bild "aufzubessern"



  • Oder es war Teil der Rundung, um hinterher mit ganzen Zahlen weiterrechnen zu können (in der Form int wert=pow(basis,1/gamma)*max_wert+0.5; ).



  • Sollte sich nicht eigentlich was auch immer du zur Grafikausgabe verwendest um die Gammakorrektur kümmern!?


  • Mod

    leider gibt es keinen weg automatisch festzustellen, ob ein bild schon gamma korrigiert ist oder noch nicht, ebenfalls ist es moeglich ein gamma und ein lineares bild gleichzeitig anzuzeigen, da kann sich nicht "was auch immer" automatisch drum kuemmern. zumal man auch ohne graphikausgabe bild gamma und linearen bildern arbeiten kann, z.b. hat so ziemlich jede firma einen buildserver auf dem ein resourcecompiler z.b. mipmaps generiert und korrekterweise werden mipmaps im linearen space berechnet.



  • CStoll schrieb:

    Oder es war Teil der Rundung, um hinterher mit ganzen Zahlen weiterrechnen zu können (in der Form int wert=pow(basis,1/gamma)*max_wert+0.5; ).

    Danke, das ist also in meinem Float-Fall nicht nötig, ok.

    MfG SideWinder


Anmelden zum Antworten