GGWiki
새 문서
현재 판이에요 · #337 AI 조사: 게임 엔진 문서 · GGWiki 자동 ·

DirectX

개요

DirectX는 마이크로소프트가 개발한 멀티미디어 및 게임 프로그래밍 관련 API(애플리케이션 프로그래밍 인터페이스) 모음이다. 1995년 9월 30일 최초 공개되었으며, 마이크로소프트 윈도우와 엑스박스 플랫폼에서 고성능 그래픽, 오디오, 입력, 네트워크 기능을 제공한다[1][2]. 초기에는 Direct3D, DirectDraw, DirectSound, DirectPlay, DirectMusic 등 개별 API 이름이 모두 "Direct"로 시작했으며, 이들을 통칭하는 약어로 "DirectX"(X는 특정 API 이름을 대신함)가 쓰이다가 곧 컬렉션 전체의 명칭이 되었다[2][3]. 마이크로소프트가 게임 콘솔을 개발할 때 이 기술 기반임을 나타내기 위해 콘솔 이름을 엑스박스(Xbox)로 지었다[2][3].

DirectX 중 3D 그래픽 API인 Direct3D가 가장 널리 알려지면서 "DirectX"와 "Direct3D"를 혼용하는 경우도 흔하다[2][3]. Direct3D는 윈도우 및 엑스박스용 비디오 게임 개발뿐 아니라 CAD/CAM 등 시각화·그래픽 작업 소프트웨어에서도 쓰인다[2][3]. DirectX SDK는 재배포 가능한 런타임 바이너리, 문서, 헤더로 구성되며 무료로 내려받을 수 있다[2][3]. 런타임은 독점 폐쇄 소스이나 SDK 샘플 대다수는 소스 코드가 제공된다[2][3]. 윈도우 8 개발자 프리뷰부터 DirectX SDK는 윈도우 SDK에 통합되었다[2][3].

역사

개발 배경

1994년 말, 마이크로소프트는 차기 운영체제 윈도우 95 출시를 앞두고 있었다. 소비자 가치를 좌우할 핵심 요소는 그 위에서 돌아갈 프로그램이었으나, 게임 개발자들은 윈도우 환경이 MS-DOS에서 가능했던 BIOS 루틴·직접 하드웨어 접근 기능을 제공하지 않는다며 이식에 부정적이었다[2][3]. 호환성 우려도 컸는데, WinG 기반의 《디즈니 애니메이션 스토리북: 라이온 킹》이 테스트되지 않은 컴팩 컴퓨터 그래픽 드라이버와 충돌해 빈번히 크래시하고 학부모 항의가 빗발친 사례가 대표적이다[2][3].

마이크로소프트 직원 크레이그 아이슬러(Craig Eisler)가 윈도우 95 멀티미디어 팀에 합류해 게임 기술을 맡았고, 동료 알렉스 세인트 존(Alex St. John)으로부터 "기술이 개발자들에게 반향을 일으키지 못한다"는 말을 듣고 개발자가 그래픽 하드웨어 고유 기능을 쓰고 하드웨어 업체가 개발자가 활용할 방식으로 혁신할 수 있는 새 API 세트와 드라이버 모델을 구상했다[2][3]. 프로그램 관리 지원이 필요해 에릭 엥스트롬(Eric Engstrom)을 영입했고, 세 사람은 DirectX 작업으로 11개 특허를 획득했다[2][3].

프로젝트 코드명은 제2차 세계 대전 맨해튼 계획에서 따왔으며, "일본산 비디오 게임 콘솔을 마이크로소프트 OS가 돌아가는 PC로 대체하겠다"는 의도였다[2][3]. 초기 로고는 방사능 표지였으나 경영진 요청으로 변경했다[2][3]. 경영진은 이미 윈도우를 게임 플랫폼으로 포기한 상태라 프로젝트에 동의하지 않았으나, 세 사람은 반항적으로 개발을 강행했고 오피스 제품 담당 수석 부사장 브래드 실버버그(Brad Silverberg)가 이들을 "비스티 보이즈(Beastie Boys)"라 불렀다[2][3].

최초 공개와 초기 버전

