DirectX란?
DirectX는 마이크로소프트(Microsoft)에서 개발 및 제공하는 멀티미디어 처리용 API(Application Programming Interface) 세트이다. 주로 게임이나 그래픽 소프트웨어를 윈도우 환경에서 개발할 때 활용되며, 2D/3D 그래픽, 오디오, 입력(Input) 등을 효율적으로 제어할 수 있다.
- 주요 목적 : 개발자가 윈도우 운영체제에서 하드웨어(그래픽 카드, 사운드 카드 등)를 직접 제어하거나 접근하기 편하도록 해준다.
- 사용 분야 : 게임, 시뮬레이션, CAD, 3D 시각화 등
DirectX 구성 요소
DirectX는 그래픽뿐 아니라 멀티미디어 전반을 포함하는 여러 가지 하위 API로 이루어져 있다.
- Direct3D
- 3D 그래픽 랜더링을 담당하는 핵심 API
- 하드웨어 가속을 이용해 실시간 3D 그래픽을 그리는 데 쓰이며, DirectX에서 가장 중요한 요소로 꼽힘
- Direct2D/DirectWrite
- Direct2D는 2D 그래픽을 위한 API이며 DirectWrite는 텍스트 렌더링을 담당
- UI, 폰트 렌더링, 2D 효과 등에 사용됨
- XInput
- Xbox 컨트롤러 등 게임 패드를 비롯한 입력 장치를 지원하기 위한 API
- XAudio2
- 게임 등에서 사운드를 재생·처리하기 위한 오디오 API
- 3D 오디오, 공간 음향(Spatial Sound) 등 고급 기능도 지원
- DirectSound/DirectMusic
- 과거 버전에서 사용되던 오디오 API. 현재는 XAudio2 쪽이 좀 더 현대적으로 많이 쓰임
- DXGI(DirectX Graphics Infrastructure)
- Direct3D와 윈도우 시스템(디스플레이, 스왑 체인 등) 간의 통신을 관리
- 화면 해상도, 디스플레이 모드, 멀티 어댑터 등의 기능 제어
DirectX 버전별 특징
DirectX는 여러 버전이 출시되어 왔으며 게임 개발 및 그래픽 프로그래밍에서 특히 Direct3D 버전이 큰 차이를 만든다.
- DirectX 9
- Windows XP 시절부터 널리 사용된 버전
- 고정 함수 파이프라인(Fixed Function)과 프로그래머블 셰이더(Shader)가 혼재되어 있어 그래픽 파이프라인에 입문하기 쉬움
- DirectX 10
- Windows Vista와 함께 등장
- 완전한 셰이더 기반 파이프라인 도입을 본격화했으나 보급이 더뎌 크게 대중적이지는 못했음
- DirectX 11
- DX10의 개선판으로 셰이더 기반 파이프라인이 안정화되고 기능이 강화됨
- Windows 7 이후 게임 개발의 표준으로 자리 잡음
- 지오메트리 셰이더 등 다양한 스테이지를 지원하며 하드웨어 활용 최적화가 가능