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 :
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 #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); }
sans le moindre succès
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);![]()
Partager