세 사람은 1994년 말부터 다른 프로젝트 틈틈이 작업해 4개월 만에 여러 하드웨어 제조사 의견을 수렴한 첫 API 세트를 1995년 게임 개발자 회의(GDC)에서 발표했다[2][3]. 이 SDK에는 비트맵 그래픽용 DirectDraw, 오디오용 DirectSound, 네트워크 통신용 DirectPlay, 윈도우 95에 있던 확장 조이스틱 API를 처음 문서화한 DirectInput, CD-ROM 삽입 시 즉시 설치가 시작되는 자동 실행(AutoPlay) 구현 설명이 포함됐다[2][3]. "Direct"라는 접두사는 기존 핵심 윈도우 95 루틴을 우회하고 하드웨어 추상화 계층(HAL)을 통해서만 하드웨어에 접근했기 때문에 붙여졌다[2][3]. 팀은 이를 "Game SDK"라 불렀으나, 한 기자가 라이브러리 명명 방식을 조롱하며 "DirectX"라 부른 것을 팀이 그대로 채택했다[2][3].

첫 버전(1.0)은 1995년 9월 "Windows Game SDK"로 출시됐다[1][2][3]. DirectDraw 구성 요소는 윈도우 3.1용 DCI·WinG API를 대체하는 Win32 라이브러리였다[2][3]. DirectX 덕분에 윈도우 95를 포함한 모든 윈도우 버전이 고성능 멀티미디어를 통합할 수 있게 됐다[2][3].

더 많은 개발자를 끌어들이려 마이크로소프트는 이드 소프트웨어(id Software)의 존 카맥(John Carmack)에게 《둠(Doom)》과 《둠 2》를 MS-DOS에서 DirectX로 무료 이식해 주겠다고 제안했고, 카맥이 동의해 게이브 뉴얼(Gabe Newell)이 이식 프로젝트를 이끌었다[2][3]. 1996년 8월 "Doom 95"가 최초 상용 DirectX 게임으로 출시됐고, 마이크로소프트는 빌 게이츠가 광고에 등장할 정도로 적극 홍보했다[2][3].

DirectX 2.0은 1996년 중반 윈도우 95 OSR2와 윈도우 NT 4.0 출시와 함께 윈도우 기본 구성 요소가 됐다[2][3]. 윈도우 95 자체가 낯설고 게임이 적어 개발자들이 마이크로소프트의 게임 플랫폼 능력을 불신하자, DirectX 전도사 알렉스 세인트 존이 1996년 컴퓨터 게임 개발자 회의에서 실제 사자·토가·고대 로마 테마 실내 카니발을 방불케 하는 화려한 행사를 기획했고, 이곳에서 Direct3D가 처음 소개되고 인터넷 멀티플레이 《MechWarrior 2》 시연이 이뤄졌다[2][3].

DirectX 팀은 각 릴리스마다 다양한 그래픽 카드, 오디오 카드, 메인보드, CPU, 입력 장치, 게임, 멀티미디어 응용 프로그램을 테스트했고, 하드웨어 업계가 새 하드웨어·드라이버가 DirectX와 호환되는지 확인할 테스트 프로그램도 구축·배포했다[2][3].

OpenGL과의 경쟁

Direct3D 추가 전 마이크로소프트는 윈도우 NT에 OpenGL을 탑재한 바 있다[2][3]. OpenGL은 실리콘 그래픽스(SGI)가 3D 그래픽 프로그래밍을 주류로 끌어들이려 설계한 크로스 플랫폼·윈도 시스템 독립적 인터페이스로, 아키텍처 검토 위원회(ARB)가 관리했고 마이크로소프트도 참여했다[2][3]. Direct3D는 초기에는 게임 용도에 초점을 맞춘 마이크로소프트 통제 대안으로 의도됐다[2][3]. 3D 게임이 성장하며 개발자들은 OpenGL도 게임 개발에 효과적임을 발견했고, 크로스 플랫폼 OpenGL 지지자들과 윈도우 전용 Direct3D 지지자들 사이에 "전쟁"이 시작됐다[2][3]. 공교롭게도 마이크로소프트 내 OpenGL 지원도 DirectX 팀이 맡았다[2][3]. 개발자가 게임에서 OpenGL을 쓰더라도 OpenGL에는 사운드·조이스틱 지원 등 DirectX의 모든 기능이 없으므로 Direct3D를 뺀 다른 DirectX API와 결합해 쓰는 경우가 많았다[2][3].

