게임의 렌더링 시스템에서는 프레임 버퍼를 최소 두 개 사용한다. 프레임 버퍼에 대한 읽기와 쓰기를 동시에 수행할 수 있도록 하기 위함이다.

 

전체 장면을 한 번에 화면에 띄워주기 위해 한 프레임 버퍼가 화면에 띄워질 동안 다른 프레임 버퍼는 렌더링 코드에 의해 값이 쓰여진다. 값이 쓰여진 프레임 버퍼는 다시 GPU가 읽어 화면에 출력해 준다. 이 과정이 반복된다.

 

8.3 패턴

버퍼 클래스는 현재 버퍼와 다음 버퍼, 이렇게 두 개의 버퍼를 갖는다.

정보를 읽을 때는 현재 버퍼에 접근, 정보를 쓸 때는 다음 버퍼에 접근, 변경이 끝나면 다음 버퍼와 현재 버퍼를 교체한다.

 

DirectX에서는 렌더링을 위한 이중 버퍼를 지원한다. IDXGISwapChain 를 버퍼 클래스로 사용한다. GetBuffer로 버퍼 객체를 얻을 수 있다.

+ Recent posts