inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

장치 초기화

DirectX12 초기화 - 장치초기화 질문 있습니다.

301

rabbit jack

작성한 질문수 5

0

25:06에서 Engine.cpp에

CommandQueue.h와 Swapchain.h, DescriptorHeap.h를 include하는것을 볼 수 있는데요.

왜 각 헤더파일들을 Engine.h에서 include 안하는건가요?

여기 뿐만 아니라 강사님은 헤더파일 안에서 다른 헤더파일을 include 하는것을 지양하시는것 같은데 왜 그런가요?

DirectX 게임수학

답변 1

0

Rookiss

C++에서 헤더 파일에서 다른 헤더 파일을 #include 하는 것은 가급적 피해야 하고
최대한 전방 선언을 사용해야 합니다.
상속 등을 사용해서 정말 해당 파일의 기능이 당장 필요할 때,
혹은 #include하는 대상이 아주 작을 경우라면 괜찮지만
그 기능이 필요하다고  #include를 헤더에서 신나게 추가하기 시작하면
나중에 구조가 수습이 안 되는 말이 발생합니다.

우선 #include에 순환이 생기는 문제가 있습니다.
A.h B.h가 있는데, A.h에서는 B.h를 #include하고,
B.h에서 A.h를 #include하면 그냥 컴파일이 되지 않습니다.
(내가 존재하려면 타인이 존재해야 하고, 그 타인이 존재하려면 내가 존재해야 한다 @_@???)

두번째로 .h에서 다른 .h를 #include하면 헤더 사이의 종속성이 생깁니다.
A.h가 B.h를 #Include하는 상황에서, B.h의 내용이 수정되면,
A.h를 #include하는 모~든 애들도 다시 컴파일 되어야 합니다.
작은 프로젝트라면 상관없을 수도 있지만
나중에 게임이 커지면 컴파일이 몇 분씩 걸릴 수도 있습니다.

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

0

524

0

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

1

564

1

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

0

1353

1

Engine.lib 파일을 포함 불가

0

617

1

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

0

491

2

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

0

303

0

오류가 발생합니다

0

479

1

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

0

350

0

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

0

282

0

normal mapping Tangent Space 수학식 질문

0

388

1

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

0

278

0

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

0

385

1

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

0

444

1

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

0

245

1

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

0

262

0

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

0

233

0

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

1

248

1

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

0

643

1

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

0

377

1

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

0

255

1

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

0

353

1

뷰 변환 행렬 관련하여

0

634

2

강의 시작!

0

306

1

using namespace Microsoft::WRL;

0

275

1