콘솔 전용 버전과 엑스박스

콘솔 전용 버전에서 DirectX(특히 Direct3D)는 엑스박스, 엑스박스 360, 엑스박스 원 API의 기초로 쓰였다[2][3]. 오리지널 엑스박스용 커스텀 그래픽 하드웨어를 개발한 엔비디아(NVIDIA)와 마이크로소프트가 공동 개발했으며, 엑스박스 API는 DirectX 8.1과 유사했으나 여타 콘솔 기술처럼 업데이트 불가능했다[2][3]. 엑스박스 코드명은 DirectXbox였으나 상업적 명칭으로 Xbox로 줄였다[2][3].

주요 버전별 변화

#### DirectX 9 (2002년)

2002년 DirectX 9 출시로 픽셀·버텍스 셰이더 2.0(셰이더 모델 2.0)을 통해 이전보다 훨씬 긴 셰이더 프로그램이 가능해졌다[2][3]. 출시 당시 윈도우 98, Me, 2000, XP를 지원했으며 2024년 8월 현재까지 하위 호환을 위해 이후 모든 윈도우에서 지원된다[2][3]. 개발자가 셰이더를 제작할 접근성 높은 HLSL(High Level Shading Language)도 도입됐다[2][3].

DirectX 9.0c는 수년간 지속적으로 업데이트된 버전으로, 2007년 1월부터 윈도우 2000·XP가 최소 사양이 되어 윈도우 98·Me 지원이 공식 중단됐다[2]. 2024년 8월 현재도 정기 업데이트된다[2]. 윈도우 XP SP2 이상에는 DirectX 9.0c가 포함돼 있으나, 2005년 2월 이후 SDK로 컴파일된 응용 프로그램을 위해서는 최신 런타임 재배포 패키지 설치가 필요할 수 있다[2]. 2000년대 중반~2010년대 초반 많은 게임이 DirectX 9로 개발돼 표준 타깃이 됐으며, 오늘날에도 구형·저사양 하드웨어 옵션으로 쓰인다[2].

#### DirectX 10 (2006년~)

DirectX 10은 2006년 말 출시된 윈도우 비스타부터 탑재·제공되며, 윈도우 XP 등 이전 버전에서는 DirectX 10 전용 응용 프로그램을 실행할 수 없다(윈도우 XP에서는 최신인 DirectX 9.0c 코드 경로 사용)[2][3]. 변경 폭이 커서 기존 DirectX API 다수가 최신 SDK에서 사용 중단(deprecated)되고 호환용으로만 보존됐다[2][3].

DirectInput → XInput으로 대체되며 사용 중단[2][3]

DirectSound → XACT(Cross-platform Audio Creation Tool)로 대체되며 사용 중단, 비스타 오디오 스택이 CPU 소프트웨어 렌더링으로 바뀌어 하드웨어 가속 오디오 지원 상실[2][3]

DirectPlay DPLAY.DLL 제거 → dplayx.dll로 대체, 의존 게임은 복제·이름 변경 필요[2][3]

하위 호환을 위해 윈도우 비스타의 DirectX에는 여러 Direct3D 버전이 포함됐다[2][3].

Direct3D 9: 윈도우 XP 시절 동작 에뮬레이션, WDDM 드라이버 설치 시 비스타 WDDM 세부 사항·이점 숨김, XDDM만 설치된 경우 유일한 API[2][3]

Direct3D 9Ex(개발 중 내부명 9.0L/9.L): 기존 Direct3D 앱 호환 유지하면서 WDDM 새 기능 전체 접근 허용(WDDM 드라이버 시), 윈도우 에어로 UI가 D3D 9Ex에 의존[2][3]

Direct3D 10: 비스타 새 드라이버 모델 기반 설계, 셰이더 모델 4 포함, 렌더링 성능·유연성 대폭 개선[2][3]

Direct3D 10.1은 2008년 2월 윈도우 비스타 서비스 팩 1에 포함된 점진적 업데이트로, 그래픽 벤더를 위한 이미지 품질 표준 설정, 개발자 품질 제어권 확대, 큐브 맵 어레이·MRT별 블렌드 모드·픽셀 셰이더 커버리지 마스크 내보내기·샘플별 픽셀 셰이더 실행·멀티샘플 깊이 버퍼 접근 지원 추가, 셰이더 모델 4.1 이상 및 32비트 부동소수점 연산 지원 필수[2][3]. Direct3D 10 하드웨어 완전 지원하나 새 기능 활용엔 업데이트된 하드웨어 필요[2][3].

