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)
-
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^^