강의

멘토링

로드맵

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

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

작성한 질문수

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

장치 초기화

CommandQueue 질문

해결된 질문

작성

·

276

0

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

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

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

퀴즈

51%나 틀려요. 한번 도전해보세요!

윈도우즈 API 기반 게임 프로그램의 주 실행 루프가 콘솔 프로그램과 다른 근본적인 이유는 무엇일까요?

백그라운드에서만 실행되기 때문에

시스템 자원을 최소한으로 사용해야 해서

표준 입출력을 사용하지 않기 때문에

사용자 입력을 기다리지 않고 지속적으로 화면을 업데이트해야 해서

답변 1

1

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

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

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

작성한 질문수

질문하기