#### DirectX 11 (2008년~)

마이크로소프트는 2008년 시애틀 Gamefest 08에서 DirectX 11을 공개했고, 최종 플랫폼 업데이트는 2009년 10월 27일 윈도우 비스타용으로 출시(윈도우 7 최초 출시 일주일 후)됐다[2][3]. 주요 기능:

DirectCompute(GPGPU) 지원

테셀레이션 지원 포함 Direct3D 11

멀티 코어 프로세서 활용을 돕는 개선된 멀티스레딩 지원

멀티스레드 리소스 처리 등 일부 새 API는 Direct3D 9/10/10.1 클래스 하드웨어에서도 지원 가능

하드웨어 테셀레이션·셰이더 모델 5.0은 Direct3D 11 지원 하드웨어 필요

Direct3D 11은 Direct3D 10.1의 엄격한 상위 집합으로 하위 호환 유지[2][3]

네 가지 업데이트가 출시됐다[2][3].

DirectX 11.1: 윈도우 8 포함, WDDM 1.2 지원으로 성능 향상, Direct2D(1.1)·Direct3D·DirectCompute 통합 개선, XNA 프레임워크의 DirectXMath·XAudio2·XInput 라이브러리 포함, 게임·비디오용 스테레오스코픽 3D 지원, 윈도우 7 플랫폼 업데이트로 일부 백포트[2][3]

DirectX 11.2: 윈도우 8.1(RT 포함)·윈도우 서버 2012 R2 포함, Direct2D에 지오메트리 실현화(geometry realizations) 등 새 기능, 장면 일부를 저해상도 렌더링 후 고해상도 부분과 하드웨어 오버레이로 합성하는 스왑 체인 컴포지션 추가[2][3]

DirectX 11.X: 엑스박스 원에서 실행되는 DirectX 11.2 상위 집합, 나중에 DirectX 12 일부로 발표된 드로우 번들(draw bundles) 등 기능 실질적 포함[2][3]

DirectX 11.3: GDC에서 DirectX 12와 함께 발표, 2015년 출시, DirectX 12 보완 고수준 대안 의도, 윈도우 10 포함[2][3]

#### DirectX 12 (2014년~)

DirectX 12는 2014년 3월 20일 GDC에서 발표, 2015년 7월 29일 윈도우 10과 함께 공식 출시[2][3]. 핵심 특징은 드라이버 오버헤드 감소를 위한 Direct3D 12 고급 저수준 프로그래밍 API 도입[2][3]. 개발자가 GPU에 자신만의 명령 목록·버퍼 구현 가능해져 병렬 컴퓨팅 통한 효율적 자원 활용 가능[2][3]. 수석 개발자 맥스 맥멀런(Max McMullen)은 "폰·태블릿·PC에서 콘솔 수준 효율성 달성"이 주 목표라 밝혔다[2][3]. AMD 맨틀(Mantle), 애플 메탈(Metal), 크로노스 그룹 벌컨(Vulkan) 등 저오버헤드 그래픽 API 이니셔티브와 함께 등장[2][3].

멀티어댑터 지원으로 시스템 내 여러 GPU 동시 활용 가능[2][3]. 이전에는 AMD 크로스파이어X·엔비디아 SLI 등 벤더 구현에 의존[2][3].

암시적(Implicit) 멀티어댑터: 이전 DirectX 방식과 유사, 연산 능력 비슷한 연결된 GPU들에서 프레임 번갈아 렌더링[2][3]

명시적(Explicit) 멀티어댭터: 개발자에게 두 API 패턴 제공

- 연결된 GPU(Linked GPUs): DirectX가 SLI/크로스파이어X 카드를 단일 GPU로 간주, 결합 자원 사용[2][3]

- 연결되지 않은 GPU(Unlinked GPUs): 서로 다른 벤더 GPU 활용 가능, CPU 내장 그래픽으로 외장 GPU 보조나 AMD·엔비디아 카드 결합 가능, 단 정교한 혼합 설정엔 세심한 개발자 지원 필요[2][3]

