0
내가 단편 쉐이더에서 texture1d 읽으려고 texture1D : I 업로드OpenGL은
texelFetch(world, 0, 0);
...
uniform sampler1D world;
을 w 여기서, w [0] = 123.0fw [1] = 123.0f ... :
glActiveTexture(GL_TEXTURE0);
glGenTextures(1, &pt->world);
glBindTexture(GL_TEXTURE_1D, pt->world);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA32F, 2, 0, GL_RGBA, GL_FLOAT, &w);
바인딩 :
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_1D, pt->world);
glUniform1i(glbPTworld, 0);
그러나 glTexImage1D와 다른 너비를 사용하면 조각 쉐이더는 vec4 (123,012,123,123) 대신 vec4 (0,0,0,1)를 읽습니다. 또한, 내가 사용하는 경우 :
glGetTexImage(GL_TEXTURE_1D, 0, GL_RGBA, GL_FLOAT, x);
다시 얻으려면 예상되는 값이 표시됩니다.
고마워요! glTexParameteri의 GL_TEXTURE_2D였습니다. 나는 그것을 보지 못했습니다. 그러나이 오류로 인해이 모든 문제가 발생하는 경우가 조금 있습니다. 일부는 이미 알고있을 때 glTexParameter에서 텍스처 유형/차원을 묻는 것과 같은 일부 OpenGL 결정을 이해하지 못하는 경우가 있습니다. – dv1729
1D 텍스처는 T 랩핑 모드가 없어야한다는 점에 유의하십시오. – peppe