내 창에 두 개의 뷰포트를 만들려고합니다. 메인 화면, 전체 화면보기 및 왼쪽 위 모서리의 작은보기. 나는이 문제를 보았고 해결책을 보았다. glScissor()와 glViewport(), 내 깊이 버퍼 비트 지우기, 내 깊이 버퍼 비트 사용 및 한 번만 렌더링 (for 루프 이후)을 사용하고 있습니다. 그러나 분명히, 나는 뭔가를 놓치고있다. 여기 내 코드가있다. 미리 감사드립니다.OpenGL : 여러 겹친 뷰포트 깜박임
이편집 : 스크린 샷에 링크 : HTTP : // imgur [도트] co.kr에서/A/sdoUy 는 기본적으로 왼쪽 상단 미니 뷰포트는 사라지고 매우 빠르게 다시 출현, 깜박입니다. 그것은 당신의 깜박 거리는 문제에 도움이 될 것입니다하지만 난 당신이 쓴 나는 경우
void viewports() {
float width = wWidth;
float height = wHeight;
for (int i = 0; i < 2; i++) {
glClearColor(.392,.584,.929,0.0f);
if (i == 0) {
//main view
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glViewport(0,0,(GLsizei)width,(GLsizei)height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60,(GLfloat)width/(GLfloat)height,1.0,100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
keyOp();
camera();
} else if (i == 1) {
glScissor(0,height - height/3,(GLsizei)height/3,(GLsizei)height/3);
glEnable(GL_SCISSOR_TEST);
glClear(GL_DEPTH_BUFFER_BIT);
glViewport(0,height - height/3,(GLsizei)height/3,(GLsizei)height/3);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60,1,1.0,100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0,40,-15,0,-1,-15,1,0,0);
glDisable(GL_SCISSOR_TEST);
}
renderScene();
}
}
문제가 무엇인지 더 잘 설명해 줄 수 있습니까? – Tim
이중 버퍼링이 활성화되어 있습니까? 컨텍스트를 만들 때 요청하는 내용이어야합니다. – Tim
예, 내 메인() 있음 : glutInitDisplayMode (GLUT_DOUBLE | GLUT_DEPTH); 그리고 glutSwapBuffers()를 호출합니다. 내 renderScene() 함수의 끝에. 도움이된다면 더 많은 코드를 게시 할 수 있습니다. – oots