지원 하드웨어: 모든 페르미(Fermi) 및 이후 엔비디아 GPU, AMD GCN 기반 칩, 인텔 하스웰(Haswell) 및 이후 프로세서 그래픽 유닛[2][3]. SIGGRAPH 2014에서 인텔이 공개한 소행성대 데모에서 DirectX 12가 DirectX 11 대비 렌더링 속도·CPU 전력 소비 면에서 50~70% 더 효율적이라 주장[2][3].

《애쉬즈 오브 더 싱귤래리티(Ashes of the Singularity)》가 DirectX 12 활용 최초 공개 게임[2][3]. 2015년 8월 아르스 테크니카 테스트에서 엔비디아 지포스 980 Ti는 DirectX 11 모드 대비 DirectX 12에서 약간 성능 저하, AMD 라데온 R9 290x는 DirectX 12에서 최대 70% 일관된 성능 향상, 일부 시나리오에서 AMD가 더 강력한 엔비디아 제품 능가[2][3]. 원인은 엔비디아 드라이버 최적화 미흡이거나 DirectX 11 직렬 실행 최적화 카드 하드웨어 한계일 수 있으나 불분명[2][3]. 엑스박스에서 DirectX 12 성능 향상은 PC만큼 크지 않음[2][3].

2018년 3월 지원 하드웨어에서 실시간 광선 추적(ray tracing) 가능케 하는 DirectX Raytracing(DXR) 발표, DXR API는 윈도우 10 2018년 10월 업데이트에 추가[2][3]. 같은 해 DirectX 셰이더 컴파일러에 HLSL을 SPIR-V로 컴파일 기능 추가[2][3]. 2019년 마이크로소프트는 특정 게임 타이틀 플러그인 형태로만 윈도우 7에 DirectX 12 도입 발표[2][3].

#### DirectX 12 Ultimate (2020년~)

2020년 3월 DirectX 12 Ultimate 공개[2]. 윈도우 10 컴퓨터와 엑스박스 시리즈 X 및 기타 9세대 엑스박스 콘솔 모두에서 공통 라이브러리로 통합[2]. 새 기능:

DirectX Raytracing 1.1

가변 속도 셰이딩(Variable Rate Shading): 설계 선택에 따라 셰이딩 세부 수준을 프로그래머가 제어

메시 셰이더(Mesh Shaders)

샘플러 피드백(Sampler Feedback)[2]

버전 번호 체계

마이크로소프트 DxDiag 도구(버전 4.09.0000.0900 이상)에서 보고되는 버전 번호는 `x.xx.xxxx.xxxx` 형식을 쓰나, DirectX 및 윈도우 XP MSDN 페이지에선 레지스트리가 항상 `x.xx.xx.xxxx` 형식이었다고 주장[2]. 예: 표에서 `4.09.00.0904`면 DxDiag에선 `4.09.0000.0904`로 표시될 수 있음[2].

특징과 기능

렌더링 및 그래픽 API

DirectX는 여러 API로 구성된다[2][3].

Direct3D (D3D): 실시간 3차원 렌더링 API[2][3]

DXGI: 어댑터·모니터 열거, Direct3D 10 이후 버전 스왑 체인 관리[2][3]

Direct2D: 2D 그래픽 API[2][3]

DirectWrite: 텍스트 렌더링 API[2][3]

DirectCompute: GPU 이용 범용 컴퓨팅(GPGPU) API[2][3]

DirectX Raytracing (DXR): 실시간 광선 추적 API[2][3]

DirectSR: GPU 가속 해상도 업스케일링 API[2][3]

오디오 API

XACT3: 고수준 오디오 API[2][3]

XAudio2: 저수준 오디오 API[2][3]

컴퓨팅·AI·스토리지 API

DirectML: GPU 가속 머신러닝·인공지능 API[2][3]

DirectStorage: GPU 지향 파일 I/O API[2][3]

미디어·비디오

미디어 파운데이션(Media Foundation)[2][3]

가속 비디오 재생용 DirectX 비디오 가속(DXVA)[2][3]

미디어 파운데이션 트랜스폼(Media Foundation Transform)[2][3]

진단·디버깅 도구

DirectX 진단 도구(DxDiag): 오디오·비디오·입력 드라이버 등 DirectX 관련 구성 요소 진단·보고서 생성[2][3]

