Framebuffers

버퍼란? Buffer

  • 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리 영역

버퍼링 Buffering

  • 버퍼를 활용하는 방식 혹은 버퍼를 채우는 동작
  • 큐 Queue 라고도 한다

프레임버퍼란? Framebuffer

  • 화면에 나타날 영상 정보를 일시적으로 저장하는 기억 장치
    • GPU가 CPU로부터 도형을 표현하는 리스트를 받아 변환하여 버퍼에 기록
    • 프레임버퍼의 각 기억 단위는 픽셀
    • 각 픽셀의 On/Off 상태와 색 정보를 비트맵으로 저장

OpenGL에서의 프레임버퍼

  • 기본 프레임버퍼는 어플리케이션이 실행되고 윈도우 창을 생성할 때 함께 생성된다
  • 프레임버퍼는 실제로 버퍼가 아니라, 여러 attachment 정보를 가진 하나의 집합체
    • 각 버퍼로의 포인터를 가진 일종의 구조체다
    • 프레임버퍼에 attached 된 버퍼는 Renderbuffer 이거나 Texture일 수 있다
  • 프레임버퍼 객체 Framebuffer Object (FBO)로 선언되어 사용

렌더버퍼 Renderbuffer

  • 실제 바이트 혹은 픽셀 정보를 담는 버퍼
  • 렌더버퍼가 Offscreen rendering에 더 최적화되어 있어, 텍스쳐에 그리는 것보다 더 빠르다
  • 하지만 네이티브, 개발 의존적 포맷이기 때문에 읽어들이는 것은 텍스쳐에 비해 더 느리다

출처