我在使用模板缓冲区方面遇到了问题,而且似乎根本无法工作。 给出以下代码:
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无关,我保留了一些代码对我来说似乎并不相关。
答案 0 :(得分:3)
您没有模板缓冲区。并且按规范(从4.3核心,对开页432):
如果没有模板缓冲区,则不会发生模板修改,就好像是 无论是否对StencilFunc进行任何调用,模板测试总是通过。