Bonjour
Voila en ce moment je dois afficher une texture sur un rectangle mais je rencontre quelques difficulte. Pour cela j'utilise les shader :
fichier .vert
fichier .frag
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 //// compiler settings #version 110 uniform sampler2D pointData; uniform sampler2D orientation; void main() { gl_TexCoord[0] = gl_TextureMatrix[0]*gl_MultiTexCoord0; //gl_TexCoord[1] = gl_MultiTexCoord1; //gl_TexCoord[2] = gl_MultiTexCoord2; gl_Position = ftransform(); //gl_FragColor = texture2D(ntex,vec2(0,0)); gl_FrontColor=texture2D(orientation, gl_TexCoord[0].st); }
Le resultats que j'obtiens est un grand carre bleu (un bleu qui ne vient pas de ma texture)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ////// pragma.glsl ////// //// compiler settings #version 110 uniform sampler2D ntex; uniform sampler2D pointData; uniform sampler2D orientation; //// main body of shader void main() { gl_FragColor = texture2D(orientation,gl_TexCoord[0].st); ////// main-close.glsl ////// }
Le probleme est que je comprends pas vraiment ce qu'est gl_TexCoord[0] et gl_TextureMatrix[0]*gl_MultiTexCoord0;
En fait je ne travaille pas directment avec openGL mais je dois passer par un programme intermediaire (dont je connais pas grand chose qui permet de creer la scene la graphique par l'intermediaire de commande tu type CHARGEMENT node file). La base de ce programme est probablement OSG
En plus les je ne charge pas les shaders dans un code C mais dans la scene graphique a l'aide de fonction auxiliaire. Les texture sont stocke dans des fichiers .osg et represente elle aussi des neouds de la scene graphique
Desole si ce n'est pas tres clair
Merci
Partager