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 |
댓글