-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
해결됨
CommandQueue 질문
21.07.23 21:55 작성 조회수 160
0
RenderBegin()과 RenderEnd()의 실행 과정이 제가 이해한 내용이 맞는지 모르겠어서 질문드립니다.
만약 [0] [1] 의 더블버퍼가 있다고 가정할 때, swapChain의 BackBuffer가 1일 경우 RenderBegin에서 1의 상태를 <화면출력> 상태에서
<외주 결과물> 상태로 바꿔주고 GPU가 사용할 수 있게 만든 후, GPU의 처리가 끝나고 결과물을 화면에 출력하기위해 RenderEnd를 이용하여 1의 상태를 <외주 결과물>에서 <화면 출력>으로 바꿔주고 GPU는 이어서 0을 사용해야하기 때문에 SwapChain의 백버퍼를 0으로 바꿔준다고 이해했는데.. 이게 맞나요? 쓰면서도 제가 무슨 말 을하는지 모르겠네요...
답변을 작성해보세요.
1
Rookiss
지식공유자2021.07.23
그 부분은 후반에 RenderTarget을 다룰 때 계속 해보기 때문에, 일단 넘어가셔도 됩니다.
RenderBegin/RenderEnd 보다는 사실 OMSetRenderTarget 이라는 API가 핵심인데
결과적으로 우리는 2개의 버퍼를 만들어서 매 프레임마다 교체를 해주고 있습니다.
2개 버퍼 중 하나는 실제 출력 용도,
하나는 다음 프레임 화면을 그리는 대상으로 사용하는 것이죠.
답변 1