1
Graphique / Luminosité / Contraste sur l'écran avec shaders
« le: Novembre 22, 2013, 11:03:53 am »
Bonjour !
Je suis en train de développer une petite appli de contrôle d'un simulateur avec SFML 2.1 en C++.
Parmi les options disponibles, l'utilisateur doit pouvoir augmenter ou diminuer la luminosité et le contraste du tableau de bord dessiné à l'écran.
J'ai lu beaucoup de sujets à droite à gauche (j'ai fait chauffer les serveurs de Google ) mais rien de bien concret quant à la syntaxe à utiliser en GLSL pour ajuster ces paramètres.
De plus je ne sais pas si on peut appliquer le shader à tout l'écran :/ il n'y a pas beaucoup de documentation sur le sujet
J'ai bien trouvé quelque chose mais ça ne s'appliquerait qu'à une seule texture :
En plus ça ne marche pas, OpenGL me dit
Merci d'avance !
Chako256.
Je suis en train de développer une petite appli de contrôle d'un simulateur avec SFML 2.1 en C++.
Parmi les options disponibles, l'utilisateur doit pouvoir augmenter ou diminuer la luminosité et le contraste du tableau de bord dessiné à l'écran.
J'ai lu beaucoup de sujets à droite à gauche (j'ai fait chauffer les serveurs de Google ) mais rien de bien concret quant à la syntaxe à utiliser en GLSL pour ajuster ces paramètres.
De plus je ne sais pas si on peut appliquer le shader à tout l'écran :/ il n'y a pas beaucoup de documentation sur le sujet
J'ai bien trouvé quelque chose mais ça ne s'appliquerait qu'à une seule texture :
uniform vImage sampler2D;
uniform xBright float;
uniform xContrast float;
void main(void) {
vec4 texcolor = texture2D(vImage, gl_TexCoord[0].st);
vec3 bright = texcolor.rgb + vec3(xBright, xBright, xBright);
vec3 contrasted = (bright - 0.5) * xContrast + 0.5;
gl_FragColor = vec4(contrasted[0], contrasted[1], contrasted[2], texcolor.a);
}
uniform xBright float;
uniform xContrast float;
void main(void) {
vec4 texcolor = texture2D(vImage, gl_TexCoord[0].st);
vec3 bright = texcolor.rgb + vec3(xBright, xBright, xBright);
vec3 contrasted = (bright - 0.5) * xContrast + 0.5;
gl_FragColor = vec4(contrasted[0], contrasted[1], contrasted[2], texcolor.a);
}
En plus ça ne marche pas, OpenGL me dit
"syntax error: unexpected NEW_IDENTIFIER"
Je débute avec les shaders et je ne trouve pas de ressources utiles sur le net. Si quelqu'un a une idée ou mieux encore, des bons sites pour bien comprendre les mécanismes des shaders je suis preneur !Merci d'avance !
Chako256.