Hi, All!
I try to start working with mipmap.
First of all I try to render depth map to mipmap texture (only 0 level at the first step) instead of simple one.
When I change my working render tools for using mipmap, I have empty result:
[ATTACH=CONFIG]1701[/ATTACH]
mipmap code:
glBindTexture(GL_TEXTURE_2D, id);
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, this.width, this.height, 0, GL_DEPTH_COMPONENT, GL_FLOAT, (ByteBuffer) null);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_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);
glGenerateMipmap(GL_TEXTURE_2D);
....
glBindFramebuffer(GL_FRAMEBUFFER, depthMapFBO);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depthMap.getId(), 0);
if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { // Here all is ok - have no errors
throw new IllegalStateException("Could not create FrameBuffer");
}
glBindFramebuffer(GL_FRAMEBUFFER, 0);
....
// rendering of mipmap:
shaderProgram.bind();
shaderProgram.setUniform("depthTexture", 0);
shaderProgram.setUniform("prevFrameInvertedProjViewMatrix", prevFrameInvertedProjViewMatrix);
shaderProgram.setUniform("currFrameProjViewMatrix", currFrameProjViewMatrix);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D_ARRAY, depthBuffer.getTexture().getId());
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, reprojectedDepthBuffer.getTexture().getId(), 0);
quadMesh.render();
shaderProgram.unbind();
glBindFramebuffer(GL_FRAMEBUFFER, 0);
....
// try to show it on display:
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, reference);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);
quadMesh.render();
glBindTexture(type.getGlType(), 0);
Who knows where the problem might be?
Thanks for answer!