DirectX 설명
- DirectX 란? : 게임을 개발하기 위한 SDK다.
- SDK : Software Develpe Kit
- 흔히, 예전에는 API라고 불렸다.
- SDK나 API나 비슷한 기능으로 , 어떤 프로그래밍을 하기 위해서 도와주는 도구 집합체 다.
- 흔히 DirectX SDK 라고 하면 DirectX로 게임을 개발하는데 있어 도움이 되는 ‘함수’들이나 ‘클래스’들을 모아놓은 ‘라이브러리’같은 집합체이다.
- 다른 것으로는 Window SDK같은 경우는 윈도우용 프로그램을 개발하기 위해 도움을 주는 도구이다.
- 라이브러리 : 개발에 도움이 되는 함수들이나 클래스들의 집합체이다.
- SDK나 API도 비슷한 의미이다.
- 여러 종류의 ‘컴포넌트’들이 모여져있다.
- 컴포넌트 종류
- Direct3D ‘ 2D : 3D와 2D를 그릴 수 있는 기능들이 모여져있다.
- Direct Write : 폰트나 글자를 출력할 수 있는 기능들이 모여져있다.
- DX GI : 그래픽 하드웨어와 통신을 위한 기능이다.
- 어떤 그래픽 카드여도 상관없이 일관적으로 프로그래밍 해줄 수 있는 ‘추상화된 API’ 정도로 생각해 둔다.
- Direct Compute ; GPU를 이용해서 그래픽 뿐만이 아니라 물리 , 기타 연산을 할 수 있게하는 기능들이다.
- CPU에서 처리할것을 GPU에서 빠르게 처리할 수 있도록 해주는 라이브러리다.
- Direct X Audio 2 : 소리 출력 기능들이 모여져있다.
- RayTracing : 광선 추적 기능들이 모여져있다.
- ML (머신러닝) : 머신러닝을 지원해주는 기능들이 모여져있다.
- Physics : 물리 연산을 지원해주는 기능들이 모여져있다.
- RayTracing과 ML , Physics 은 DirectX 12부터 포함되어있다.
- Frame work : 프로그램 개발의 기반(틀)으로 알아둔다.
- 라이브러리보다 큰, 혹은 특정 상황에 맞춘 플랫폼, 시스템 으로 생각하면 된다.
- 정리
- DirectX 개발에 도움이 되는 함수들이나 클래스들의 집합체 : 라이브러리
- DirectX 개발에 도움이 되는 ‘라이브러리’의 집합 : SDK
- 통틀어서 부르는 명칭 : DirectX 라고 이해한다.
DirectX의 역사
- DirectX 8 : 2D와 3D가 동시에 지원되던 버전이다.
- CPU 렌더링이 중점이다.
- DirectX 9 : ‘쉐이더’가 본격적으로 지원되는 버전이다.
- CPU 렌더링과 함께 ‘GPU 렌더링’이 함께 지원된다.
- 쉐이더에 대한 구조를 명확히 정립하지 못한 단계다.
- 렌더링 파이프라인이 복잡하다.
- DirectX 10, 11 : GPU 렌더링이 중점이다.
- 쉐이더가 없으면 렌더링을 할 수 없다.
- 10 : Geometry Shader (GS)가 지원되기 시작하는 버전이다.
- 11 : Tessellation이 지원되기 시작하는 버전이다.
- window 7까지만 지원이 된다.
- DirectX 12 : Window10부터 지원이 된다.
- 하드웨어에 가깝게 설계가 된다.
생성할 내용
- Framwork : Library로 나눠서 구현한다.
- 아래의 구현할 것을 하나로 모아서 구현하고, 프로젝트들은 Framwork라는 Library를 사용해서 구현한다.
- 이렇게 하는 이유 : 프로젝트 중 하나를 바꾸게 되면 나머지 프로젝트들도 다같이 바꿔야하기 떄문이다.
- 이렇게 구현하면, Framework를 바꿔주면 나머지 프로젝트들도 상관없이 사용할 수 있도록한다.
- UnitTest : 실제로 구현해서 실행한다.
- ModelEditor
- MapEditor
- 아래의 구현할 것을 하나로 모아서 구현하고, 프로젝트들은 Framwork라는 Library를 사용해서 구현한다.
'이론 > DirectX 11' 카테고리의 다른 글
| DirectX 11 3. UnitTest Setting (0) | 2024.09.06 |
|---|---|
| DirectX 11 2. Framwork Setting (2) | 2024.09.04 |