CS/Computer Graphics
더블 버퍼링이란? 그 필요성
Yeji Heo
2023. 4. 25. 14:56
일반적으로 프레임버퍼는 2중포트구조이다. 물체 영상을 쓰는 것과 거의 동시에 읽는다.
그런데 비디오 프로세서가 read하는 속도는 그래픽 컨트롤러가 write하는 속도와 차이가 난다(read가 훨씬 빠르다)
이 차이로 인해 화면이 깜빡거리는 등 문제가 발생한다.
이러한 문제는 더블버퍼링으로 해결할 수 있다. (그래픽 프로세서를 더 빠르게 할 수도 있겠지만)
프론트버퍼와 더블버퍼로 2개의 버퍼를 사용하여, 비디오 컨트롤러가 프론트버퍼를 read하는 동안 그래픽 프로세서는 백버퍼에 write한다. write를 마치면 두 버퍼를 switching하는 방식으로 진행한다.
OpenGL에서는 glutInitDisplayMode(GLUT DOUBLE)로 설정해줄 수 있다.
버퍼 Switching에는 glutSwapBuffers()를 사용한다.