View Full Version : Loading 1D fpoint texture - some pixels blacken

Slow Photon
12-06-2011, 03:13 PM
Hello everyone,

I have a very nasty problem when trying to load floating point textures. Basically, some of the vertices turn black and remain such even if I change the shader. I provide below the (hopefully relevant) source code and some screenshots.

During initialization

GLfloat tangents[TBL_SIZE*4];

/* code filling this in omitted - I checked, it's non-zero */

glGenTextures(1, &texTangents);
glBindTexture(GL_TEXTURE_1D, texTangents);


0, /* level = 0, no mipmap */
TBL_SIZE, /* width */
0, /* no border */
GL_RGBA, /* format of pixel data */
GL_FLOAT, /* format */

After the program is set

GLint tangentMap = glGetUniformLocation(program, "tangentMap");
if(tangentMap != -1) {
glBindTexture(GL_TEXTURE_1D, texTangents);
glUniform1i(tangentMap, 1);
} else {
std::cerr << "can not set tangentMap\n";

And finally, in the shader

uniform sampler1D tangentMap;


/* I read it as follows */
texelFetch(tangentMap, 151, 0).rgb

The problem is that whenever I the texture is loaded (I am not using the values from the texture to set pixel colors, I am just conditioning on them so that the compiler won't take the uniform out) part of the pixels blacken out. I have uploaded several shots on http://imgur.com/a/lO47U [ the shader is the third image from above, the fourth one is when I switch back to the shader used for the second image] . I have multiple different shaders, and even when I switch to another shader the effects remain (those parts remain black). Even if I rotate the teapot, only those vertices are visible. Anyone with an idea? I already lost almost two days with this.