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
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);
 
}
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
 
////// 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 resultats que j'obtiens est un grand carre bleu (un bleu qui ne vient pas de ma texture)

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