DirectX
DirectX는 Microsoft가 Microsoft Windows와 일부 Xbox 플랫폼에서 게임·멀티미디어를 지원하기 위해 개발한 API 및 관련 런타임·도구 모음이다. Windows 95 시대인 1995년 처음 공개됐고 Direct3D를 중심으로 3D 그래픽스·GPU 연산, 사운드...
| 분류 | Microsoft Windows 그래픽스·게임·멀티미디어 API 모음 |
|---|---|
| 개발사 | Microsoft |
| 최초 공개 | 1995년 Windows 95 시대 |
| 주요 구성 | Direct3D, DXGI, DirectInput, XAudio2 등 세대별 |
| 그래픽스 | Direct3D 9·10·11·12 계열 |
| 셰이더 언어 | HLSL |
| 운영 환경 | Windows·Xbox 등 API/플랫폼별 |
| 드라이버 | WDDM 및 그래픽스 드라이버 |
| 개발 도구 | Windows SDK, PIX 등 |
| 게임 제작 | 저수준 GPU·사운드·입력 API |
| 라이선스 | Microsoft API·SDK별 조건 |
| 공식 자료 | Microsoft Learn: DirectX |
DirectX는 Microsoft가 Microsoft Windows와 일부 Xbox 플랫폼에서 게임·멀티미디어를 지원하기 위해 개발한 API 및 관련 런타임·도구 모음이다. Windows 95 시대인 1995년 처음 공개됐고 Direct3D를 중심으로 3D 그래픽스·GPU 연산, 사운드·입력 및 장치와 미디어 관련 기능을 제공해 왔다. 역사적인 DirectDraw·DirectSound·DirectInput과 최신 Direct3D 12·DXGI·XAudio2 등은 세대와 역할이 다르므로 'DirectX는 하나의 단일 렌더링 엔진'이라고 정의하면 부정확하다.[1]
DirectX는 DOS 게임이 하드웨어에 직접 접근하던 방식과 Windows의 장치 관리·보안을 연결하려는 요구에서 발전했다. 그래픽스 장치·오디오 카드·게임 입력을 Windows 드라이버와 표준 API로 다뤄 응용 프로그램이 제조사별 세부 코드를 직접 작성하는 부담을 줄였다. 하위 버전별 라이브러리와 기능 수준은 Windows·Xbox의 종류와 GPU 드라이버에 따라 달라진다.
Direct3D는 메시·텍스처·셰이더·버퍼와 렌더링 상태를 구성해 GPU에 명령을 제출한다. DXGI는 디스플레이·그래픽 어댑터와 프레임 표시를 관리하고, HLSL은 GPU에서 실행하는 셰이더 프로그램을 기술한다. DirectX 12에서는 명령 큐·리스트와 디스크립터·리소스 상태 전환을 애플리케이션이 더 직접 제어하도록 하여 멀티코어 CPU·GPU 효율을 높일 수 있지만 개발자가 메모리·동기화 책임을 더 많이 부담한다.[2]
API 버전 숫자는 하드웨어의 기능 수준(Feature Level)과 완전히 같지 않다. DirectX 12 런타임이 존재하더라도 GPU가 모든 기능을 갖추었다는 의미는 아니며, 개발자는 지원 기능을 검사해야 한다. Vulkan·OpenGL 등의 다른 그래픽스 API와 공존하며 게임 엔진은 플랫폼별로 서로 다른 백엔드를 선택할 수 있다.
DirectX는 Windows API와 연결되지만 2D 창 UI를 그리는 전통적인 GDI나 DWM와 목적이 다르다. DirectX SDK와 Windows SDK의 제공 방식, 오래된 D3DX 등 구성 요소의 보존, 런타임의 버전별 지원 정책은 게임 실행 호환성에서 중요한 문제다.