공부/그래픽스

더블 버퍼링(Double Buffering)이란?

셩잇님 2023. 6. 12. 00:15
반응형

 

 

1. 더블 버퍼링이란?

더블 버퍼링은 컴퓨터 그래픽 및 사용자 인터페이스 디자인에서 화면을 업데이트하거나 애니메이션을 표시할 때 깜박임을 없애고 시각적 성능을 개선하는 데 사용되는 기술입니다.

 

기존의 렌더링 또는 화면 업데이트에서는 화면의 변경 사항이 발생하면 사용자에게 직접 표시됩니다. 특히 여러 요소가 동시에 업데이트되는 경우 화면이 깜박거리거나 시각적 아티팩트가 발생할 수 있습니다. 이를 극복하기 위해 더블 버퍼링이 사용됩니다.

더블 버퍼링에서는 두 개의 버퍼 또는 메모리 영역이 그래픽 데이터를 저장하는 데 사용됩니다. 전면 버퍼라고 하는 하나의 버퍼는 현재 화면에 표시되는 이미지 또는 프레임을 나타내고, 후면 버퍼라고 하는 다른 버퍼는 표시를 준비 중인 업데이트된 이미지 또는 새 이미지를 보유합니다.

렌더링 또는 업데이트 프로세스는 사용자에게 표시되지 않는 백 버퍼에서 이루어집니다. 즉, 백 버퍼에 대한 변경 사항은 화면에 즉시 표시되지 않습니다. 렌더링이 완료되면 전면 버퍼와 후면 버퍼가 교체됩니다. 백 버퍼의 콘텐츠가 새로 표시되는 이미지가 되고, 이전 프론트 버퍼는 다음 렌더링 사이클의 새 백 버퍼가 됩니다.

더블 버퍼링 기법을 사용하면 화면 새로 고침 사이의 짧은 간격인 수직 블랭킹 기간 동안 버퍼를 빠르고 원활하게 교체할 수 있습니다. 이렇게 하면 업데이트된 이미지가 한 번에 모두 표시되어 깜박임을 없애고 사용자에게 부드럽고 시각적으로 만족스러운 경험을 제공할 수 있습니다.

더블 버퍼링은 애니메이션이나 실시간 그래픽 렌더링과 같이 신속하고 빈번한 업데이트가 필요한 상황에서 특히 유용합니다. 더 부드러운 애니메이션을 구현하고 부분적으로 렌더링된 프레임이 표시되어 발생하는 시각적 아티팩트의 가능성을 줄여줍니다.

 

 

2. 더블 버퍼링의 장점

성능 향상: 더블 버퍼링은 화면을 다시 그리는 데 소요되는 시간을 줄여 GUI의 성능을 크게 향상시킬 수 있습니다.깜박임 감소: 더블 버퍼링은 필요할 때만 화면을 다시 그리도록 하여 깜박임을 줄일 수 있습니다.
더 부드러운 애니메이션: 더블 버퍼링은 디스플레이에 영향을 주지 않고 그래픽을 업데이트할 수 있도록 하여 애니메이션의 부드러움을 향상시킬 수 있습니다.

 

3. 더블 버퍼링의 단점

복잡성 증가: 더블 버퍼링은 GUI를 그리는 데 사용되는 코드에 복잡성을 더할 수 있습니다.
메모리 사용량 증가: 더블 버퍼링에는 두 개의 버퍼가 필요하므로 GUI에서 사용하는 메모리 양이 증가할 수 있습니다.
동기화 증가: 더블 버퍼링은 드로잉 버퍼와 디스플레이 버퍼 간의 동기화를 필요로 하므로 GUI를 그리는 데 사용되는 코드가 복잡해질 수 있습니다.

 

4. 결론
요약하자면, 더블 버퍼링은 두 개의 버퍼를 사용하여 화면을 업데이트하는 기술입니다. 화면 밖에서 업데이트를 렌더링한 다음 버퍼를 교체하여 업데이트된 전체 이미지를 표시함으로써 깜박임을 없애고 시각적 성능을 개선합니다.

 

 

 

반응형

'공부 > 그래픽스' 카테고리의 다른 글

노멀 맵(Normal Map)이란?  (0) 2023.06.12
렌더링 파이프라인 핵심 정리 및 hwp, pdf 파일  (1) 2022.11.30