glStencilFunc(GL_NEVER,0,0)仍然呈现?

时间:2012-11-20 17:55:05

标签: opengl stencil-buffer

我在使用模板缓冲区方面遇到了问题,而且似乎根本无法工作。 给出以下代码:

  glEnable(GL_STENCIL_TEST);
  glClearStencil(0);
  glClear(GL_STENCIL_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glColor4f(1, 1, 1, 1);
  glStencilFuncSeparate(GL_FRONT_AND_BACK, GL_NEVER, 0, 0);
  glStencilOpSeparate(GL_FRONT_AND_BACK, GL_INCR, GL_INCR, GL_INCR);
  glBegin(GL_TRIANGLES);
  { draw something }
  glEnd();

仍然绘制三角形!?我在这里错过了一些小事吗?

注意: 我没有渲染到帧缓冲区,我正在使用glStencil ...分开只是为了确保它与front \ back无关,我保留了一些代码对我来说似乎并不相关。

1 个答案:

答案 0 :(得分:3)

您没有模板缓冲区。并且按规范(从4.3核心,对开页432):

  

如果没有模板缓冲区,则不会发生模板修改,就好像是   无论是否对StencilFunc进行任何调用,模板测试总是通过。