Возникла проблема: glGetTexImage
возвращает пустой буфер байтов. В этом случае пустой буфер возвращается только в том случае, если вы пытаетесь получить его из сгенерированного изображения (в данном случае - карты глубины). В других случаях (когда текстура загружается из памяти) - все хорошо. Сгенерированная текстура визуализируется без проблем. Вот код ниже.
gl.glBindTexture(GL.GL_TEXTURE_2D, depthMap.get(0));
ByteBuffer pixels = TextureArray.createByteBuffer(1024, 1024, 4);
gl.glGetTexImage(GL.GL_TEXTURE_2D, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, pixels);
System.out.println(pixels.get(3)); // 0
Генерация текстуры:
gl.glBindTexture(GL.GL_TEXTURE_2D, depthMap.get(0));
gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL2.GL_DEPTH_COMPONENT, width, height, 0, GL2.GL_DEPTH_COMPONENT, GL.GL_FLOAT, null);
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_NEAREST);
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER,GL. GL_NEAREST);
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_WRAP_S, GL.GL_REPEAT);
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_WRAP_T, GL.GL_REPEAT);
gl.glBindFramebuffer(GL.GL_FRAMEBUFFER, depthMapFBO.get(0));
gl.glFramebufferTexture2D(GL.GL_FRAMEBUFFER, GL.GL_DEPTH_ATTACHMENT, GL.GL_TEXTURE_2D, depthMap.get(0), 0);
gl.glDrawBuffer(GL.GL_NONE);
gl.glReadBuffer(GL.GL_NONE);
gl.glBindFramebuffer(GL.GL_FRAMEBUFFER, 0);
gl.glBindTexture(GL.GL_TEXTURE_2D, 0);
Буду благодарен за помощь