본문 바로가기
그래픽스 API/DirectX 11

[DirectX 11 in Windows 10/11] 0. DirectX 학습 방향

by 니키티스 2023. 8. 2.

학습 동기

나만 그럴지는 모르지만, 게임 개발자에게 있어서 DirectX는 공부하기 싫어도 맨날 마음의 숙제처럼 남아 있는 친구라고 생각한다.

OpenGL은 그나마 학교 수업에서라도 하니까 강제로 하게 되는데 DirectX는 한국의 게임 업계에서는 많이 쓰지만(Windows 플랫폼에 적합!) 해외에서는 오히려 Vulkan 같은 것들을 더 주목하고 있는 형편이고... 그래서 공부하는 데에는 참 시간이 많이 걸리는데 Unity 같은 것처럼 공부했을 때 바로바로 결과물을 얻을 수 있는 공부는 아니라고 생각한다.

그렇지만 그래픽스와 Shader를 공부하면 할수록 기반 지식의 중요성이 참 커진다.

그래서 큰맘 먹고 다시 DirectX를 공부하기로 했다!

아래에 영천님께서 아주 좋은 조언을 해주셨는데, DirectX를 처음 학습하는 경우에는 12 버전보다는 11 버전을 공부하는 편이 낫다고 한다. 

그런데 지금은 DirectX 11의 교과서나 다름 없는 물방울 책도 절판났고, 그러다 보니 Direct3D 11을 학습할 만한 제대로 된 (한국어) 교재도 없으며, 그렇다고 해서 Direct3D 12를 공부할 수도 없는 노릇이다. Direct3D 12는 프로그래머가 로우 레벨에서 제어할 수 있는 것이 너무 많아진 바람에, 역설적으로 프로그래머가 제어하는 것이 어려울 정도로 학습하기 어렵다.

만약 처음 DirectX를 학습하는 사람이 있다면, 여기 영천님이 작성한 글이 있으니 이 글을 보고 학습 방향을 잡아보자.

Direct X 프로그래밍 학습에 대한 조언 – yuchi's development (megayuchi.com)

 

Direct X 프로그래밍 학습에 대한 조언

간만에 페이스북 DirectX 그룹에 질문이 올라와서 답변을 달았다. 답변 달다보니 몇 가지 강조할 내용은 정리해서 어디 남겨야겠단 생각이 들었다. DirectX 프로그래밍을 학습하려고 한다면… 1. 현

megayuchi.com

 

다만 주의할 점은, DirectX가 게임 개발에 도움이 된다고 해서 바로 이것부터 공부해야지! 하는 사람은 없었으면 좋겠다.

유니티 같은 상용 엔진으로 충분히 게임을 만들어보고, 기본기가 부족하다는 체감을 느낀 이후에야 DirectX 같은 라이브러리를 공부하는 것이 성장에 도움이 된다고 생각한다. 물론 이건 개인적인 의견이니 여러분들이 내린 판단이 최우선이라는 점을 고려해줬으면 좋겠다...

그럼 무엇을 보고 공부해야 하나?

DirectX 11은 이전 버전이다 보니 공부하기가 쉽지 않은 건 사실이다... 게다가 이전에 쌓여 있는 버전이 너무 많아서 이전 버전에서 사용된 개념들을 모르면 참 진입하기도 어려운 것 같다.

일단 우선, 컴퓨터 그래픽스 개념을 알아야 그래픽스 API의 개념도 이해하기 쉽다. DirectX나 OpenGL이나 둘 다 컴퓨터 그래픽스의 개념에 기반을 두고 있으므로 그래픽스부터 공부한 다음에 DirectX를 공부하자.

컴퓨터 그래픽스

게임 프로그래머 지망생이라면 컴퓨터 그래픽스 책은 다음을 추천한다.

3차원 그래픽스 | 한정현 - 교보문고 (kyobobook.co.kr)

 

3차원 그래픽스 | 한정현 - 교보문고

3차원 그래픽스 | 『게임 프로그래밍을 위한 3차원 그래픽스』는 실시간 그래픽스 분야에서 반드시 알아야 할 핵심 내용들을 담고 있다. GPU를 중심으로 구성된 이 책은, 프로그램 가능한 단계를

product.kyobobook.co.kr

의외로 모르는 사람이 많은 책이지만 한 글자 한 글자가 주옥같은 책이니, 꼭 읽어보길 추천한다.

DirectX 11 학습 자료

DirectX 11 학습 자료는 인터넷에서 찾아보면 꽤 많이 있다.

사실 영어로 된 자료들이 양질의 자료가 많으므로, 영어 읽을 실력만 된다면 힘들어도 원문을 읽는 걸 추천한다.

