【发布时间】:2012-01-13 11:17:59
【问题描述】:
我尝试在 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 中使用过模板吗?
【问题讨论】:
-
也许你应该展示你如何创建你的 FBO 的代码?
-
感谢您查看我的帖子,问题现已解决。
-
我能问一下您的模板缓冲区使用什么格式,因为我无法在帧缓冲区中正常工作。
标签: opengl fbo stencil-buffer