강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

산삼님의 프로필 이미지
산삼

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12

장치 초기화

CommandQueue 질문

해결된 질문

작성

·

270

0

RenderBegin()과 RenderEnd()의 실행 과정이 제가 이해한 내용이 맞는지 모르겠어서 질문드립니다.

만약 [0] [1] 의 더블버퍼가 있다고 가정할 때,  swapChain의 BackBuffer가 1일 경우 RenderBegin에서 1의 상태를 <화면출력> 상태에서

<외주 결과물> 상태로 바꿔주고  GPU가 사용할 수 있게 만든 후,  GPU의 처리가 끝나고 결과물을 화면에 출력하기위해 RenderEnd를 이용하여 1의 상태를 <외주 결과물>에서 <화면 출력>으로 바꿔주고  GPU는 이어서 0을 사용해야하기 때문에 SwapChain의 백버퍼를 0으로 바꿔준다고 이해했는데.. 이게 맞나요? 쓰면서도 제가 무슨 말 을하는지 모르겠네요...

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

그 부분은 후반에 RenderTarget을 다룰 때 계속 해보기 때문에, 일단 넘어가셔도 됩니다.
RenderBegin/RenderEnd 보다는 사실 OMSetRenderTarget 이라는 API가 핵심인데
결과적으로 우리는 2개의 버퍼를 만들어서 매 프레임마다 교체를 해주고 있습니다.
2개 버퍼 중 하나는 실제 출력 용도,
하나는 다음 프레임 화면을 그리는 대상으로 사용하는 것이죠.

산삼님의 프로필 이미지
산삼

작성한 질문수

질문하기