Pixelshader-Farbe



  • Guten Tag 🙂
    Ich habe folgendes Problem:

    Ich erstelle einen Pixelshader, der nur einen Farbwert zurückgibt, über "def c0, %f, %f, %f, 1.0", r, g, b.
    Nun müssen die Angaben ja in Float zwischen 0 und 1 liegen, woraufhin ich dachte, dass ich den gewünschten Wert doch einfach durch 255 teilen könnte.
    Gewünschter Grün-Wert: 130
    Als Float-Angabe: 0.5 (130 / 255)

    Als ich dann den Farbwert untersuchte, stellte ich aber fest, dass der Grün-Wert gleich 186 war...

    Bei G = 200 kommt 0.78 heraus, was mir in der Applikation allerdings den Farbwert 228 zurückgibt (Ich habe einen Screenshot gemacht und dann den Farbwert überprüft)...

    An der Berechnung ist doch nichts falsch, oder?
    Wodurch kann diese 'Verhellung' hervorgerufen worden sein?
    Eventuell durch irgendwelche RenderStates?
    Wenn ich den Wert auf 0 setze, ist der Farbwert allerdings auch wirklich schwarz...
    Vielen Dank!


  • Mod

    schaut mir nach gamma correction aus, wird eventuell sogar durch das programm gemacht in dem du den screenshot betrachtest. kann aber auch mit d3d gemacht werden.



  • Wie lässt sich diese Gamma Correction denn ansprechen?
    Also wie könnte ich sie (eventuell auch temporär) deakivieren?

    Oder wäre es vielleicht sogar möglich, dass das Problem etwas Grafikkartenspezifischen zugrunde liegt?
    Es wird zwar immer heller als das, was ich angebe, nur wenn ich den Wert halt auf 0 setze, ist es wirklich schwarz.
    Zu dem Screenshot: den gucke ich mir einfach nur in Paint an, wo die Farbe genauso aussieht, wie in der Applikation...
    Danke 🙂


  • Mod

    suche mal in deiner api spezifischen docu nach gamma oder srgb, wenn es an ist, kann man es sicherlich leicht ausschalten.

    natuerlich koennte es sein dass dein treiber das irgendwo an hat, oder ein monitor kalibrierungs tool.
    manchmal kannst du die betriebssystemweiten einstellungen auch nur ausschalten wenn du im fullscreen laeufst.


Anmelden zum Antworten