我正在尝试通过 GLSL 渲染模板缓冲区纹理,但我找不到它可能。模板纹理使用 GL_DEPTH24_STENCIL8 格式与深度纹理打包在一起。我发现您无法渲染该纹理,至少不能渲染模板数据,但深度数据可以使用纹理的 x/y/z 值进行渲染。所以我想出了一个超级想法,尝试将模板缓冲区 blit 为 GL_RED 纹理。这在某种程度上可能吗?
以下是如何将模板缓冲区从 FBO1 位块传输到 FBO2:
glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, FBO1 );
glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, FBO2 );
glBlitFramebufferEXT(0, 0, X, Y, 0, 0, X, Y, GL_STENCIL_BUFFER_BIT, GL_NEAREST );
glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, 0);
这就是我卡住的地方。有任何想法吗?