[DirectX11] 1. 환경 구축을 해보자.

DirectX11 개발 환경 구축을 해보자. 2024년 기준으로 환경 구축을 어떻게 하는지 한번 알아보자.

프로그램 설치


Visual Studio 2022 설치

Visual Studio 2022 커뮤니티 버전 – 최신 무료 버전 다운로드에서 설치한다.

IDE는 Rider( 이하 라이더 ) 를 사용할 예정이지만 라이더에는 컴파일러가 포함되어 있지 않다. 라이더는 MSVC( Microsoft Visual C++ )에 의존하기 때문에 이를 사용하기 위해서 설치하는 것이다.

Rider 설치

Rider: JetBrains의 크로스 플랫폼 .NET IDE에서 설치한다.

개인적으로 라이센스를 결제해서 사용하고 있었는데 개인 사용자에게 한해서 무료로 사용할 수 있다. Visual Studio와 비교해서 여러가지 장점이 있다. 가장 큰 장점으로는 Reshaper C++을 사용할 수 있다는 것. Visual Assist의 대다수 기능을 사용가능하다. 게다가 무료 ㅎㅎ

프로젝트 설정


프로젝트 생성

라이더에서는 C++를 이용한 윈도우즈 어플리케이션 프로젝트 생성을 할 수 없다. 조금 아쉽긴 하지만 VS2022에서 일단 생성하고 라이더를 이용해서 솔루션을 열면 된다.

VS2022에서 다음과 같은 프로젝트를 생성해준다. 솔루션 이름은 CRY, 프로젝트 이름은 Engine으로 두었다.

버전 컨트롤 연결

프로젝트를 생성했으면 가장 먼저 해야할 일은 버전 컨트롤에 연결하는 것이다. 나는 GitHub( 이하 깃헙) 를 이용한다.

  • 깃헙에 저장소 추가
  • 저장소에 생성한 솔루션 폴더를 기준으로 파일들 업로드
  • 라이더에서 프로젝트를 버전 컨트롤을 이용해서 오픈
라이더에서 깃헙 계정을 연결해놓으면 생성해둔 저장소로부터 쉽게 프로젝트를 열고 생성할 수 있다.

DirectX ToolKit 포함하기


Windows10기준으로 DirectX SDK는 따로 설치하지 않아도 Windows SDK에 이미 포함되어 있다. 그렇다 하더라도 일단 DirectX SDK만 가지고서 프로그래밍을 하기에는 많은 헬퍼 클래스를 만들어주어야 한다. 간단한 수학 관련 클래스부터 텍스처 로드까지.

다행히도 마이크로 소프트에서는 이런 헬퍼형 함수를 어느정도 툴킷으로 제공하고 있다. 바로 DirectX Toolkit( 이하 DirectXTK ) 이며, DirectXTK에서 다운로드 받을 수 있다. 이 툴킷은 DirectX 11버전을 대상으로 하며 DirectX 12버전에 대응되는 툴킷은 DirectXTK12에서 따로 제공하고 있다.

난 우선 DirectX 11버전으로 시작하므로 DirectXTK를 설치한다.
깃허브로부터 프로젝트를 다운로드 받고 빌드를 해서 lib파일을 따로 포함해도 되지만 내 솔루션에 포함해서 차후 내 솔루션을 다시 받아 빌드할 때 다시 이런 과정을 거치지 않도록 한다.

프로젝트 다운로드 및 솔루션에 포함

깃허브에서 zip으로 다운로드 받아 압축을 푼 다음 내 솔루션 폴더에 복사를 해주었다. CRY/Extras/DirectXTK폴더로 복사해주었다.
그리고 솔루션에 해당 프로젝트를 추가한다.

DirectXTK 빌드 후 이벤트 추가

외부 프로젝트의 라이브러리 파일은 모두 한 곳에 모을 예정이다.
디버그는 디버그 폴더에 있는 라이브러리를, 릴리즈는 릴리즈 폴더에 있는 라이브러리를 복사할 수 있도록 둘 다 설정해둔다.

xcopy /Y “Bin\Desktop_2022_Win10\x64\Debug\DirectXTK.lib” “….\Extras\Libs\”
DirectXTK가 빌드가 끝나면 빌드된 lib파일을 Extras\Libs쪽 폴더로 복사한다.

외부 헤더 및 라이브러리 경로 추가

헤더 및 라이브러리 경로를 추가해서 코드내에서 입력하는 경로를 줄이자.

$(ProjectDir)/Extras헤더 경로 추가
$(ProjectDir)/Extras 라이브러리 경로 추가

테스트 코드 빌드
#include <DirectXTK/inc/SimpleMath.h>

#pragma comment ( lib, "DirectXTK.lib" )

이슈 없이 잘 된다. 이렇게 준비가 일차적으로 끝났다.
빌드하면서 추가로 생성되는 파일을 제외하고 나머지는 깃헙에 최신화 하는 것을 잊지 말자.

다음글 : [DirectX11] 2. 초기화 – 디바이스 객체들을 만들어 보자.

Leave a Comment