OpenGL从深度模板纹理读取深度

时间:2015-04-23 11:35:47

标签: opengl

似乎无法从深度/模板纹理中读取深度。

使用以下代码设置深度/模板纹理:

glGenTextures(1, &depth);
glBindTexture(GL_TEXTURE_2D, depth);
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, width, height, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 0);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, depth, 0);

然后我将其绑定为纹理以供阅读。

glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, depth);
glTexParameteri(GL_TEXTURE_2D, GL_DEPTH_STENCIL_TEXTURE_MODE, GL_DEPTH_COMPONENT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_NONE);
glTexParameteri(GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_INTENSITY);

并在着色器中阅读

uniform sampler2D depthTexture;
...
vec4 depth = texture(depthTexture, gl_FragCoord.xy/screensize);

然而,我得到的只是黑屏?

0 个答案:

没有答案