🕹️자체엔진/DirectX 11 개인공부

DirectX11 공부 1주차. 프레임워크 설계및 윈도우 생성

Mawile 2021. 11. 3.
728x90

안녕하시죠!!

저는 이번에 본격적으로 게임그래픽공부를 시작하게되었습니다.

사실 이전까지는 유니티에서 삽질만 해댔는데, 본격적으로 빡쎄게 공부하는건 이번이 처음입니다.

이번 공부시리즈는 그냥 저가 무엇을 공부했고, 궁금한점과 새로알게된 점에 대해서만 언급하는 시리즈입니다.

 

사실 엄청 고민했습니다.

directx11로 할지, opengl4로 할지 vulkan으로할지....ㅠㅠ

 

그 결과 directx11로 하기로 결정했습니다.

현재는 opengl보다 directx11를 더 많이 쓰기도하고, 제공하는 레퍼런스자체가 directx11쪽이 더 많기때문에...

opengl도 jnl이랑 연결해서 안드로이드로도 만들 수 있다고해서 "오??" 했는데,, 흠... 그냥 무난하게 directx11로 하겠습니다.

 

이번에 저희 아빠가 고등학교 졸업기념으로 고성능 노트북사주신다고하셔가지고... 이 노트북도 사실 중1때 산거고..

엄청오래됬고, 배터리수명도.. 노답... 덕분에 성능도 예전보다 저하.... 안그래도 사무용인데...

언리얼엔진 돌려봤는데 렉 15지더라구요!

 

그래서 이번에 고성능노트북 새로사면 언리얼엔진이랑 directx11 같이 병행해서 공부할까 합니다.

자!! 그러면 잡담은 여기까지하고 이번에 공부한 내용에 대해서 얘기해보죠.

책 구매할까 했는데... 그냥 directx책은 나중에 대학교 들어가면 구매하려구요..

 

참고

참고한 사이트

 

RasterTek - DirectX 10, DirectX 11, and DirectX 12 Tutorials

The purpose of this website is to provide tutorials for graphics programming using DirectX 10, DirectX 11, and DirectX 12. The DirectX tutorials are written using C++ with HLSL and use shader version 4.0, 5.0, and 5.1. I also have tutorials for different p

www.rastertek.com

 

이 사이트 엄청 친절하게 잘해놨습니다.

아쉬운점이라고한다면 저같은 입문자상대로 이론을 완벽하게 숙지시켜주지는 못했지만,

그래픽관련 용어랑 이론은 저가 따로 구글링+유튜브 로 채우면됩니다. (모를때마다 그때그때 찾아보죠.)

옛날사이트라서 그런지 중간에 코드오류도 많지만, 어차피 저는 저가 직접 쓸거라서 상관없습니다.

 

그럼 바로시작!

 

 

1주차. 프레임워크 설계및 윈도우 생성

이번에 공부한 내용은 이 내용입니다.

https://www.rastertek.com/dx11tut02.html

 

Tutorial 2: Creating a Framework and Window

Tutorial 2: Creating a Framework and Window Before starting to code with DirectX 11 I recommend building a simple code framework. This framework will handle the basic windows functionality and provide an easy way to expand the code in an organized and read

www.rastertek.com

 

 

아주 기본적인..

다이렉트 사용 이전에 필요한 기본 프레임워크(틀)을 구성하는 작업입니다.

사실 이 부분은 이전에도 알고있었지만, 오 이렇게도 되는구나..

라는점을 몇가지찾았었습니다.

 

그중에서 제일 인상깊었던내용은 winmain 코드의 객체화가 잘되어서 구성자체가 난잡하지않고, 되게 체계적입니다.

이 점은 저도 이번에 "이런 방식으로도 객체화하는구나" 라고 새로배웠습니다.

 

 

새로 알게된 내용으로는 우선

#define WIN32_LEAN_AND_MEAN

으로 평소 Windows.h 헤더파일에서 많이 사용하지않는 것들을 배제함으로써 컴파일속도를 늘릴 수 있다는사실..

 

 

그리고 결과적으로는 이런식으로 검은화면이 생성됩니다.

당연하게도 창만 생성하고 어떤작업도 하지않았기때문에..

 

 

솔직히 이번에는 말그대로 windows 기본헤더만 건들고,

directx11에 관한것들은 일체 아무것도 건들이지 않았기 때문에 딱히 크게 배운거는없었지만 대충 "이러한 틀로 설계할거다." 라는것으로 이해했습니다.

 

다음시간에는 드디어!!

direct11의 초기화 부분입니다.. 본격적으로 세모를 그릴 수 있는것은 다다음부분인 셰이더, HLSL부분입니다.

 

다음부분 살짝 봤는데, 어우 directx11 양이 엄청나더라구요.

별것도 안했는데 200~300줄은 넘어갈것으로 예상갑니다;;

 

(여기서 재미있는 생각이 났는데, 나중에 lua의 스크립트엔진이랑 연결해서 lua로 게임만들 수 있는 프레임워크도 만들고 배포하고싶다!!!!!)

다음편부터는 본격적으로 양이 많아지고, 배울내용도 많아지니까 여러개의 파트로 나누겠습니다..!!

 

그럼안녕!

 


728x90

댓글