Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Luminosité / Contraste sur l'écran avec shaders  (Lu 3148 fois)

0 Membres et 1 Invité sur ce sujet

Chako256

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
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 :D) 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);
}
 

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.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Luminosité / Contraste sur l'écran avec shaders
« Réponse #1 le: Novembre 22, 2013, 11:32:13 am »
Citer
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
Il y en a : http://www.sfml-dev.org/documentation/2.1/classsf_1_1Shader.php#details (vers la fin du descriptif)

Citer
En plus ça ne marche pas
Ta syntaxe de déclaration des variables est incorrecte : le type doit précéder le nom de la variable.

uniform sampler2D vImage;
uniform float xBright;
uniform float xContrast;
Laurent Gomila - SFML developer

Chako256

  • Newbie
  • *
  • Messages: 10
    • Voir le profil
Re : Luminosité / Contraste sur l'écran avec shaders
« Réponse #2 le: Novembre 22, 2013, 11:40:05 am »
Ok honte à moi pour les déclarations de variable  :-X
Et pour le RenderTexture comment ai-je fait pour ne pas le voir ? x_x"

Désolé pour ces 2 questions un peu bêtes :(

Merci en tous cas :)
Chako256.