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
- DirectX12
- 다중표본화
- 동기화
- swapchain
- vertex
- 코딩
- C++
- Input Assembler
- View
- 다이렉트 초기화
- c
- 게임수학
- DESC
- engine
- 전처리문
- CommandList
- UE4
- 프로그래밍
- C언어
- DirectXTK
- Direct3D Init
- 다이렉트X 튜토리얼
- DirectX
- Direct Init
- 다이렉트X
- RenderTargetView
- 세팅
- GPU
- Direct3D
- CPU
Archives
- Today
- Total
비타Cpp
SwapChain 과 페이지 전환 본문
애니메이션이 껌뻑이는 현상을 피하려면 SwapChain을 이용하는 것이 최선이다.
SwapChain은 애니메이션의 한 프레임 전체를 화면 바깥의(off-screen) 텍스처에 그린다. 이런 텍스처를 후면 버퍼(back buffer)라고 부른다. 주어진 한 프레임을 위해 장면 전체를 후면 버퍼에 그린다음에는, 그후면 버퍼를 하나의 완전한 프레임으로서 화면에 표시한다. 이렇게 하면 화면을 보는 사용자는 프레임이 그려지는 과정이 나타나지 않고 완성된 프레임만 보이게 된다.
이러한 기법을 이중 버퍼링이라고 부른다. 이중 버퍼링을 효율적으로 구현 하려면 하드웨어로 관리되는 두 개의 텍스처 버퍼가 필요한데, 하나는 전면 버퍼(front buffer)이고 다른 하나는 앞에서 말한 후면 버퍼이다.
화면에는 전면 버퍼에 담긴 이미지가 출력된다. 전면 버퍼가 화면에 표시되는 동안 후면 버퍼에 다음 프레임을 그리고, 다 그려지면 전면 버퍼와 후면 버퍼의 역할을 서로 바꾸게 된다. 그러면 기존의 전면 버퍼가 새로운 후면 버퍼가 되고 다음 프레임이 그려지게 된다.
이처럼 후면 버퍼와 전면 버퍼의 역할을 교환해서 페이지 전환이 되는 것을 DirectX에서는 제시(Presenting)이라고 부른다. 이러한 제시는 아주 효율적인 연산이다. 버퍼들의 내용 자체를 맞바꾸는 것이 아니라 그냥 현재 전면 버퍼로의 포인터와 현재 후면 버퍼로의 포인터만 맞바꾸면 되기 때문이다.
'DirectX12 > 메모' 카테고리의 다른 글
다중 표본화의 이론 (0) | 2021.07.18 |
---|---|
Resource & Descriptor(자원과 서술자) (0) | 2021.07.18 |
깊이 버퍼링(Depth Buffer) (0) | 2021.07.09 |
텍스처 형식(Texture Format) (0) | 2021.07.09 |
COM(Component Object Model) (0) | 2021.07.09 |
Comments