我尝试在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的模板?
答案 0 :(得分:0)
我的不好,我没有正确地将模板缓冲区附加到我的FBO。奇怪的是,我的fbo状态并没有表明任何错误或不良的附件,所以我被说服它没关系......这个问题让我发疯但现在似乎有用了。