2011-11-30 3 views
1

자동차를 표시하는 그래픽 프로그램의 픽처 인 픽처 스타일 "맵"디스플레이를 설정하려고합니다. (더 작은 뷰 포트에서 처음부터 다시 뷰를 표시합니다.) 그러나 두 번째 뷰포트는 깜박입니다. 나는 이것을 제대로하고 있다고 생각했지만, 올바르게 개념화하지 못했을 수도 있습니다.깜박임을 유발하는 OpenGL의 PiP

void display(void) { 


    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT); 


    // Set Perspective 

    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    gluPerspective(fov, aspect, near, far); 
    glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 
    glViewport(0, 0, 500, 500); 
    // Lighting follows Camera if inserted here. 


    //Set Camera 
    calculateCamera(); 
    gluLookAt(eyeX + carPosX, eyeY + carPosY, eyeZ + carPosZ, cX + carPosX, 
       cY + carPosY, cZ + carPosZ, 0, 1, 0); 


    displayEnvironment(); 


    glClear(GL_DEPTH_BUFFER_BIT); 

    // Set Perspective 

    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    gluPerspective(fov, aspect, near, far); 
    glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 
    glViewport(0,0,150,150); 

    gluLookAt(0, 140, 0,0, 0, 0, 1, 0, 0); 

    displayEnvironment(); 

    } 
+0

displayEnvironment 내에서 조명을 활성화했기 때문일 수 있습니까? – jaiesh

+1

어떤 종류의 깜박임입니까? PIP 자체가 깜박입니까 (가끔은 백엔드의 나머지 부분에 그려지는 경우가 있습니다). 또는 PIP 내부의 이미지가 어떤 방식으로 깜박입니까? 두 개의 다른 "깜박임"상태 (두 개의 상태 만 있다고 가정)의 스크린 샷을 게시하면 도움이 될 것이라고 생각합니다. –

+0

이중 버퍼와 displayEnvironment가 물건 자체를 지우지 않았는지 확인하십시오? –

답변

4

어디에서 버퍼를 교환하고 있습니까? 렌더링이 끝나기를 기다리지 않고있는 것일까 요?

+0

감사합니다. glutSwapBuffers가 displayEnvironment 내부에서 호출되었습니다. 이것은 깜박 거리는 원인이되었습니다. 두 번째 displayEnvironment가 호출 된 후 glutSwapBuffer를 아래로 이동했습니다. – jaiesh