Fondamentalement, j'ai une matrice de couleur définie en tant que telle:Comment puis-je appliquer une matrice de transformation de couleur à une texture dans 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);
}
}
Ce que je veux faire est d'appliquer la fonction « Transformer » pour chaque pixel dans la texture comme il est rendu sur l'écran. Je ne peux pas réellement modifier la texture car des matrices de transformation de couleurs différentes peuvent être appliquées à la même image plusieurs fois dans un cadre (et je ne sais pas ce qui sera appliqué jusqu'à ce qu'il soit temps de rendre la texture), et je peux t utilisez les shaders non plus.
Existe-t-il un moyen de le faire compte tenu de ces exigences? (ma seule idée à ce jour est multi-texturing, mais je n'arrive pas à comprendre comment l'appliquer)
Aussi, je suis nouveau sur OpenGL, donc il serait utile de poster du code aussi, ou pointez-moi à un tutoriel ou même les fonctions/paramètres requis.
Merci
Edit: Encore une chose que je dois mentionner, est que la texture contient alpha prémultipliés, si le mélange est configuré comme glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
Connaissez-vous des didacticiels pour implémenter des étapes de texture, ou au moins quelques-unes des fonctions requises que je pourrais rechercher? –
Non, ça fait longtemps que je n'ai pas multitâtu l'ancien. Je pense que glTexEnv est la fonction correcte à utiliser. – Macke
+1 Marcus a raison à ce sujet. Cochez cette case http://www.google.se/search?hl=sv&rlz=1G1GGLQ_SVSE328&q=gltexenv+site%3Agamedev.net&btnG=S%C3%B6k&meta= – ralphtheninja