PIX: 마이크로소프트가 배포하는 DirectX용 디버깅 도구[2][3]

사용 중단(Deprecated)된 구성 요소

마이크로소프트는 다음 구성 요소 사용을 중단했다[2][3].

DirectX Media: DirectAnimation(2D/3D 웹 애니메이션), DirectShow(멀티미디어 재생·스트리밍), DirectX Media Objects(인코더·디코더·이펙트 등 스트리밍 객체 지원 → MFT로 대체), DirectX Transform(웹 인터랙티비티), Direct3D Retained Mode(고수준 3D 그래픽)

DirectX 플러그인: 오디오 신호 처리

DirectDraw: 2D 그래픽 API → Direct2D로 대체

DirectInput: 키보드·마우스·조이스틱·게임 컨트롤러 인터페이스 입력 API → 버전 8 이후 XInput(엑스박스 360 컨트롤러용)이나 표준 WM_INPUT 윈도우 메시지 처리(키보드·마우스)로 대체

DirectPlay: LAN/WAN 통신 네트워크 API → 버전 8 이후 Games for Windows Live, 엑스박스 라이브로 대체

DirectSound: 오디오 API → DirectX 8부터 XAudio2, XACT3로 대체

DirectSound3D (DS3D): 3차원 오디오 효과 API

DirectMusic: DirectMusic Producer에서 제작된 사운드트랙 재생 구성 요소

DirectX 기능은 COM 스타일 객체·인터페이스 형태로 제공된다[2][3]. DirectX 구성 요소 자체는 아니지만 Managed Direct3D, 마이크로소프트 XNA 그래픽 라이브러리 등 관리 객체가 DirectX 일부(주로 Direct3D 9) 위에 구축됐다[2][3].

라이선스·요금

라이선스: 최종 사용자 사용권 계약(EULA)[1]

SDK: 무료 다운로드[2][3]

런타임: 독점 폐쇄 소스, 단 SDK 샘플 대다수 소스 코드 제공[2][3]

재배포: 개발자가 게임·응용 프로그램과 함께 런타임 구성 요소 재배포 필요(Managed DirectX, XNA, 엑스박스 360 API 등은 윈도우 기본 제공 안 됨)[2][3]

최종 사용자 런타임 웹 설치 관리자: 레거시 DirectX SDK 런타임 라이브러리(D3DX9/10/11, XAudio 2.7, XInput 1.3, XACT, Managed DirectX 1.1 등) 설치, 윈도우 OS에 설치된 DirectX 런타임 버전 자체는 변경하지 않음[4]. 2024년 7월 15일 버전 9.29.1974.1 게시[4].

지원 플랫폼

운영체제: 마이크로소프트 윈도우(윈도우 95 OSR2 이후 모든 버전)[1][2][3]

콘솔: 엑스박스 원, 엑스박스 시리즈 X/S 등[1][2][3]

프로그래밍 언어: C++, 고급 셰이더 언어(HLSL 등)[1]

사용 게임

자료에 구체적 게임 제목은 명시되지 않았으나, DirectX(특히 Direct3D)는 마이크로소프트 윈도우 및 엑스박스 계열 콘솔용 비디오 게임 개발에 널리 사용되며[2][3], 2000년대 중반~2010년대 초반 많은 게임이 DirectX 9로 개발돼 표준 타깃이 됐고[2], 《애쉬즈 오브 더 싱귤래리티》가 DirectX 12 활용 최초 공개 게임으로 기록돼 있다[2][3].

평가

성능·효율성

DirectX 12 도입으로 드라이버 오버헤드 대폭 감소, 개발자 GPU 명령 목록·버퍼 직접 제어 가능, 병렬 컴퓨팅 통한 자원 활용 효율 향상[2][3].

인텔 데모(소행성대)에서 DirectX 11 대비 렌더링 속도·CPU 전력 소비 50~70% 효율 개선 주장[2][3].

《애쉬즈 오브 더 싱귤래리티》 테스트에서 AMD 라데온 R9 290x가 DirectX 12에서 최대 70% 성능 향상, 일부 시나리오에서 더 강력한 엔비디아 지포스 980 Ti 능가[2][3]. 엔비디아 카드는 DirectX 11 대비 약간 성능 저하 관측[2][3]. 원인은 엔비디아 드라이버 최적화 미흡 또는 DirectX 11 직렬 실행 최적화 하드웨어 한계일 수 있으나 불분명[2][3].

