inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

삼각형 띄우기 강의 중에서 질문 드립니다

해결된 질문

289

시슴

작성한 질문수 10

0

안녕하세요

삼각형 띄우기 강의를 듣다 궁금한 점이 있어 질문드립니다

삼각형 띄우기 강의에서 EnginePch.h에서 

struct Vertex

{

Vec3 pos;

Vec4 color;

};

이렇게 Vertex 자료형을 정의 하셨는데 

여기서 궁금한점이 어떻게 Mesh.h에서는 아무런 파일도 #include 하지 않았는데

어떻게 다른파일(EnginePch.h)에서 정의한 Vertex 자료형을 사용할 수 있는지 궁금합니다

프리 컴파일 헤더여도 Mesh.cpp에서와 같이 #include "pch.h" 를 해줘야 

EnginePch.h에서 정의한 자료형을 사용할 수 있을거 같은데

Mesh.h에서는 #include "pch.h"를 하지 않고도 struct Vertex 자료형을 사용할 수 있는지 궁금합니다.

DirectX 게임수학

답변 1

1

Rookiss

정확한 내용은 C++ 컴파일 원리를 이해해야 하는데 너무 복잡한 주제입니다.
일단은 PreCompiledHeader는 일반 헤더랑 조금 동작이 다르다고 생각하시면 됩니다.
pch.h에서 정의한 애들은, 일반 헤더에서도 '대부분' 사용할 수 있습니다.
'대부분'이라 한 이유는 pch.h에서 추가된 순서에 따라 예외 케이스가 있을 수 있는데요.

예를 들어, pch.h에서

#include "Mesh.h"
#include <vector>

순서로 include를 했다 하면
Mesh.h 에서 바로 vector를 사용할 수 없고
Mesh.h 헤더에서도 #include <vector>를 명시적으로 넣어줘야 합니다.

반면 pch.h에서

#include <vector>
#include "Mesh.h"

위 순서로 추가 해줬다면, Mesh.h에서 vector를 바로 사용할 수 있습니다.

0

시슴

답변 감사합니다

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

0

524

0

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

1

563

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

232

0

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

1

248

1

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

0

642

1

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

0

377

1

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

0

255

1

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

0

353

1

뷰 변환 행렬 관련하여

0

632

2

강의 시작!

0

306

1

using namespace Microsoft::WRL;

0

275

1