• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

swapchain에서

21.05.21 01:16 작성 조회수 126

0

 RenderingBegin, RenderingEnd에서

swapchain이 버퍼로서 2개를 가지고있고 

하나는 출력 다른 하나는 외주?렌더링을 하는데

출력하는 버퍼는 오직 출력만 하고

렌더링 하는 버퍼는  RenderingBegin, RenderingEnd

실행을 하고 swapindex()를 실행해서 렌더링 버퍼를 출력 버퍼로, 출력 버퍼를 렌더링 버퍼로 교환해주는게 맞나요?

그렇다면 CD3DX12_RESOURCE_BARRIER::Transition(....)  이 함수가 단 하나의 버퍼를 대상으로 실행하는 함수가 맞나요??

swapchain 1, 2 를 교환해준다는 개념으로 생각하면 말이 안되 햇갈려서 질문 드립니다!

감사합니다.

답변 1

답변을 작성해보세요.

0

출력 버퍼를 설정하는 부분은 다음과 같습니다.

GetBackBufferView() 는 내부적으로 2개의 버퍼 중 1개를 선택하는데,
index 교체를 SwapIndex()로 해주고 있습니다.
CD3DX12_RESOURCE_BARRIER::Transition
이 아이는 리소스의 상태를 변경하는 역할을 담당하며
[기존 상태 -> 새로운 상태]로 변경하고 1개의 리소스 대상으로만 호출합니다.

해당 부분도 나~중에 RenderTarget에 대한 내용을 다룰 때
또 살펴볼 기회가 있으니, 일단 잘 이해가 안 가도 쭉 스킵하셔도 무방합니다.