예지의 개발 로그포스 (Yeji's Log Force)

더블 버퍼링이란? 그 필요성 본문

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()를 사용한다.

 

 

Comments