inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

장치 초기화

Transition 질문있읍니다.

230

akrhwkwk

작성한 질문수 9

0

CommandQueue::RenderBegin 함수와 RenderEnd 함수에서 Transition함수를 호출하는데, 이 Transition 함수가 정확히 무엇을 하는지 잘 모르겠습니다.

일단 제가 이해한 것은 이렇습니다.

swapchain에 버퍼가 2개 있습니다. 각 버퍼에는 리소스가 담겨있으며,  각 버퍼를 0번 버퍼, 1번 버퍼라고 하겠습니다.  하나는 현재 화면에 출력하는 용도(이하 Present), 다른 하나는 GPU가 다음 화면에 출력할 내용을 기록하는 용도(이하 RenderTarget) 입니다.

현재 0번 버퍼는 Present, 1번 버퍼는 RenderTarget로 사용되고 있는 상태팁니다. 이 때, RenderBegin의 Transition 함수 호출문은 Present 버퍼를 RenderTarget 버퍼로 바꿉니다. 즉 0번 버퍼를 RenderTarget으로 바꿉니다. 

그렇다면 여기서 의문점이 생깁니다. 

Present 버퍼의 상태를 바꿀 건데 어째서 Transition 함수에 첫 번째 인자로  RenderTarget 버퍼를 넘겨주었나요? 

또, 0번 버퍼를 RenderTarget으로 바꾸면 0번, 1번 버퍼 둘다 RenderTarget인 상태가 맞나요? 

만약 그렇다면, RenderEnd 에서 Transition 함수는 RenderTarget  버퍼를 Present 버퍼로 바꾸는데, 0번과 1번 둘 중 어떤 RenderTarget 버퍼를 바꿔주나요? 

아니라면 제가 잘못 이해하고 있는 부분은 어떤 것인가요??

 

질문이 길었는데 읽어주셔서 감사합니다.

게임수학 DirectX

답변 1

0

Rookiss

해당 부분은 후반에 또 나오므로 일단은 넘어가시기 바랍니다.
간단히 설명드리면, 1개는 화면 출력 (Present) 용도로,
다른 한 개는 화면을 그리는 (RenderTarget) 용도로 활용되고
동시에 두개를 RT으로 활용하진 않습니다.
매 프레임마다 용도를 뒤바꿔주며 교체해주게 되는데요.
Transition은 이렇나 용도 변경이라고 보시면 됩니다.
그냥 1개로 화면 출력 / 버퍼 용도로 공유하지 않는 이유는
출력되고 있는 화면에 그림을 그릴 시 화면에 잔상이 남을 수 있기 때문입니다.


Lighting 추가하고 나니 프레임이 많이 떨어지는데 원래 이런 건가요?

0

516

0

Deferred Rendering 에서 조명에 Culling이 일어나는 것 같습니다.

1

541

1

static_pointer_cast와 static_cast의 차이가 무엇인가요?

0

1340

1

Engine.lib 파일을 포함 불가

0

608

1

셰이더 VS_Main에서 행렬 곱해줄 때

0

488

2

1:05분 질문(1시간 5분)

0

299

0

오류가 발생합니다

0

476

1

Animation코드가 무한로딩에 걸리네요

0

348

0

fov 관련해서 질문이 있습니다

0

276

0

normal mapping Tangent Space 수학식 질문

0

384

1

커리큘럼 관련 질문 드립니다!

0

275

0

강의를 어떤식으로 들으면 될까요??

0

381

1

머티리얼과 텍스쳐, 셰이더를 따로 관리해도 되나요?

0

434

1

박스 메쉬 생성하는 함수에서 버텍스가 왜 24개인가요

0

242

1

복수개의 서로 다른 동영상을 Picture in Picture 형식으로 rendering하는 가장 최적의 방법이 궁금합니다.

0

259

0

애니메이션 쉐이더에서 행렬보간 부분에 대해 질문드립니다

0

230

0

assert 에서 _currentIndex 와 _elemtSize 를 비교하는게 이해가 잘 안되네요

1

246

1

DX 공부방법에 대해서 질문 있습니다.

0

634

1

Root Parameter 를 정의하는데 있어서 질문있습니다.

0

372

1

Client 콘솔창이 잠깐 켜졌다가 말아요

0

253

1

DirectX12 Root Signature : CBV관련 질문입니다.

0

350

1

뷰 변환 행렬 관련하여

0

629

2

강의 시작!

0

302

1

using namespace Microsoft::WRL;

0

271

1