我尝试在 OpenGL 中使用 FBO 的模板缓冲区,但我无法让它工作。我为深度和模板目标绑定了一个 depth24_stencil8 纹理到 FBO。作为一个简单的测试,我尝试了:
/* Enable FBO */
glEnable(GL_STENCIL_TEST);
glStencilFunc(GL_NEVER, 1, 0xff);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
glBegin(GL_TRIANGLE);
/* Draw some triangles */
glEnd();
glDisable(GL_STENCIL_TEST);
/* Disable FBO and render it on screen as a texture. */
当我使用 GL_NEVER 时,根本不应该渲染任何东西,但我可以看到三角形。这就像根本没有模板,但我不明白为什么。在没有 FBO 的情况下尝试此代码有效,因此我认为我正确使用了模板功能。我不知道如何解决这个问题。是否有人已经在 FBO 中使用了模板?