OpenGL / DirectX - Farbe um float-Zahl skalieren



  • Hallo,

    gibt es eine Möglichkeit, wie ich ohne Einsatz von Shadern in OpenGL alle Farben, also das, was beim Pixelshader als Output kommt, um eine Float-Zahl skalieren kann?

    Normalerweise ist ja das Blending für Farbpufferoperationen zuständig. Ich weiß aber nicht, wie ich es da machen soll.

    Ich möchte ein 2D-Rechteck mit einer Textur drauf malen. Wenn mein Color-Faktor 0.5 ist, dann ist das Bild nur noch halb so hell. Wenn der Faktor 0 ist, dann soll ein schwarzes Rechteck zu sehen sein.

    Habt ihr da ein Trick für altes OpenGL ohne Shader?

    glColor3f(0.5f, 0.5f 0.5f)


  • Mod

    mit "farbe" meinst du also den frame- bzw backbuffer? du kannst
    1.den in eine textur kopieren und dann mit GL_MODULATE mit einer vertexcolor skalieren, vielleicht geht da >1.f.
    2.ansonsten gibt es noch den accumulation buffer.
    3.dritte moeglichkeit ist die scene mehrmals zu rendern mit GL_ONE,GL_ONE als blendfunc, damit addierst du die scene auch auf. sollte natuerlich auch fuer 1. anwendbar sein.



  • Der Accumulationspuffer ist ein sehr guter Hinweis. Bitte keine weitere Hilfe mehr posten. Das Problem ist für mich nun klar^^


Anmelden zum Antworten