맨날 DirectX막 얘기하는데 이것은 SDK이다.
SDK란 Software Development Kit이다.
즉, 개발을 도와주는 도구이다.
근데 이것을 예전에는 API = Application Programming Interface라고 많이 불렀다.
그러니까 그냥 SDK나 API나 비슷한 말이다.
DirectX SDK의 경우 DirectX를 개발하기 위한 라이브러리이다.
이 Library라는 것은 개발에 도움이 되는 클래스들이나 함수들을 모아놓은 "집합"을 말한다.
이 Libaray안에 Component들이 들어있다.
Direct 3D(11에서 2D 지원 + 하드웨어 가속도도 지원 11에서부터)
Direct Write 지원
Font나 글씨같은 것들을 출력해주는 Component
DX GI
그래픽 카드와 통신을 위한 것.
글카가 NVIDA, AMD, RTX 2080이니어쩌구 하는데
어떤 그래픽카드에도 상관없이 일괄적으로 프로그램 해줄 수 있는 추상화 된 API정도라고 생각하면은 된다.
Direct Compute
CPU에서 처리를 할 부분은 이녀석이 대신 해주는 라이브러리 이다.
(비트코인 채굴 때문에 가격높아진 이유)
X Audio2
RayTracing
요즘 RTX라고 하는데
NVIDAI에서 RTX의 R말하는 것이다.
광선 말하는 것이다.
ML
기계학습을 위한, 지원해주는 Component.
TensorCore라고 해서 NVIDIA내에 전용 프로세서가 있는데 그거 사용하지 않고도 D11지원하면 기계학습으로 사용할 수 있다.
Physics
물리엔진
근데 RayTracing, ML은 DirectX12에서만 지원한다.
8에서는 CPU렌더링 중점
9에서는 쉐이더 본격 지원 (혁명 일어남 2000년대 초중반)
GPU렌더링 + CPU렌더링 혼종 단계
이때는 뭔가 쉐이더에 대한 개념을 명확히 적립하지 않은 단계라 복잡했다.
그래서 그것들을 다 갈아엎고 GPU에 맡게 한것이
DirectX10, 11이다.
이녀석들은 쉐이더가 없으면 렌더링이 안된다.
10에서는 GS라는 것이 추가가 되었고
11에서는 Teseelation이라는 것이 추가가 되었다.
DirectX12는 window10부터 지원을 한다
아직 다 윈도우10으로 전환이 안되기도 했고
해서 게임업계에서도 12를 사용을 거의 안한다.
또한 12는 하드웨어에 가깝게 설계가 되어있다.(로우 레벨에 가깝게)
그래서 학습하는데 어려울 수 있다.