2015.08.06 22:37

그래픽카드는 하드웨어적으로 프레임 버퍼의 내용을 화면으로 한줄씩 순서대로 출력한다.

만약 응용 프로그램이 출력할 내용을 프레임 버퍼에 그리는 도중에 버퍼를 화면에 출력하게 된다면 그리는 과정이 보여지게 되어 불완전한 장면이 출력될 것이다.

 

 

 

또는 그려지는 내용이 화면에 보이게 되어 깜빡임 현상이 나타날 수 있다.

이러한 문제를 해결하기 위하여 대부분의 3D 그래픽 출력에서는 그래픽카드의 비디오 메모리에 프레임 버퍼를 두 개 이상 만들어서 사용한다.

이 때 전면 버퍼와 후면 버퍼로 구분할 수 있다.

 

전면 버퍼 ( Front Buffer )

 - 현재 화면에 출력되고 있는 프레임 버퍼

 

후면 버퍼 ( Back Buffer )

 - 전면 버퍼가 아닌 버퍼 

 - 응용 프로그램을 위한 버퍼

 - 실제로 Rendering이 일어나는 버퍼 == Render Target

 

 

더블 버퍼링 ( double Buffering )

 - 프레임 버퍼를 두 개 사용하는 것으로 하나의 백 버퍼를 갖는 것을 말한다.

 

스왑 체인(Swap Chain)

 - 화면에 하드웨어적(자동적)으로 출력되는 Front Buffer와 Render가 일어나는 Back Buffer 들이 순차적으로 연결된 프레임 버퍼들의 집합을 말한다.

 

프리젠테이션 ( Presentation )

 - Back Buffer의 내용을 Front Buffer로 옮기는 것.

-> Front Buffer는 디스플레이 (모니터)와 하드웨어적으로 연결되어 있으므로 프리젠테이션은 곧 화면 출력을 의미한다고 볼 수 있다.

이러한 프리젠테이션의 방법으로는 두 가지가 있는데 플리핑과 블리트이다.

 

플리핑( Flipping )

 - 프리젠테이션을 할 때 하드웨어적인 방법으로 전면버퍼와 후면버퍼를 바꿔치기 하는 방법. ( 빠르다. )

 

블리트( blit )

 - 버퍼를 복사하는 것. ( 당연히 플리핑보다 더 느리다. )

 


 

 

 

 

 

[참고문헌 : 이용희, DirectX11로 시작하는 3D 게임 프로그래밍, 2013.4.15, 프리렉 ]



출처 : http://blog.naver.com/jidon333


신고
Posted by 우엉 여왕님!! ghostkyow

티스토리 툴바