(py)OpenGL:模板缓冲区无法正常工作

时间:2017-05-02 18:19:42

标签: opengl pyopengl

模板缓冲区根本不起作用。就好像它没有开启一样。使用下面的代码,我希望屏幕上看不到任何内容,因为我的测试是GL_NEVER,它总是会失败。但矩形可靠地显示在屏幕上。

glEnable(GL_STENCIL_TEST);
glStencilMask(0xff)
glClear(GL_STENCIL_BUFFER_BIT)

glStencilFunc(GL_NEVER, 1, 0xFF);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);

glBegin(GL_QUADS)
glVertex3fv(...); glVertex3fv(...)
glVertex3fv(...); glVertex3fv(...)
glEnd()    

另一件值得注意的事情是我正在使用pygame + pyOpenGL。     pygame.display.set_mode(display,DOUBLEBUF | OPENGL)

我看到GLUT的引用说需要在初始化时分配模板缓冲区,但我不确定如何使用pygame。

1 个答案:

答案 0 :(得分:4)

我花了一些时间才弄明白。所以我会把它放在这里以防万一其他人遇到这个。

pygame.display.gl_set_attribute(GL_STENCIL_SIZE, 8)
pygame.display.set_mode(display, DOUBLEBUF|OPENGL)