0
\$\begingroup\$

I am trying to use a 2D texture as a lookup table for pre-computed values. In each case I set all values of the texture to 0.5 for testing.

When I use a 1D texture, it works and I get 0.5:

uniform sampler1D dens;
...
  return texture(dens, height01).r;
...

When I use a 2D texture however, I get 0.0:

uniform sampler2D dep;
...
  return texture(dep, vec2(height01, cos_angle01)).r;
...

I have tried setting cos_angle01 to 0.5. I also tried visualising height01.

Here are the initialisations of the textures (implemented in Clojure):

(def size 8)
(def dens (float-array (repeat size 0.5)))
(def dep (float-array (repeat (* size size) 0.5)) )

(def dens-texture (GL11/glGenTextures))
(GL13/glActiveTexture GL13/GL_TEXTURE0)
(GL11/glBindTexture GL11/GL_TEXTURE_1D dens-texture)
(GL20/glUniform1i (GL20/glGetUniformLocation program "dens") 0)
(GL11/glTexImage1D GL11/GL_TEXTURE_1D 0 GL30/GL_R32F size 0 GL11/GL_RED GL11/GL_FLOAT (make-float-buffer dens))
(GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_WRAP_S GL12/GL_CLAMP_TO_EDGE)
(GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_MIN_FILTER GL11/GL_NEAREST)
(GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_MAG_FILTER GL11/GL_NEAREST)

(def dep-texture (GL11/glGenTextures))
(GL13/glActiveTexture GL13/GL_TEXTURE1)
(GL11/glBindTexture GL11/GL_TEXTURE_2D dep-texture)
(GL20/glUniform1i (GL20/glGetUniformLocation program "dep") 1)
(GL11/glTexImage2D GL11/GL_TEXTURE_2D 0 GL30/GL_R32F size size 0 GL11/GL_RED GL11/GL_FLOAT (make-float-buffer dep))
(GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_WRAP_S GL12/GL_CLAMP_TO_EDGE)
(GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_WRAP_T GL12/GL_CLAMP_TO_EDGE)
(GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_MIN_FILTER GL11/GL_NEAREST)
(GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_MAG_FILTER GL11/GL_NEAREST)
```
\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

Now that I read my question I noticed the bug. I used GL11/GL_TEXTURE_1D instead of GL11/GL_TEXTURE_2D for the second texture, sorry:

(def dep-texture (GL11/glGenTextures))
(GL13/glActiveTexture GL13/GL_TEXTURE1)
(GL11/glBindTexture GL11/GL_TEXTURE_2D dep-texture)
(GL20/glUniform1i (GL20/glGetUniformLocation program "dep") 1)
(GL11/glTexImage2D GL11/GL_TEXTURE_2D 0 GL30/GL_R32F size size 0 GL11/GL_RED GL11/GL_FLOAT (make-float-buffer dep))
(GL11/glTexParameteri GL11/GL_TEXTURE_2D GL11/GL_TEXTURE_WRAP_S GL12/GL_CLAMP_TO_EDGE)
(GL11/glTexParameteri GL11/GL_TEXTURE_2D GL11/GL_TEXTURE_WRAP_T GL12/GL_CLAMP_TO_EDGE)
(GL11/glTexParameteri GL11/GL_TEXTURE_2D GL11/GL_TEXTURE_MIN_FILTER GL11/GL_NEAREST)
(GL11/glTexParameteri GL11/GL_TEXTURE_2D GL11/GL_TEXTURE_MAG_FILTER GL11/GL_NEAREST)
\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .