Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- unrealengineai
- 프로그래밍
- bttask
- ipc(inter process communication)
- 자료구조정리
- c++porinter
- c++class
- 언리얼비헤이어비어트리
- 자료구조
- c언어정리
- DX
- 언리얼엔진공부
- 언리얼엔진
- 게임개발
- livrary
- 각도변환
- directx
- 언리얼ai
- leveleditor
- 영단어정리
- 프로그래밍일기
- c++
- 25.06.11dir
- uaiperception
- 언리얼엔진5
- 게임엔진튜토리얼
- 월드아웃라이너
- 자료형타입
- 수학용어정리
- c++용어정리
Archives
- Today
- Total
루리코딩 세상
싱글, 더블 버퍼링(Single Buffering, Double Buffering) 본문
DirectX에서 버퍼링(Single Buffering, Double Buffering, Triple Byffering)는 수업에서 내가 이해했던 것과는 다른
해상도와는 서로 다른 개념이라고한다.
"버퍼링"은 렌더링된 이미지가 화면에서 출력되기까지의 과정에서
프레임 데이터를 어디에, 어떻게 저장하고 넘길지를 관리하는 메모리 구조를 의미한다.
이는 그래픽 렌더링 파이프 중 출력단계(Back Buffer → Front Buffer → 화면)에 관여한다.
void Device::ReginRender(byte 4, byte g, byte b)
{
color clearColor = Color(r, g, b);
foreground->Clear(clearColor); //싱글 버퍼링
background->Clear(clearColor); //더블 버퍼링
}
//////////Swap Chain Settings///////////
DXGI_SWAP_CHAIN_DESC scd = {};
scd.BufferCount = 2; // 더블 버퍼링
scd.BufferDesc.Width = 1920;
scd.BufferDesc.Height = 1080;
scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
scd.OutputWindow = hwnd;
scd.SampleDesc.Count = 1;
scd.SampleDesc.Quality = 0;
scd.Windowed = TRUE;
✅ 1. Single Buffering (싱글 버퍼링)
- 화면 출력에 사용되는 하나의 버퍼만 존재.
- CPU나 GPU가 이미지를 그리는 동안, 그 같은 버퍼를 디스플레이도 읽음.
- 결과:
- 화면 깜빡임(flickering), 티어링(tear) 발생 가능.
- 과거 저사양 시스템이나 간단한 UI에 사용.
✅ 2. Double Buffering (더블 버퍼링)
- 두 개의 버퍼 사용:
- Front Buffer: 현재 화면에 출력되고 있는 버퍼.
- Back Buffer: GPU가 그림을 그리고 있는 버퍼.
- GPU가 백 버퍼에 그림을 다 그리면, 두 버퍼를 Swap(교환).
- 결과:
- 부드러운 출력, 깜빡임 방지.
- 거의 모든 게임 및 응용에서 기본 사용.
✅ 3. Triple Buffering (트리플 버퍼링)
- 세 개의 버퍼 사용.
- GPU는 백 버퍼 1, 2를 교대로 사용하고, 프론트 버퍼는 출력 전용.
- 결과:
- 더 나은 프레임 유연성 제공.
- V-Sync 켜진 상황에서도 프레임 드랍이 덜함.
- 단, 더 많은 메모리 사용
한문장 요약
DirectX에서 버퍼링은 GPU가 그린 프레임을 저장하는 메모리 구조이며, 화면에서 부드럽고 깔끔하게 이미지를 출력하기 위해 사용하는 출력 단계 기술이다.
[Triple Buffering]
GPU → [BackBuffer2] → [BackBuffer1] → [FrontBuffer] → 화면
[Double Buffering]
GPU → [BackBuffer] → [FrontBuffer] → 화면
[Single Buffering]
GPU → [FrontBuffer] (그림 그리는 중 화면에 노출)
'이론 > DirectX' 카테고리의 다른 글
ID3D11_DeviceContext _인터페이스 (0) | 2025.06.07 |
---|---|
DirectX : SwapChain 구조체, Factory 생성 및 Device 불러오기 (0) | 2025.06.07 |
DirectX 관련 키워드 및 개념 요약 정리해두기 (1) | 2025.06.02 |
Time 관련 (0) | 2025.06.02 |
DirectX 윈도우 창 띄우기 (0) | 2025.06.01 |