엑스박스에서 DirectX 12 성능 향상은 PC만큼 크지 않음[2][3].

개발자 생태계·호환성

초기엔 윈도우 게임 플랫폼 불신으로 개발자 유치 어려웠으나, 《둠》 이식·적극 홍보·하드웨어 업체 협력 테스트 프로그램 배포 등으로 생태계 구축[2][3].

하위 호환성 중시: 윈도우 비스타부터 여러 Direct3D 버전 동시 포함(D3D 9, 9Ex, 10, 10.1, 11 등)해 구형 앱 실행 보장[2][3].

기능 수준(Feature Level) 체계(10_0, 10_1, 11_0, 10 레벨 9의 9_1/9_2/9_3 등)로 하드웨어 성능별 API 기능 제어[2][3].

닷넷 프레임워크 지원: 2002년 Managed DirectX(MDX) 출시(네이티브 성능 98% 주장), 2005~2006년 연속 업데이트 후 Managed DirectX 2.0 베타 정점, 단일 어셈블리로 종속성 단순화했으나 개발 중단·지원 종료(2006년 10월 5일 만료)[2][3].

XNA 프레임워크 발표(2006년 GDC): DirectX·HLSL·도구 통합 패키지, 게임 개발 지원, 엑스박스 360 관리 코드 실행 지원, XNA 게임 스튜디오 익스프레스 RTM 2006년 12월 11일 무료 배포[2][3].

경쟁 기술과의 관계

OpenGL: 크로스 플랫폼·ARB 관리 vs Direct3D 윈도우 전용·마이크로소프트 통제로 "전쟁" 양상[2][3]. 마이크로소프트 내 OpenGL 지원도 DirectX 팀이 담당[2][3]. OpenGL 사용 시에도 사운드·입력 등 위해 DirectX 다른 API와 결합 흔함[2][3].

저오버헤드 API 경쟁: DirectX 12, 맨틀, 메탈, 벌컨 동시대 등장[2][3].

최신 방향성

DirectX 12 Ultimate로 PC(윈도우 10)와 9세대 엑스박스 콘솔 공통 라이브러리 통합, 레이 트레이싱 1.1·가변 속도 셰이딩·메시 셰이더·샘플러 피드백 등 차세대 그래픽 기능 표준화[2].

실시간 광선 추적(DXR), GPU 가속 AI(DirectML), GPU 지향 I/O(DirectStorage), 업스케일링(DirectSR) 등 최신 워크로드 대응 API 지속 추가[2][3].

레거시 구성 요소(DirectDraw, DirectSound, DirectInput, DirectPlay, DirectMusic 등) 체계적 사용 중단·대체 API 제시[2][3].

그 밖의 주제

SDK·런타임 배포 변화

초기: 런타임은 게임이 설치하거나 사용자 직접 설치, 윈도우 95엔 미포함, 윈도우 95 OEM 서비스 릴리스 2부터 포함, 윈도우 98·NT 4.0 이후 모든 윈도우에 탑재[2][3].

초기엔 모든 DirectX 호환 드라이버 최신 라이브러리 포함 배포, 나중엔 웹 기반 윈도우 업데이트 드라이버 업데이트 시스템 선호로 사용자 하드웨어 관련 드라이버만 다운로드 방식 전환[2][3].

DirectX 10 이전 런타임은 구형 드라이버와 하위 호환 설계(새 API가 구형 DDI 드라이버와 상호 운용), 응용 프로그래머가 복잡한 "cap bits" 시스템으로 하드웨어 성능 쿼리[2][3].

윈도우 비스타 Direct3D 10 런타임은 대폭 업데이트된 DDI로 구형 하드웨어 드라이버에서 실행 불가, 통합 기능 세트 요구·"cap bits" 사용 중단[2][3].

윈도우 폰

윈도우 폰 8에 DirectX 탑재 확인됨[2][3].

다이렉트쇼(DirectShow) 분리

2005년 4월부로 다이렉트쇼가 DirectX에서 제거돼 마이크로소프트 플랫폼 SDK로 이동[2][3].

이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.