주의사항

공부할 때 주의사항이 있다면, Windows 8 버전 이후부터는 DirectX 11은 Direct SDK가 아니라 Windows SDK에 포함된다는 점이다.

여전히 Direct SDK를 이용해서 DirectX 11을 사용할 수도 있지만 이는 Deprecated되어 MS 측에서는 버전 관리용으로만 사용할 것을 권고하고 있다.

DirectX 11이 Windows SDK에 기본 패키지로 포함되면서 생긴 문제점은, Direct SDK와 충돌이 일어날 수 있으며 둘 사이에 약간의 사용 함수 차이가 있다 보니까 포팅을 할 때 번거롭다는 것이다. 즉, Direct SDK와 Windows SDK는 동시에 설치하면 안된다는 것이다.

따라서, DirectX 11을 공부하려면 Visual studio 2013 이전 버전과 Direct SDK''을 설치해서 사용하거나, 아예 Direct SDK를 설치하지 않고 Windows SDK를 설치하여 Windows SDK 버전의 DirectX 11을 개발해야 한다.

이로 인해 기존에 Direct SDK를 사용하던 프로젝트를 그대로 Windows SDK가 설치된 환경에서 개발하여 실행하려고 하면 제대로 실행되지 않는다는 문제가 있다. 이를 포팅하려고 한다면 다음 글을 참고하자.

Vanica's Lifelog - 夢が夢で終わらないように : 네이버 블로그 (naver.com)

 

윈도우 8 이후 버전에서 DirectX 11사용하기 (Converting legacy code in DirectX 11 to use it in windows 8 or higher ve

 Windows 8 이후 버전부터 게임 개발을 하기 위해 사용했던 DirectXSDK는 WindowsSDK로 처...

blog.naver.com

 

Rastertek(English)

Windows 10이나 11을 사용하고 있을 때 DirectX 11을 공부하고 있다면, 다음 글을 추천한다.

DirectX 11 on Windows 10 Tutorials (rastertek.com)

 

DirectX 11 on Windows 10 Tutorials

Tutorial 8: Scaling, Rotation, and Translation

www.rastertek.com

 

빠재의 노트(한국어)

그러나 역시 공부할 때 영문은 공부하기 힘들다.

위 링크를 한땀한땀 번역해주신 '빠재의 노트'는 위 내용을 한글로 읽을 수 있어 정말 유익하다.

다만 번역하신지가 오래됐다 보니 강좌가 업데이트되기 전의 버전(Windows 7 버전 강의)이라는 점을 감안해야 한다. Direct SDK를 사용하는 버전의 강의이므로, Windows SDK를 사용하는 경우에는 둘 사이의 차이를 생각하면서 프로그래밍해야 한다...

빠재의 노트 :: DirectX11 Tutorial 1 - Visual Studio에서의 DirectX11 설정 (tistory.com)

 

DirectX11 Tutorial 1 - Visual Studio에서의 DirectX11 설정

Tutorial 1: Visual Studio에서의 DirectX11 설정 원문: http://www.rastertek.com/dx11tut01.html 그래픽 프로그래밍을 하기 위해서는 우선 툴이 필요합니다. 가장 먼저 필요한 것은 컴파일러죠. 좋은 IDE에 포함되어

blog.nullbus.net

위 블로그는 다음 강의 시리즈를 번역한 것이다. 현재에는 Windows 10용으로 바뀌었다.

DirectX 11 Tutorials (rastertek.com)

 

DirectX 11 Tutorials

Tutorial 49: Shadow Mapping and Transparency

www.rastertek.com

이외 참고 자료

공부하면서 많은 사람들이 Rastertek이 작성한 글에 대해 번역해주셔서, 이를 보고 공부해도 도움이 될 듯하다.

특히 처음에 개발 환경 세팅을 할 때 이분의 글에서 도움을 많이 받았다.

DirectX 11 개발 환경 설정 (tistory.com)

 

DirectX 11 개발 환경 설정

windows10, vs2019 환경으로 작성된 글입니다. 1. Windows SDK 설치 다이렉트x 11부터는 windows SDK에 directX Sdk가 기본적으로 포함되어 있다. DirectX SDK는 Legacy가 되었고 Windows sdk를 깔면 된다. 설치 링크 나는

handhp1.tistory.com

유튜브에도 학원 강사나 외국의 유튜버분들이 DirectX 11 강의 자료를 많이 남겨놨으니 그걸 보고 공부해도 좋다고 생각한다.

나처럼 DirectX 11을 공부해보고 싶은 사람들은 이 글과 이후 작성할 시리즈로 도움을 받고 갔으면 좋겠다.

댓글