저는 OpenGL 3.3 컨텍스트/윈도우 생성을 위해 freeglut에서 SFML로 전환했습니다. 내가 freeglut를 사용하고OpenGL : Renderbuffer, depth buffer
unsigned int displayMode = GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH | GLUT_STENCIL;
glutInitDisplayMode (displayMode);
와 디스플레이 모드를 초기화 할 때 지금은 간단히
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glDepthFunc(GL_LEQUAL);
glDepthRange(0.0f, 1.0f);
를 입력 할 수 있습니다 다음, 깊이 테스트가 활성화됩니다. 그러나 SFML에서는 좀 더 복잡합니다. SFML 코드는 사용하지 않지만 기본적으로 SFML은 컨텍스트/윈도우를 만듭니다. 심도 비트와 스텐 슬 비트 수를 지정할 수 있지만 SFML이 실제로 심도 버퍼를 할당하지 않고 기본 프레임 버퍼에 연결하는 것으로 보입니다.
그럼 실제로 어떻게해야합니까? 나는 glGenRenderbuffers
, glBindRenderbuffer
, glRenderbufferStorage
, glFramebufferRenderbuffer
과 같은 것을해야한다고 생각합니다. 설명서가 약간 혼란 스럽습니다. glRenderbufferStorage
은 internalformat
매개 변수를 사용하며 24 비트 깊이 버퍼가 필요하다는 것을 나타내는 방법을 잘 모르겠습니다. 또한, 기본 프레임 버퍼에 액세스하는 방법을 잘 모르겠습니다 (이중 버퍼링이 있기 때문에 두 개의 기본 프레임 버퍼가 있습니까?).