OpenGL,FBO的模具缓冲区不工作?

OpenGL,FBO的模具缓冲区不工作?,opengl,fbo,stencil-buffer,Opengl,Fbo,Stencil Buffer,我尝试在OpenGL中使用FBO的模具缓冲区,但无法使其工作。我为深度和模具目标将depth24_模具8纹理绑定到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(

我尝试在OpenGL中使用FBO的模具缓冲区,但无法使其工作。我为深度和模具目标将depth24_模具8纹理绑定到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,所以不应该渲染任何东西,但我可以看到三角形。这就像根本没有模具,但我不明白为什么。在没有FBOs的情况下尝试这段代码是可行的,因此我认为我正确地使用了模具函数。我不知道如何解决这个问题。是否有人已将模具与FBO一起使用?

我的问题是,我没有将模具缓冲区正确连接到FBO。奇怪的是,我的fbo状态并没有显示任何错误或不良连接,所以我被说服它是好的。。。这个问题让我抓狂,但现在它似乎起作用了。

也许你应该展示一下你如何创建FBO的代码?感谢你阅读我的帖子,问题现在已经解决了。我可以问一下你使用了什么格式的模具缓冲区,因为我无法使帧缓冲区中的模具缓冲区渲染正常工作。FBO状态可能是Ok(complete),因为您不需要模具缓冲区(也不需要深度缓冲区)来完成FBO。在这种情况下,它将不会执行任何模具(深度)测试。您可以将自己的解决方案/问题标记为已解决,这样当有人搜索类似问题时,她可以看到此问题可能也包含解决方案。我必须等待两天,暂时无法单击。我会把它标记为尽快解决。