OpenGL,FBO的模板缓冲区无法正常工作?

时间:2011-12-05 18:27:13

标签: opengl fbo stencil-buffer

我尝试在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的模板?

1 个答案:

答案 0 :(得分:0)

我的不好,我没有正确地将模板缓冲区附加到我的FBO。奇怪的是,我的fbo状态并没有表明任何错误或不良的附件,所以我被说服它没关系......这个问题让我发疯但现在似乎有用了。