Grundsätzlich eine Farbtransformationsmatrix anwenden, ich habe eine Farbmatrix bekommt als solche definiert:Wie kann ich auf eine Textur in OpenGL
struct ColourXForm
{
float4 mul;
float4 add;
float4 Transform(float4 colour)
{
return float4(
colour.x * mul.x + add.x,
colour.y * mul.y + add.y,
colour.z * mul.z + add.z,
colour.w * mul.w + add.w);
}
}
Was ich tun möchte, ist die Funktion ‚Transform‘ gelten jedes Pixel in der Textur, so wie es auf dem Bildschirm wiedergegeben wird. Ich kann die Textur nicht wirklich ändern, da verschiedene Farbtransformationsmatrizen mehrmals auf dasselbe Bild in einem Bild angewendet werden können (und ich weiß nicht, was angewendet wird, bis es Zeit ist, die Textur zu rendern), und ich kann ' t verwende auch Shader.
Gibt es einen Weg, dies angesichts dieser Anforderungen zu tun? (meine einzige Idee ist bis jetzt multi-texturing, aber kann nicht herausfinden, wie man es anwendet)
Auch ich bin zu OpenGL neu, also würde es nützlich sein, etwas Code als auch zu posten, oder mich zu zeigen zu einem Tutorial oder sogar den erforderlichen Funktionen/Parametern.
Dank
Edit: Noch eine Sache, die ich erwähnen sollte, ist, dass die Textur vormultipliziert Alpha enthält, so Blending ist Setup als glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
Kennen Sie Tutorials zur Implementierung von Texturstufen oder zumindest einige Funktionen, nach denen ich suchen könnte? –
Nein, es ist schon eine Ewigkeit her, dass ich auf die alte Art multitexturierte. Ich denke, dass glTexEnv die richtige Funktion ist. – Macke
+1 Marcus hat recht damit. Überprüfen Sie diese http://www.google.se/search?hl=sv&rlz=1G1GGLQ_SVSE328&q=gltexenv+site%3Agamedev.net&btnG=S%C3%B6k&meta= – ralphtheninja