본문 바로가기
그래픽스/DirectX

스왑 체인과 플리핑(SwapChain, Flipping)

by 오늘의논리 2024. 5. 7.
728x90

Direct3D는 보통 두 개나 세 개의 표면 을 하나의 컬렉션으로 관리하며, 이 를 스왑체인이라 부른다.

스왑 체인은 IDirec3DSwapChain 인터페이 스를 통해 이 용할 수 있지만, 대부분의 작업은 Direct3D가 직접 관리하므로 우리가 이 인터페이 스를이 용하는 경우는 거의 없다.

 

스왕 체인과 페이지 플리핑 기술은 프레임 간의 부드러운 애니메이션을 제공하기 위 한 것이다.

 

스왑체인

 

모니터도 전면 버퍼의 이미지를 즉시 디스플레이할 수 있는 것은 아니며, 60헤르츠의 재생율을 가진 모니터라면 1/60초 정도의 시간이 필요하다. 애플리케이션의 프레임 율과 모니터의 재생 율이 동기화되지 않는 경우는 흔히 볼 수 있는데(예를 들어, 모니터의 디스플레이 능력보다 애플리케이션의 프레임 렌더링이 더욱 빠를 수있다) , 현 재 프레임 을 완전히 디스플레이하지 못한 상태에서 애니메이션의 다음 프레입으로 갱신하는 것을 원하지는 않겠지만, 전면 버퍼의 디스플레이를 마칠 때까지 렌더 링을 멈추는 것 또한 반가운 일은 아니다. 따라서 화면 밖의 표면(후면 버퍼)에 렌더링 을 수행하고, 전면 버퍼 표면의 디스플레이가 완료되면 스팝 체인의 끝으로 돌아가 후변 버퍼 를 전면 버퍼로 전환하는 방법을 이용한다. 이와 같은 과정을 시연(presenting) 이라 한다.

 

 

렌더링 코드의 구조는 다음과 같다.

1. 후면 버퍼를 렌더링 한다.

2. 후면 버퍼 시연한다.

3. 1번으로 돌아간다.

728x90

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

렌더링 파이프 라인  (0) 2024.05.08
깊이 버퍼(depth buffer)  (0) 2024.05.08
DirectX 기초  (1) 2024.05.07
TexAssemble.exe 활용 큐브맵 dds 만드는 법  (0) 2024.05.06
구 변환행렬, 조명, 텍스쳐 적용  (0) 2024.05.06

댓글