2017-05-02 1 views
1

스텐실 버퍼가 전혀 작동하지 않습니다. 마치 켜지지 않은 것처럼 보입니다. 아래의 코드에서, 필자의 테스트는 항상 실패 할 GL_NEVER이므로 아무것도 보이지 않을 것으로 예상된다. 그러나 사각형이 화면에 안정적으로 표시됩니다.(py) OpenGL : 스텐실 버퍼가 작동하지 않습니다.

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 (디스플레이, DOUBLEBUF | OPENGL)

GLUT를 사용하여 스텐실 버퍼를 초기화 할 때 할당해야한다는 내용을 보았지만 파이 게임 방법을 잘 모르겠습니다.

+1

'glGetIntegerv (GL_STENCIL_BITS, ...)'를 통해 프레임 버퍼에 실제로 스텐실 비트가 있는지 확인 했습니까? 운영 체제가 기본적으로 사용자에게 제공하지 않을 수도 있습니다. – genpfault

+0

그것을 시도하고 0을 반환합니다. 나는 pygame + pyOpenGL 사용하고 있습니다. 제 생각에는 스텐실 버퍼를 시작 부분에 할당해야합니다. 나는 파이 게임으로 어떻게해야할지 모르겠다. –

답변

3

알아보기에는 시간이 필요했습니다. 그래서 다른 사람이이 문제에 부딪 힐 경우에 대비해서 여기에 넣을 것입니다.

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

위대한, 당신은 아마 대답을 받아 들여야한다 :) – rotoglup

+0

하하, 내 대답을 받아 들일 수 없습니다. –

+0

아 너무 죄송합니다. 아마 그렇게 할 수있는 평판이 필요합니다 ... – rotoglup

관련 문제