프로젝트 설정
이번 포스팅에서는 DirectX를 이용한 게임 엔진을 만들 프로젝트의 기본 설정을 다루고자 한다.
1.클라이언트 생성
Visual Studio에서 게임엔진/클라이언트을 구성할때는 window 데스크탑 애플리케이션을 기반으로 제작이 진행된다.
2.엔진 생성
엔진은 공용기능을 모아둔 도서관과 같은 개념을 가지고 있기에 라이브러리로 활용이 된다. 라이브러리에는 동적라이브러리(dll)과 정적라이브러리(lib)로 나뉘는데 외부에서 관리할 경우dll을 내부에서 관리할 경우lib를 사용한다. 이번 프로젝트는 내부에서 관리하기 때문에 lib를 사용한다.
엔진의 구성
엔진에는 다양한 코드들이 들어가지만 초기 엔진에는 3가지 정도가 들어간다.
A.pch
미리 컴파일된 헤더이다. 용도는 자주 사용되는 라이브러리들을 구성하고 있으며, 한번에 빌드를 한다. 이 빌드한 것을 공유하여 속도를 향상에 도움을 주는 용도로 쓰인다.
B.EnginePch
각종 헤더파일(#include<dxgi.h>), 각종 라이브러리(#pragma comment(lib,"d3d12")), 각종 typedef(using uint64=unsingned __ int 64;)등이 들어간다.
C.d3dx12.h
기본적인 헤더파일이 아닌 ms에서 비공식적으로 제공하는 유틸라이브러리이다.DX를 사용하고자 할때 좀더 편리한 함수들이 포함되어 있다.
3. 라이브러리 적용
lib는 dll과 다르게 빌드단계에서 같이 적용되어야 하기 때문에 lib파일만 있으면 적용이 되지 않는다. 따라서 엔진라이브러리 파일을 빌드할때 사용한 헤더파일들도 같이 클라이언트 프로젝트에 경로를 알려줌으로써 적용시켜야 한다.
엔진프로젝트 속성에서 미리 컴파일된 헤더부분의 헤더파일을 pch.h로 헤더를 사용으로 설정한다.
클라이언트 프로젝트에서 pch를 각각 만들어 준다.
pch의 속성의 미리 컴파일된 헤더쪽에서 미리 컴파일된 헤더를 사용에서 만들기로 변경한다.
반드시 pch는 최상단에 포함시켜야 한다.
Enginepch를 적용시킨다. 하지만 엔진프로젝트는 클라이언트 프로젝트와 다른경로에 존재하기 때문에 위와 같이 에러가 뜨게 된다.
클라이언트 속성의 C/C++ 일반항목쪽의 추가 포함 디렉터리에 헤더파일의 위치를 작성해주면된다.
링커 일반항목에는 엔진라이브러리가 만들어지는 경로를 넣어주게 되면 엔진의 경로를 알려준것이 된다. 하지만 알려주는 것만으로는 아직 적용이 된것이 아니다. #pragma comment(lib,"Enginelib")라는 것을 클라이언트 pch에 넣음으로써 전처기 과정에서 Enginelib를 사용할것이라는 것을 요청하면 적용이 끝나게된다.
Output적용
아웃풋을 지정하지 않으면 보통 x86이나 x64와같은 이름에 결과물이 저장되게 된다. 결과물을 찾을때 가독성이 떨어지기 때문에 Output이라는 폴더에 저장하도록 지정해준다.
'게임엔진 > DirectX' 카테고리의 다른 글
DX) 6. Tessellation (0) | 2023.06.01 |
---|---|
DX) 4. IA(InputAssembler) (0) | 2023.03.03 |
DX)3.Device (0) | 2023.03.03 |
DX)2.렌더링파이프라인 가이드 (0) | 2023.03.03 |
DX)1.렌더링 파이프라인 (0) | 2023.02.11 |
댓글