Bonjour,

Je souhaiterais envoyer un ensemble de donnée à un fragment shader, sous la forme d'une texture. À ce que j'ai compris, je suis sensé demander un index de texture, l'activer, y lier mes données, et finalement lier l'index à l'uniform. En pratique je ne récupère que des valeurs nuls du coté de mon shader.

J'ai sans nul doute zappé quelque chose, et je viens donc solliciter votre aide

Donc, le code du fragment :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#version 140
 
in vec3 color; //Object color
in vec3 light; //Light (works, not very well but it works)
in vec4 texCoord; //Texture coordinates
uniform sampler1D tex;
 
void main()
{
    vec3 Color = vec3(texture(tex, 0));
    gl_FragColor = vec4(Color * light * 1.9, 1.0);
}
Voici un exemple de ce que j'ai tenté coté OpenGL :
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
18
19
    GLint location = glGetUniformLocation(programID, "tex");
 
    //Ask a new texture id
    GLuint texID;
    glGenTextures(1, &texID);
 
    //Activate texture
    glActiveTexture(GL_TEXTURE0 + texID);
 
    //Load texture
    //As you can see, it is != 0 :)
    ((char*)tex->pixels)[0] = 255;
    ((char*)tex->pixels)[1] = 255;
    glTexImage1D(GL_TEXTURE_1D, 0, GL_R8, 4/*tex->w*/ /*tex->h*/, 0, GL_RED, GL_UNSIGNED_BYTE, tex->pixels);
 
    //Bind texture
    glBindTexture(GL_TEXTURE_1D, texID);
    //Send the ID to the uniform
    glUniform1i(location, texID);
sans le moindre succès