DirectX

300px

DirectX 홈페이지

1 개요

Microsoft DirectX.[1]

1995년 9월 30일에 마이크로소프트Windows 95 이후 플랫폼에 맞게 개발하여 클로즈드 소스 형태로 발표한 멀티미디어게임용 종합 라이브러리.

2 역사

2.1 WinG (1994년)

1985년에 처음 Windows가 나왔을 때, 많은 사람들이 "윈도우에서 할 게임이 없다!"라고 불평을 늘어놓았던 것이 계기가 되어서 개발되었다는 뒷이야기가 있다. 실제로 1992년 이후 Windows 3.1 시절만 해도 정말 할 게임이 없었고(물론 사람 폐인만드는 카드놀이지뢰찾기, 옷 갈아 입히기가 있었긴 했지만), 이 상황은 Windows 95 발매 직후까지 계속 이어졌다. 결국 게이머들은 Windows 95와 인텔 펜티엄 CPU가 보급된 시점에도 640kB의 장벽을 넘어서 게임을 하려 애를 쓰곤 했다. 따라서 DOS4GW와 같은 확장메모리 확보를 위한 소프트웨어가 필요한 dos용 게임(예를들면 90년대 중반에 발매된 상당한 숫자의 북미산 DOS게임)도 굉장히 많았으며, 심지어 1995년 당시 MS-DOS 6.2와 병행해서 쓰는 사람도 수두룩했으니 말 다했다. 이러한 문제점을 매우 심각하게 봤던 MS에서는 1994년에 Windows 3.1용으로 WinG라는 라이브러리를 발표하지만 싸늘한 반응만을 얻고 말았다.[3]

이렇게 된 이유는 Windows 환경에서 그래픽 출력에 쓰는 GDI 라이브러리의 속도가 지나치게 느려서, 빠른 속도를 필요로 하는 게임에는 적합하지 않았기 때문이다.[4] 그래서 Windows 3.1용으로 나온 게임은 대부분 턴제 전략이나 퍼즐 등의 빠른 그래픽 처리가 필요없는 게임이 대부분이었고 빠른 그래픽 처리가 요구되는 다른 장르에서는 대부분 DOS 기반 플랫폼으로 나왔던 것.

2.2 DirectX 1.0 (1995년)

  • 주요 특징 : Windows 95와의 호환성 개선, DirectDraw, DirectSound, DirectInput 포함.[5]
  • 기본 지원 OS : (해당 없음)
  • 사용 가능 OS : Windows 95부터, Windows NT 4.0
  • 기본 채택된 그래픽 하드웨어 :
  • 주로 채택된 시기 : 1995~1996년

1995년 9월 30일 MS가 절치부심해서 WinG를 Windows 95에 맞게 만들어낸 것이 바로 DirectX. 초창기에는 그래픽 처리를 2D 그래픽 컴포넌트인 DirectDraw에 중점으로 두었기 때문에 3D 성능은 Glide는 물론 OpenGL에 비하면 당연히 떨어졌지만 게임-OS간에 호환성과 퍼포먼스는 Windows 3.1의 WinG보다 더 나은 편이었다.[6]
MS에서 DirectX에 들이는 관심이 결코 적지 않음에도 불구하고 DirectX 개발팀은 타 마이크로소프트 제품들과 약간 지향이 다르다. 훨씬 더 미묘한 운영체제 해킹을 적극적으로 사용하며 범용성보다는 특화를 추구하는 경향이 있다.

2.3 DirectX 2.0 (1996년)

  • 주요 특징 : Direct3D 포함.
  • 기본 지원 OS : Windows 95 OSR2
  • 사용 가능 OS : Windows 95부터, Windows NT 4.0
  • 기본 채택된 그래픽 하드웨어 :
    • ATI Rage 3D II, Rage Pro (1996~1997년)
    • NVIDIA RIVA 128 (1997년)
    • 3dfx Voodoo Rush (1997년)
  • 주로 채택된 시기 : 1997~1998년

1996년 6월 2일 많은 게이머들이 회자되는 DirectX의 3D 그래픽 컴포넌트인 Direct3D가 포함된 DirectX 2.0이 발표되었고, 발표 이후 안정화 작업을 거쳐서 Windows 95 OSR2에 기본 내장되었다.
하지만 3D의 성능이 처참해서 일반 및 사무 작업 = Windows 95, PC 게임 = DOS 게임이라는 기현상은 계속되었다. 자체지원 때려치우고 OpenGL이나 도입하라는 성토가 대세였을 정도인데다 하필이면 1996년 10월에 DirectX의 훌륭한 대체재로 각광받은 3dfxVoodoo 그래픽카드와 함께 로우 레벨 API인 글라이드가 막 나와서 상당히 좋은 퍼포먼스로 평가받은 바람에 한동안 PC 게임 = Glide API라는 인식으로 전환되었다. 단순히 Windows용 게임의 갯수만 보면 1997년부터 PC 게임 = Windows용 게임으로 취급할 정도로 이전해보다 훨씬 많아지긴 했지만, 정작 게임 개발에 사용된 API는 MS가 개발한 DirectX가 아닌 Glide API였다.

2.4 DirectX 3.0 (1996년)

  • 주요 특징 : DirectSound3D 포함, 다중 키보드 및 마우스 지원.
  • 기본 지원 OS : (해당 없음)
  • 사용 가능 OS : Windows 95부터, Windows NT 4.0
  • 기본 채택된 그래픽 하드웨어 : (불명)
  • 주로 채택된 시기 : (불명)

1996년 9월 15일에 발표되어 입체음향 기술에 관련된 DirectSound3D 컴포넌트가 포함되었다. Direct3D의 성능도 강화되었으나 3D 사운드는 기존 서드파티의 기술이 아닌 자체 음향 기술만 취급하여 게임 개발사들이 채택하기 꺼려했다.

2.5 DirectX 5.0 (1997년)

  • 주요 특징 : DrawPrimitive, DirectShow[7] 포함, DirectSound3D의 서드파티 기술 지원, 진동 기능 지원.
  • 기본 지원 OS : Windows 95 OSR2.5
  • 사용 가능 OS : Windows 95부터
  • 기본 채택된 그래픽 하드웨어 :
    • NVIDIA RIVA 128 ZX, TNT (1998년)
    • 3dfx Voodoo 2, Banshe (1998년)
    • intel 740 (1998년)
  • 주로 채택된 시기 : 1998~1999년

1997년 8월 4일에 발표되어 11월 26일 출시된 Windows 95 OSR2.5에 기본 내장되었다. 글라이드 API의 대세로 인해 위협을 느낀 MS에서는 DirectX 개발에 공격적으로 투자하여 먼저 개발 중인 DirectX 4.0을 건너뛰고 기본 그리기 기능인 DirectPrimitve 컴포넌트와 서드파티 개발사의 3D사운드 기술을 지원하는 등 DirectSound3D 부분이 강화되었지만, 당시로썬 여전히 넘사벽 수준의 퀄리티였던 글라이드 API의 아성을 무너뜨리기엔 역부족이었다. 그래도 종합 멀티미디어 라이브러리로써의 모습으로 갖추어진건 그나마 나은 부분.

2.6 DirectX 6.0 (1998년)

  • 주요 특징 : 멀티 텍스처링 지원, 범프 맵핑 강화, DirectMusic[8] 포함, SSE[9]와 3DNow 명령어 지원.
  • 기본 지원 OS : (해당 없음)
  • 사용 가능 OS : Windows 95부터
  • 기본 채택된 그래픽 하드웨어 :
    • ATI Rage XL, Rage 128 시리즈부터 Fury MAXX까지 (1998~1999년)
    • NVIDIA RIVA TNT2 시리즈 (1999년)
    • 3dfx Voodoo 3, 4, 5 시리즈 (1999~2000년)
    • intel 752, Extreme Graphics, Extreme Graphics 2 (1999~2003년)
  • 주로 채택된 시기 : 1999~2000년

1998년 8월 7일 MS는 이에 포기하지 않고 지속적인 개발 끝에 멀티 텍스처링과 범프 맵핑을 비롯한 새로운 기능들이 포함된 DirectX 6.0을 발표했다. 가정용 게임기인 드림캐스트의 API로 사용 가능하지만 DirectX보다 성능 효율이 더 좋은 개발사 자체 API를 주로 사용하는 바람에 반쪽짜리 신세가 되어버렸고, 독점화하고 있는 글라이드를 어느 정도 추격하기에 이르렀지만 새로운 기능들을 CPU가 전담하기엔 부담이 너무 커서 제대로 활용하기 어려웠다는 단점이 있었다.

2.7 DirectX 7.0 (1999년)

  • 주요 특징 : 하드웨어 T&L[10] 지원.
  • 기본 지원 OS : Windows 2000, Windows 2000 Server
  • 사용 가능 OS : Windows 95부터
  • 기본 채택된 그래픽 하드웨어 :
    • NVIDIA Geforce 256, 2 시리즈, 4 MX 시리즈 (1999~2002년)
    • ATI Radeon R100 시리즈 (2000~2001년)
  • 주로 채택된 시기 : 2000~2004년 (주류 : 2000~2002년)

1999년 9월 22일 글라이드 API를 향한 계속된 추격 끝에 DirectX 7.0이 발표됨으로써 결실을 맺게 되었다. 6.0버전의 단점을 대폭 개선할 겸 새로운 기술을 추가하면서 1998년에 이미 발표된 OpenGL 1.2.1의 기능을 거의 따라잡았으며, 하지만 카멕 형님의 반격이 만만찮았지 Windows라는 든든한 호환성 보장 레이어를 통해 오히려 OpenGL보다 기능 지원여부에 신경을 쓰지 않아도 되는 경지에 다다랐다. 이후부터는 최소 3D 게임 분야에 한해서만은 Direct3D 7.0이 OpenGL을 앞선 상태였고 PC 게임 API의 천하였던 글라이드와 대등하거나 그 이상으로 발전하면서 2000년 이후에는 PC 게임 = DirectX라는 인식을 심어준 일등 공신이 되었다. MS는 Direct3D의 성능이 보잘 것 없을 때부터 OpenGL과 반대방향 회전 좌표계를 고집하였는데, 이것이 현재는 역으로 DirectX에서의 이탈을 방지하는 장벽으로 작용하고 있다.[11]

2.8 DirectX 8.0 (2000년)

  • 주요 특징 : 프로그래머블 셰이딩 기능인 셰이더 모델 1.0 적용, 팔레트 기반의 정수형 GPGPU 지원.
  • 기본 지원 OS : (해당 없음)
  • 사용 가능 OS : Windows 95부터
  • 기본 채택된 그래픽 하드웨어 : NVIDIA Geforce 3 시리즈 (2001년)
  • 주로 채택된 시기 : (채택된 게임이 거의 없었음)

2000년 11월 12일에 DirectX 8.0이 정식 발표되어 MS는 더 큰 도약을 준비하고 있었다. 그 중에 하나는 프로그래머블 셰이더 기능이었고, 그래픽 하드웨어 표준 사항의 최종 단계인 레이 트레이싱 기법을 구현할 수 있는 수준까지 도달한 그래픽 API였다. 당시 컨퍼런스에서 발표한 샘플 렌더링 영상으로는 7.0버전을 넘는 충격이었지만, 정작 새로운 사용법에 낯선 점도 있고 처음 시도한 부분이 많았던 버전이다보니 불안정한 편이었기 때문에 7.0버전과는 달리 새로운 버전을 꺼려하는 개발사가 많아졌다. 낯선 기술이라 적응하기 어려운건 둘째치고 그래픽을 구현하기 위한 방식이 달라지는 바람에 이전 7.0버전과의 호환성이 낮아진 것이 진입장벽의 가장 큰 원인이었다고 볼 수 있다. 그래서 한동안 8.0버전을 채택한 게임이 거의 나오지 않았던 것. 또한 8.0버전의 또 다른 문제점이 있었는데, MS는 이제 모든 2D는 3차원 폴리곤으로 그리면 된다면서 기존의 2차원 가속 기능인 DirectDraw를 없애(!)버렸다. 개발자의 비난이 빗발쳤으나[12] DirectDraw는 이후 돌아오지 않았으며, 대신 7.0버전 이하에서 사용 가능하던 2차원 출력 관련 접근(DirectDraw) 기능 일부를 3D쪽으로 지원편입하였다.

2.8.1 DirectX 8.1 (2001년)

  • 주요 특징 : 픽셀 셰이더 1.4, 버텍스 셰이더 1.1, 3D 성능 개선.
  • 기본 지원 OS : Windows XP, XBOX, Windows Server 2003
  • 사용 가능 OS : Windows 98부터
  • 기본 채택된 그래픽 하드웨어 :
    • NVIDIA Geforce 4 Ti 시리즈 (2002년)
    • ATI Radeon R200 시리즈 (2001~2002년)
  • 주로 채택된 시기 : 2002~2006년 (주류 : 2002~2004년)

2001년 10월 25일에 기존 8.0버전의 문제점들을 대폭 개선한 DirectX 8.1이 발표되었다. 여러 차례의 마이너 버전을 거듭하면서 버텍스 셰이더가 1.1버전, 픽셀 셰이더가 1.4버전으로 업그레이드되었고, 특히 최대 동시 명령어 갯수가 28개로 증가되었다. 때마침 XBOX 게임기가 개발 막바지에 이르렀던 시기였는데 최신 버전이었던 8.1버전을 XBOX에 반영됨에 따라 많은 개발 관계자와 전문가들이 기대했었고, 2001년 11월에 헤일로: 전쟁의 서막을 비롯한 XBOX 런칭작들의 기술적인 가능성을 보고 이때부터 수많은 개발사들이 그제서야 새로운 버전에 관심을 가지게 되어 이듬해부터 8.1버전 지원 게임이 본격적으로 등장하기 시작했다.

2.9 DirectX 9.0 (2002년)

  • 주요 특징 : 셰이더 모델 2.0 적용, 고수준 셰이더 언어(HLSL) 지원, HDR 렌더링 지원, 부동소수점 텍스처 포맷 지원, 다중 렌더 타겟(MRT) 지원, 다중 요소 텍스처 지원, 스텐실 버퍼 지원, 지오메트리 인스턴싱 적용, 부동소수점 GPGPU의 부분적인 지원.
  • 기본 지원 OS : (해당 없음)
  • 사용 가능 OS : Windows 98부터
  • 기본 채택된 그래픽 하드웨어 :
    • ATI Radeon R300 시리즈 (2002~2003년)
    • NVIDIA Geforce FX 시리즈 (2003~2004년)
    • intel GMA 900 (2004년)
  • 주로 채택된 시기 : 2003~2006년 (주류 : 2004~2006년)

2002년 12월 19일에 발표된 버전[13]으로 기존 8.x버전부터 도입된 셰이더 언어의 난이도를 낮추기 위해 고수준 셰이더 언어(HLSL)를 지원하기 시작했고, 셰이더 모델 2.0으로 업그레이드됨에 따라 동시 명령어 갯수가 최대 128개로 확장되었다.
HDR 렌더링이 처음으로 도입되었고, 빈약했던 Direct3D의 2D 기능을 보완하여 예전의 DirectDraw에 버금가는 수준으로 개선되었다. 예상대로 많은 전문가들이 기대에 부풀었고 스타워즈 구 공화국의 기사단, 페르시아의 왕자 시간의 모래, 콜 오브 듀티, 파크라이, 하프라이프 2, 서든어택2등 2003년 이후에 출시된 여러 전설적인 명작 게임들을 통해 DirectX의 위상이 더더욱 높아졌다.

2.9.1 DirectX 9.0a (2003년)

  • 주요 특징 : 픽셀 셰이더 2.0a, 버텍스 셰이더 2.0a 적용
  • 기본 지원 OS : (해당 없음)
  • 사용 가능 OS : Windows 98부터
  • 기본 채택된 그래픽 하드웨어 : (불명)
  • 주로 채택된 시기 : 2003~2006년 (주류 : 2004~2006년)

2003년 3월 26일에 발표된 기존 DirectX 9.0의 개선판. 셰이더 모델 2.0a로 마이너 업그레이드되었으며 동시 명령어 갯수가 최대 512개로 증가되었다. 그 외에 그라디언트 관련 명령어를 비롯한 일부 새로운 기능이 추가되었다.

2.9.2 DirectX 9.0b (2003년)

  • 주요 특징 : 픽셀 셰이더 2.0b 적용
  • 기본 지원 OS : (해당 없음)
  • 사용 가능 OS : Windows 98부터
  • 기본 채택된 그래픽 하드웨어 :
    • ATI Radeon R400 시리즈 (2004~2005년)
  • 주로 채택된 시기 : (채택된 게임이 거의 없었음)

2003년 8월 13일에 발표된 DirectX 9.0/9.0a의 개선판. 버텍스 셰이더는 2.0a 그대로 유지되지만 픽셀 셰이더는 2.0b로 마이너 업그레이드되었다. 임시 레지스터의 공간이 확장된 것 이외에는 뚜렷한 변경점은 없고 하드웨어적으로는 ATi의 라데온 X700~800 시리즈만 지원하여 파편화가 발생하는 바람에 게임 업계에서 널리 쓰이지 못 했다. 아직도 9.0 오리지널 버전을 쓰는 국내기업...

2.9.3 DirectX 9.0c (2004년)

  • 주요 특징 : 셰이더 모델 3.0 적용, 부동소수점 GPGPU의 완벽 지원, 4K 텍스처 지원, XInput 포함, XBOX 360 한정 XAudio 2 포함
  • 기본 지원 OS : Windows XP SP2, Windows Server 2003 R2, XBOX 360
  • 사용 가능 OS : Windows 98부터
  • 기본 채택된 그래픽 하드웨어 :
    • NVIDIA Geforce 6, 7 시리즈 (2004~2006년)
    • ATI Radeon R500 시리즈 (2005~2007년)
    • intel GMA 950, 3000, X3000, 3100 (2005~2007년)
  • 주로 채택된 시기 : 2005년~현재

2004년 8월 6일에 발표된 DirectX 9.0/9.0a/9.0b의 대폭 개선판. 이름이 9.0 계열의 연장선이라 큰 변경점은 없어보일지라도 9.0이 맞나 싶을 정도로 새로운 기술들이 대거 추가되었다. 셰이더 모델 3.0으로 업그레이드 되었고 GPGPU 등의 새로운 기능들이 추가되었으며, 후기에는 디스플레이스먼트 맵핑이 추가 지원되었지만 일부 새 기능들은 당시 기술력으로는 프로그래밍하기가 어려워서 잘 활용하지 않는 기능으로 전락되어버렸다. 그래도 기존 구버전과 하위 호환성을 유지하면서 큰 발전을 보여줬기 때문에 2005년 11월에 출시된 콘솔 게임기인 XBOX 360에 적용[14]되었고, 수많은 해외 개발사들은 물론 국내 개발사들까지 오랫동한 채택된 버전이 되었다. 지금도 국내 온라인 PC 게임에서 많이 사용되고 있다(...) 예를 들면, 2016년 7월에 나온 서든어택2??? 2016년 8월에 CBT 예정된 로스트아크??? 하지만, 이러한 현상이 지금 시점에서는 오히려 발목을 잡고 있는데 훗날에 나온 버전들보다 프로그래밍 난이도가 쉬우면서 굳이 새로운 버전이 아니라도 그럭저럭 괜찮은 퀄리티를 뽑을 수 있다는 이유로 9.0c 버전을 지나치게 붙잡기에 이르렀다. 결국 세월이 흐르면서 유저들의 눈높이가 높아짐에 따라 게임 개발사들 간에 경쟁은 계속되면서 더 화려하고 사실적인 퀄리티를 구현하려다 보니 주어진 하드웨어의 성능으로는 오버헤드가 자주 발생하게 되었는데 이는 9.0c의 모든 기능을 최대한 활용하기엔 부족한 성능의 자원이었다. 그래서 9.0c의 모든 기능을 전부 활용한 게임은 사실상 거의 없었고 한동안 반쪽짜리 9.0c 게임으로 이어졌다. 그래도 오리지널 9.0버전 시절 게임보다 더 뛰어난 그래픽으로 보였다. 개발에 사용된 게임 엔진들이 가만히 있지만은 않았으니.. 그래도 몇 년동안 9.0c 관련 마이너 업데이트를 꾸준히 진행되었지만 태생적인 특성이 바뀌는건 아니었기 때문에 9.0c 최신 업데이트 버전으로 현세대 수준의 퀄리티와 자원(그래픽카드) 최적화를 뽑기가 어려운 낡은 기술인 것은 변함이 없다.

일단 이 기술의 태생이 XP 기술이기에 듀얼코어까지밖에 사용하지 못한다. 그나마도 할당이 그닥 좋지 못하기 때문에 사실상 싱글코어 쓰는 거와 차이가 없다. 거기다가 VRAM을 4GB까지밖에 못쓴다고 한다.

2.10 DirectX 10.0 (2007년)

  • 주요 특징 : 셰이더 모델 4.0 적용, 지오메트리 셰이더가 추가 및 포함된 통합 셰이더로 개편, 오버헤드 감소, 8K 텍스처 지원, 지오메트리 인스턴싱 2.0 적용, DXGI 1.0 포함, WDDM 1.0 대응.
  • 기본 지원 OS : Windows Vista
  • 사용 가능 OS : Windows Vista부터
  • 기본 채택된 그래픽 하드웨어 :
    • NVIDIA Geforce 8, 9 시리즈, GTX295~GTS250 (2006~2009년)
    • AMD Radeon HD 2000, 3000 시리즈 (2007~2008년)
    • intel GMA X3100, X3500, 4500, X4500, X4500HD (2007~2008년), HD Graphics (클락데일 기반) (2010년)
  • 주로 채택된 시기 : 2007년~현재[15]

2006년 11월 30일 9.0c의 마이너 업데이트만 2년 넘게 진행한 끝에 기업용 Windows Vista와 함께 DirectX 10.0이 등장하여 9.0c보다 더 효율적인 그래픽 처리를 보여줬지만, 2달 후인 2007년 1월 30일 일반 가정용 Windows Vista가 출시되고, 2007년 2월 2일 DirectX 10의 실체라고 볼 수 있는 SDK가 공개되면서 뚜껑을 열고 보니 Vista 전용 버전으로 제한되고 있었다.
초기엔 MS의 비스타 판매 전략이 아닌가라는 논의가 있었지만, 윈도우 커널이 5.x에서 6.0버전으로 갈아엎으면서 윈도우 내에 설치된 각종 드라이버들을 통합적으로 제어해주는 기존 WDM(Windows Driver Model), XPDM(XP Display Model)이 WDDM(Windows Display Driver Model) 1.0으로 탈바꿈했고, 3D 사용시 비디오 메모리 가상화라는 기능이 10.0버전에서 필수로 대두되자 Windows XP는 커널자체에서 이 기능을 지원을 하지 못 했다. 이 때문에 몇몇 군데에서 10.0버전을 XP로 포팅한다는 루머까지 퍼졌지만, 포팅 성공에 대해서는 전부 무소식이었다. 뭐 그래도 OpenGL을 이용해서 XP에서 10버전 맛보기라도 어느 정도 가능하긴 하지만...[16]

2.10.1 DirectX 10.1 (2008년)

  • 주요 특징 : 셰이더 모델 4.1 적용, 3D 성능 개선, 확장 MSAA 4x 지원, XAudio 2 정식 지원.
  • 기본 지원 OS : Windows Vista SP1, Windows Server 2008
  • 사용 가능 OS : Windows Vista SP1부터
  • 기본 채택된 그래픽 하드웨어 :
    • AMD Radeon HD 4000 시리즈 (2008~2009년)
    • NVIDIA Geforce G210, GT220, GT240 (2009년)
    • HD Graphics[17] 2000, 3000 (샌디브릿지 기반) (2011년)
  • 주로 채택된 시기 : 2008년~현재[18]

2008년 2월 4일 Windows Vista 서비스팩1과 함께 DirectX 10.1이 정식 발표되었다. 안티에일리어싱의 발전형 기술인 MSAA 4x 기능 추가를 비롯하여 기존 10.0버전의 성능 효율이 개선되었다. DirectX 10의 완성판이라고 봐도 좋을 정도. 지금은 훗날에 등장한 DirectX 11의 그늘에 가려져 있는 신세지만 이래봬도 2D 그래픽 라이브러리인 Direct2D의 하드웨어 풀옵션 사양이다.

2.11 DirectX 11.0 (2009년)

  • 주요 특징 : 셰이더 모델 5.0 적용, 테셀레이션 구현을 위해 헐 셰이더와 도메인 셰이더 추가, GPGPU 컴퓨팅을 위한 컴퓨트 셰이더 추가, Direct2D/DirectWrite 1.0 포함, DXGI 1.1 포함, DirectCompute 포함, XAudio 2.7 포함, 16K 텍스처 지원, 멀티코어 프로세싱 강화, 멀티스레드 지원, WDDM 1.1 대응.
  • 기본 지원 OS : Windows 7, Windows Server 2008 R2
  • 사용 가능 OS : Windows Vista SP2부터
  • 기본 채택된 그래픽 하드웨어 :
    • AMD Radeon HD 5000, 6000 시리즈, 7990~7850, 7770~7730 (2009~2012년)
    • NVIDIA Geforce 400, 500, 600, 700 시리즈, Titan, Titan Black, Titan Z (2010~2014년)
    • HD Graphics[19] 2500, 4000 (아이비브릿지 기반) (2012년)
  • 주로 채택된 시기 : 2009년~현재

2009년 10월 22일 Windows 7과 함께 DirectX 11.0이 정식 공개되었다. (이후 윈도우 비스타도 플랫폼 업데이트를 통해 11버전을 지원) ATI의 신규 HD 5000 시리즈가 이 다이렉트X 11을 지원하며 최초의 11.0 지원게임인 Dirt 2도 11.0 환경에서 조금 더 높은 수준의 그래픽을 보여준다. 또한, 2차원 전용 가속 API인 Direct2D와 텍스트 글꼴 표시에 관여하는 DirectWrite를 정식으로 지원하면서 2D 성능이 향상되었으나 DirectX 10.1을 지원하는 그래픽 하드웨어와 Vista 이상만 제대로 사용 가능하다는 미묘한 포지션 때문에 그다지 주목받지 못 했다(...)[20] 덕분에 DirectDraw를 사용한 옛 프로그램들은 Windows 8 이후와의 호환성이 매우 좋지 않은 경우가 많다.[21] 때문에 DXGL이라고[22] 부르는 툴을 이용해서 7.0버전대까지의 구현을 모두 OpenGL로 변환해서 돌리는게 훨씬 나을 정도. (최신버전은 여기서 받을 수 있다. 시스템 요구사항은 여기를 참조[23]. 비슷하게 DirectDraw Compatibility Tool이란 것도 있다. 구글 번역(영어)로 보기)
DirectX보다는 OpenGL을 미는 경향이 있었던 엔비디아와 달리 DirectX의 표준을 준수하며 함께 길을 걸어온 라데온은 11버전에서 그 결실을 본다. 2010년 10월에는 DirectX 11을 지원하는 GPU시장의 90%를 라데온이 점유하기도 했고, 2011년 4월에도 70% 가까이 차지하고 있다. 엔비디아가 너무 늦게 내놓은 것도 영향이 있는 듯하다.

2.11.1 DirectX 11.1 (2012년)

  • 주요 특징 : Feature Level 11_1 대응, 스테레오스코픽 렌더링을 위한 쿼드 버퍼링 추가, 2D 성능 대폭 개선, Direct2D/DirectWrite 1.1 포함, DXGI 1.2 포함, XAudio 2.8 포함, DirectXMath 3.03 포함, WDDM 1.2 대응.
  • 기본 지원 OS : Windows 8, Windows Server 2012
  • 사용 가능 OS : Windows 7 SP1부터
  • 기본 채택된 그래픽 하드웨어 :
    • AMD Radeon HD 7790 (2013년)
    • HD Graphics[24] 4200~5000, Iris 5100, Iris Pro 5200 (하스웰 기반) (2013년)
  • 주로 채택된 시기 : 2013년~현재 (실질적으로 채택된 게임은 별로 없다.)

2012년 10월 26일 Windows 8과 함께 DirectX 11.1이 정식 발표되었다. (이후 윈도우 7도 플랫폼 업데이트를 통해 부분 지원, 윈도우 비스타는 더이상 지원되지 않는다.) 특징은 3D 비젼[25] 강화, 모바일 강화, XNAMath는 DirectXMath라는 이름으로 변경됨과 동시에 2.05에서 3.03으로 업데이트되었으며, Direct2D는 1.1버전으로 업그레이드되어 2D 처리 성능이 향상되었다.(11.0버전의 Direct2D 1.0버전보다 처리 효율이 5배나 뻥튀기된다!)
라데온 시리즈(HD 7000 시리즈 이상)만 완벽하게 지원하고 지포스 시리즈는 표기상만 11.1 지원이지 실제로는 모든 기능을 지원하지 못하고 있다. 이로 인한 지원 파편화는 이 글을 참조. 하스웰의 경우는 11.1을 지원하기는 하지만 그래픽 성능이 영 좋지 않은 터라(...)

2.11.2 DirectX 11.2 (2013년)

  • 주요 특징 : Tiled Resources 옵션 추가, Direct2D/DirectWrite 1.2 포함, DXGI 1.3 포함, DirectXMath 3.06 포함, WDDM 1.3 대응.
  • 기본 지원 OS : Windows 8.1, Windows Server 2012 R2, XBOX ONE
  • 사용 가능 OS : Windows 8.1부터, XBOX ONE
  • 기본 채택된 그래픽 하드웨어 :
    • AMD Radeon R9 290X, 290, 285, 295X2, R7 260X, 260 (2013~2014년)
    • HD Graphics[26] 5300~6000, 400~405, Iris 6100, Iris Pro 6200 (브로드웰 기반) (2014년)
  • 주로 채택된 시기 : 2014년~현재 (실질적으로 채택된 게임은 별로 없다.)

2013년 10월 17일 Windows 8.1과 함께 DirectX 11.2이 공개되었는데, 1달 뒤에 출시된 콘솔 게임기인 엑스박스 원에서도 지원되었다. 'Tiled Resources'라는 새로운 기능을 통해 GPU의 추가적인 로드를 발생시키지 않으면서도 고해상도 텍스처를 보다 역동성 있게 배치할 수 있게 되었다. DirectXMath 3.06으로 업데이트되었고 Direct2D는 1.2버전으로 업그레이드되면서 2D 지오메트리 구현, DDS(DirectDraw Source) 파일 지원, 새로운 이펙트, 2D 모드에서도 멀티스레딩 지원, 렌더링 우선순위 설정, JPEG YCbCr 이미지 지원 등 각종 여러 기능들이 추가되었다. 라데온 Rx 200 시리즈만 이를 제대로 지원한다.

2.11.3 DirectX 11.3 (2015년)

  • 주요 특징 : 셰이더 모델 5.1 적용, Direct2D/DirectWrite 1.3 포함, DXGI 1.4 포함, XAudio 2.9 포함, DirectXMath 3.07 포함, WDDM 2.0 대응, 공유 메모리 접근 기능 지원.
  • 기본 지원 OS : Windows 10
  • 사용 가능 OS : Windows 10부터, XBOX ONE 업데이트 이후부터
  • 기본 채택된 그래픽 하드웨어 :
    • NVIDIA Geforce 900 시리즈, Titan X (2014~2015년)
    • AMD Radeon Rx 300 시리즈, R9 Fury X, Fury, Nano, Pro Duo (2015~2016년)
    • HD Graphics 510~530, 500~505, Iris 540~550, Iris Pro 580 (스카이레이크 기반) (2015~2016년)
  • 주로 채택된 시기 : (불명)

셰이더 모델 5.1로 업그레이드되었고 공유 메모리 접근 기능이 추가되었으며, DirectXMath가 3.07로 업데이트되었다. Direct2D는 1.3버전으로 업그레이드되먼서 기능 위주로 추가되었던 1.2버전과는 달리 이번엔 벡터 방식의 잉크 셰이딩이나 메쉬 방식의 그라디언트 등 새로운 기능은 물론 복잡한 셰이딩 단계가 간략화하여 성능 효율까지 대폭 향상되었다.

2.11.4 DirectX 11.4 (2015년)

  • 주요 특징 : DXGI 1.5 포함, DirectXMath 3.08 포함, 멀티스레드 보호 기능 강화, 확장된 NV12 텍스처 지원
  • 기본 지원 OS : Windows 10 버전 1511
  • 사용 가능 OS : Windows 10 버전 1511부터, XBOX ONE 업데이트 이후부터
  • 기본 채택된 그래픽 하드웨어 : (불명)
  • 주로 채택된 시기 : (불명)

2.11.5 DirectX 11.4 (Anniversary Update) (2016년)

  • 주요 특징 : DirectXMath 3.09 포함, UHD 환경을 위한 HDR10 포맷 지원
  • 기본 지원 OS : Windows 10 버전 1607
  • 사용 가능 OS : Windows 10 버전 1607부터, XBOX ONE 업데이트 이후부터
  • 기본 채택된 그래픽 하드웨어 : (불명)
  • 주로 채택된 시기 : (불명)

2.12 DirectX 12.0 (2015년)

  • 주요 특징 : DirectX 11.3의 기능 포함, WDDM 2.0 대응, 이기종 다중 GPU 지원, 비동기 컴퓨트 정식 지원, 오버헤드 감소
  • 기본 지원 OS : Windows 10
  • 사용 가능 OS : Windows 10부터, XBOX ONE 업데이트 이후부터
  • 기본 채택된 그래픽 하드웨어 :
    • NVIDIA Geforce 900 시리즈, Titan X, 10 시리즈 (2014~2016년)
    • AMD Radeon Rx 300 시리즈, R9 Fury X, Fury, Nano, Pro Duo, RX 400 시리즈 (2015~2016년)
    • HD Graphics 510~530, 500~505, Iris 540~550, Iris Pro 580 (스카이레이크 기반) (2015~2016년)
  • 주로 채택된 시기 : 2015년~현재 (2015년 당시에 채택된 게임은 Caffeine과 스타워즈: 배틀프론트(2015)밖에 없었다.)

2015년 7월 29일 Windows 10와 함께 DirectX 12가 정식으로 발표되었다. CPU 멀티쓰레드 능력 상승과 11버전과 대비 CPU 사용효율 50% 개선되었으며, 엔비디아의 케플러(Geforce 600 시리즈) 이상, AMD의 GCN 1.0(라데온 HD 7700 시리즈) 이상[27], 인텔의 하스웰 CPU 내장 그래픽 이상이 지원되고 있다. 다만, 이 때문에 DX11부터 시작된 지원 수준의 파편화가 더 심해졌다. 자세한 것은 이 글 참조. 이 때문에 feature checker라는 프로그램도 나왔다. 컴덕들 사이에서 GPU 스펙 확인 툴의 바이블 겪인 GPU-Z도 0.8.6버전부터 DirectX 지원 정보가 Feature Level을 보여주는 식으로 바뀌었다.[28]

맨틀처럼 하드웨어 직접 접근을 표방한다. DirectX 12의 성능 향상 폭이 커서 함께 발표된 DirectX 11.3은 사람들 관심 밖으로 밀려났다. 비동기 컴퓨트[29]를 본격적으로 지원하고, 이기종 다중 GPU 환경을 지원한다. 즉, GPU 내부의 하드웨어 자원을 더 효율적으로 활용할 뿐만 아니라 서로 다른 제품의 여러 GPU들을 동시에 활용할 수 있게 되어 CPU에 내장된 GPU + 라데온 GPU + 엔비디아 GPU로 동시에 그래픽처리를 할 수 있게 된 것. 지금까지 크로스파이어, SLI, 그리고 지금은 막혀버린 하이브리드 피직스를 사용하는 방식의 멀티 GPU 환경은 있지만 이는 여러가지 제약[30]을 가지고 있고, 내장 GPU를 활용하지 못한다는 단점이 있다.[31] 아무튼, 내장 GPU의 성능도 조금씩 높아져가는 현재로서는 이를 활용할 수 있으면서 타 사의 그래픽카드와도 연산 호환성을 가진다는 점은 꽤 큰 장점이라고 할 수 있겠다.

하지만 현재 공개된 데모는 그래픽카드에서 렌더링한 화면을 도로 내장으로 복사해서 후처리를 하는 방식이라, 초당 프레임 수는 올라도 하나의 장면을 렌더링 하는데 걸리는 시간(=지연시간=인풋 렉)은 오히려 훨씬 길어진다. DirectX 12 Multiadapter 설명 5번째 댓글에서 계산을 해놨으니 관심있으면 참고하자.

2.12.1 DirectX 12.0 (Anniversary Update) (2016년)

  • 주요 특징 : Direct3D 11.4의 기능 포함, 3D 성능 개선, WDDM 2.1 대응
  • 기본 지원 OS : Windows 10 버전 1607
  • 사용 가능 OS : Windows 10 버전 1607부터, XBOX ONE 업데이트 이후부터
  • 기본 채택된 그래픽 하드웨어 : (불명)
  • 주로 채택된 시기 : (불명)

2016년 8월 2일 Windows 10 버전 1607 대규모 업데이트와 함께 발표되었다. 업데이트된 DirectX 11.4의 기능을 포함하면서 Direct3D 성능이 개선되었으나 Build 2016에서 소개되었던 셰이더 모델 6.0은 아직 완성되지 않아 Windows 10 Anniversary Update SDK에 반영되지 못 했다.

3 기타

참고로 Windows CE에서는 GAPI(Game API)라고 내장 DirectX를 보강한 어플리케이션이 있다.

그래픽 뿐만 아니라 사운드 쪽도 지원하는데, DirectSound가 그것. DirectX에는 좀 늦게 포함이 되었고 그나마 초기 기능은 보잘것 없었기 때문에 초기 윈도우 게임들은 사운드 효과가 많이 떨어졌다. 1990년대 중후반에 나온 게임들이 효과음만 PCM(WAV)을 사용하고 배경음악을 CD 트랙이나 MIDI를 사용하는 것은 이런 이유 때문. 두 개 이상의 PCM을 믹싱해서 출력하는 기능이 떨어졌기 때문이다. 이후 DirectSound가 많이 발전하면서 배경음악도 PCM으로 넣어 믹싱해서 출력하는 것이 가능해졌고, DirectX 3.0부터 DirectSound3D 컴포넌트가 추가되면서 3D 사운드도 지원하게 되었고 5.0버전부터 3D 사운드를 취급하는 여러 서드파티 개발사가 개발한 규격들을 지원하게 되었다. 비슷하게 MIDI 음악 지원을 위해 DirectMusic이 추가되었으나 현재는 빠지고 DirectSound와 사운드 드라이버가 그 자리를 맡고 있다. MS에서는 게임의 플레이 상황에 따른 실시간 곡 변조나 실시간 작곡[32]을 기대했으나 이미 MIDI의 시대는 가버렸다... DirectX 8.0부터는 이들을 합쳐서 DirectX Audio라고 명명되었으며, XBOX360 출시 이후 XAudio라는 이름으로 변경되었다. 2016년 현재는 XAudio2.9가 최신 버전.

그 외에 동영상과 음악 코덱같은 멀티미디어 프로그래밍을 위해 DirectShow가 한때 추가되었으나 금방 Windows SDK 쪽으로 퇴출되었고 Windows Vista 이후 버전부터 Media Foundation으로 대체되는 중이다. 그런데 동영상을 화면에 출력하려면 DirectX에 포함된 구 버전 DirectDraw 라이브러리를 필요로 한다. 왜 나눠놨어(...).

DirectPlay는 희대의 쓰레기(...) 소켓 API로 명성이 높았다. 웬만한 개발자들은 죄다 직접 네트워크 코드를 따로 만들어 쓸 정도. 현 버전은 많이 나아졌다는 평이나 과거의 악몽 때문에 여전히 사용비율은 높지 않다. 사실 8.0에서 버전업이 끊겼다.

Windows XP가 나오기 이전까지는 웬만한 기능 향상마다 버전이 1 단위로 올라갔는데, 덕분에 거의 매년마다 새 메이저 버전이 나와서 정신을 차릴 수 없을 정도였다.

Windows Vista 이후의 최신 윈도우에서는 DirectX가 10 이후 버전은 제대로 내장되어있지만 DirectX 9는 내장이 제대로 되어있지 않기 때문에 DirectX 9로 개발된 게임을 실행하려고 하면 d3dx9_××.dll이 없어서 게임을 실행할 수 없다는 메시지가 뜬다.[33] 이는 DirectX 9 End-User Runtime을 설치해주면 해결된다. 다운로드(마이크로소프트 홈페이지) 물론 어디까지나 다이렉트 X 문제만 해결하는 거기에 다른 호환성 문제로 게임에 문제가 발생하는 것까지는 막을 수 없다.

4 윈도우 버전별 DirectX 지원 범위[34]

  • Windows 3.x/Windows NT 3.x : 1.0[35]
  • Windows 95 : 1.0~8.0a
  • Windows NT 4.x : 1.0~3.0a[36]
  • Windows 98 : 5.2~9.0c
  • Windows 98 SE : 6.1~9.0c
  • Windows 2000 : 7.0~9.0c
  • Windows Me : 7.1~9.0c
  • Windows XP : 8.1~9.0c
  • Windows Server 2003 : 8.1~9.0c
  • Windows XP Professional 64bit Edition : 9.0c
  • Windows Server 2003 R2 : 9.0c
  • Windows Vista : 10.0~11.0 (9.0Ex 포함)[37]
  • Windows Server 2008 : 10.1~11.0 (9.0Ex 포함)
  • Windows 7 : 11.0~11.1 (9.0Ex 포함)[38]
  • Windows Server 2008 R2 : 11.0~11.1 (9.0Ex 포함)
  • Windows 8 : 11.1 (9.0Ex 포함)
  • Windows Server 2012 : 11.1 (9.0Ex 포함)
  • Windows 8.1 : 11.2 (9.0Ex 포함)
  • Windows Server 2012 R2 : 11.2 (9.0Ex 포함)
  • Windows 10 : 12.0 (9.0Ex, 11.3~11.4 포함)[39]
  • Windows Server 2016 : 12.0 (9.0Ex, 11.3~11.4 포함) (추정)

5 관련 문서

  1. MS에서 말하는 발음법은 '다이렉트 엑스'이나 미국에서는 '디렉트 엑스'라고 읽히는 경우도 있다. 원래 발음은 미국식은 '디렉트 엑스', 영국식은 '다이렉트 엑스'.
  2. 사실상 32비트면 전부 다 지원하며 일부게임은 호환성모드로 256색으로 실행하면 된다.
  3. DirectX의 버전이 2.0부터 시작하는 이유가 이것. 1.0 버전의 전신이 WinG이다. Windows 95 발표 이후에 등장한 DirectX는 WinG를 Windows 95에 맞게 포팅되었던 것. 이 라이브러리를 사용한 (흔하지 않은) 게임 중 하나가 삼국지 5. 깔린 시스템이 거의 없어서 대부분 WinG.dll 파일을 따로 넣어주곤 했다. 훗날 Windows 95용으로 컨버전된 삼국지 5는 DirectX 2.0을 사용했다.
  4. 이 GDI 라이브러리의 구조가 중간에 한 단계를 더 거쳐 화면에 출력하는 구조이기 때문에 그만큼의 시간을 더 잡아먹는다. DirectX는 이 단계를 생략, 곧바로 화면출력을 하는 구조를 채택했다.
  5. 실제로 2D 게임의 개발에 있어서 가장 기본적인 컴포넌트이기도 하다. 굳이 사운드 없는 2D 게임을 개발하고 싶다면 DirectDraw와 DirectInput 컴포넌트만 있으면 되겠지만...
  6. 훗날 더 나아가 종합 멀티미디어 라이브러리로 발전한다. 그리고 이 라이브러리는 대성공을 거두어 게임뿐만이 아니라 그래픽 소프트웨어, 동영상, 심지어 일부 주변기기까지 요구하게 되는 필수요소로 자리잡기에 이른다. 사실 최근에는 정규 소프트에서 좀 사양되는 에뮬레이터까지 모두 이걸 요구한다. 윈도 기본 제공 API만으로는 멀티미디어 가속 성능이 좀 딸리기 때문.
  7. 본래 별도로 존재했던 ActiveMovie의 API가 DirectShow라는 이름으로 DirectX에 편입되었다.
  8. DirectX 6.1부터 추가되었다.
  9. DirectX 6.1부터 지원되었다.
  10. 각각 변환(Translation)과 조명(Light)의 머릿글자를 뜻한다.
  11. 물론 Direct3D 내에서 OpenGL 좌표계를 사용할 수 있도록 해주는 기능이 있다.
  12. 익숙한 개발자들이야 자신들이 작성한 2D 라이브러리 내부 코드를 자신이 직접 고치는건 별 어려움이 없을 수도 있지만, 게임개발을 가르치는 입장이 되면 꽤나 골치아픈 문제로 바뀌어진다. 아무 것도 모르는 교육생들을 상대로 화면에 그림 한 장 띄우려고 3차원 공간에 대하여 논해야 했기 때문. 마치 단순한 방정식이나 함수를 복잡하게 설명해줘야 하는 것과 비슷한 꼴
  13. 그동안 DirectX라고 불렀던건 Direct3D 뿐만 아니라 다른 컴포넌트들까지 큰 변화가 있어서였고, 9.0부터는 변경된 사항이 거의 다 Direct3D에 집중되어 있어서 아예 'Direct3D 9.0'으로 굳어지기 시작했다.
  14. 9.0c 기술만 적용되었던 것은 아니었고 통합 셰이딩과 테셀레이션처럼 훗날 10, 11버전에 등장한 일부 기술들이 선행 적용되었다.
  15. 내부적으로 DirectX 11의 하위 호환으로써 존속되고 있는 편이나 DirectX 11 전용 게임들이 하나둘씩 등장하면서 10.0의 하위호환 지원이 개선판인 10.1보다 더 빨리 줄어들고 있다.
  16. 현재 OpenGL을 이용하여 DirectX 10 기능을 구현한 게임이 전무하다. 불가능하기보다는 귀찮으니까. 사실 9.0c로도 어느 정도 10버전 기능을 재현할 수 있지만 9.0c의 고질적인 오버헤드 현상 때문에 구현하고 싶은 기능들을 다 뽑기가 어렵다 보니 노력 대비 성과가 좋지 않아 그렇게 하는 곳이 거의 없다는 것을 봐도 알 수 있다.
  17. 인텔 샌디브릿지 기반 펜티엄, 셀러론 CPU의 내장그래픽 포함
  18. 현재는 내부적으로 DirectX 11의 하위 호환으로써 존속되고 있고 DirectX 10.0보다 취급이 더 좋지만, 훗날 DirectX 11 전용 게임들이 하나둘씩 등장하면서 10.1의 하위호환 지원도 10.0처럼 점점 축소되고 있다.
  19. 인텔 아이비브릿지 기반 펜티엄, 셀러론 CPU의 내장그래픽 포함
  20. 인터넷 익스플로러 9가 원래 Windows Vista 이상에서만 사용 가능한 것도 Direct2D를 사용하기 때문이다. 다른 브라우저들은 MS의 계획대로(?) WDDM 1.0을 지원하는 Direct3D 9.0 계열 그래픽 칩셋과 CPU가 함께 동원됨으로써 XP에서도 어떻게든 Direct2D가 돌아간다. 애초에 Direct2D를 이용한 그래픽 처리 자체는 Direct3D를 거쳐서 작동되는 구조이긴 했다.
  21. 사실 Direct3D쪽도 과거 7.0버전에서는 하드웨어 T&L이 대세였던 반면, 8.0버전 이후에는 프로그래머블 셰이더로 넘어왔기 때문에 호환성이 메롱했던 점은 크게 다르지 않다. 2D지만 DirectDraw를 더이상 제공하지 않는 점도 그렇고..
  22. 글의 중반부분 참조
  23. 주로 OpenGL 2.0 이상 필수에 3.2이상 권장이며, Visual C++ 2013 x86으로 컴파일해서 해당 런타임도 설치해놔야 된다.
  24. 인텔 하스웰 기반 펜티엄, 셀러론 CPU의 내장그래픽 포함
  25. 우리가 흔히 말하는 3D 입체영화 같은 것.
  26. 인텔 브로드웰 기반 펜티엄, 셀러론 CPU의 내장그래픽 포함
  27. 트리니티, 리치랜드, 카베리, 카리조, 브리스톨 리지 영원히 고통받는 라노
  28. 이전에는 DX11(SM 5.0)식으로 괄호 안이 셰이더 모델 버전이었으나, 이제는 셰이더 모델이 겨우 5.1버전으로 마이너 업그레이드되어 의미가 없다고 없애고, 12(11_0)나 12(12_1)처럼 괄호안이 Feature Level을 표기하는 것으로 변경되었다.
  29. AMD의 GCN 1.0 기반부터 도입된 비동기 셰이더의 병렬 처리 방식과 GCN 1.1 및 NVIDIA의 2세대 맥스웰 기반부터 도입된 다이내믹 로드 밸런싱(선점형) 방식이 있다. 단, 2세대 맥스웰 GPU는 비동기 컴퓨트 기능을 활성화할 경우 비활성화 상태보다 성능이 더 낮아지는 현상때문에 일부러 막아둔 상태인데다 파스칼 기반 모델이 출시되면서 구형이 된 2세대 맥스웰 기반의 고급형 모델부터 단종 수순을 밟고 있어 이를 개선해서 활성화해줄 가능성은 점점 낮아지고 있다. 따라서, 2016년 현재 NVIDIA로써 비동기 컴퓨트를 그나마 유의미하게 지원하는 GPU는 사실상 파스칼 기반부터라고 볼 수 있다.
  30. 크로스파이어SLI의 경우, 각각 AMD와 nVIDIA로만 구성이 가능하다는 점, 그마저도 상성이 맞는 그래픽카드끼리만 가능하고 100+70의 성능이 170이 되지 못한다는 점(70+70 = 140이 돼 버리는 방식), 렌더링 방식이 주로 각 프레임을 각 GPU가 돌아가면서 처리하는 방식이라, 메모리 공유 및 제어과정에서의 오버헤드가 성능향상 영향을 준다는 점과, 하이브리드 피직스의 경우 지금은 적용할 의미를 잃어버린 기술이다. 피직스가 오픈소스화되었기 때문. 자세한 사항은 피직스 참고
  31. 외장 그래픽카드 고장시 최소한의 기능을 해준다는 예비 하드웨어라는 기능은 있겠다.(...)
  32. 이 실시간 작곡을 쓰는 게임이 다름아닌 마비노기다. 작곡 시스템에 MIDI를 사용하지만 DirectMusic을 쓰는지는 불명.
  33. 그래서 윈도우 Vista 이후, 최근에 나오는 DX9 게임들은 아예 게임 폴더 내에 d3dx9_××.dll을 족족 넣어 두고 있다(...).
  34. 서비스팩까지 포함한 윈도우 버전 기준
  35. WinG.DLL로 제공
  36. Win2K 베타에서 제공된 DirectX 5.0 베타를 설치할수 있다고 한다지만 비공식이기 때문에 설치할 수 있는 공식 버전은 3.0a까지다.
  37. 기능적으로 보면 기존 9.0c의 연장선에 위치하지만 10.0버전의 하위호환 버전이 아니다.
  38. 10.x버전은 11.x버전의 하위호환으로 지원되기 때문에 별도로 표시하지 않는다. 애초에 11.x버전 자체가 기술적으로는 기존 10.x버전에서 새로운 기능(명령어)들을 추가한 일종의 확장팩에 가깝다.
  39. DirectX 9.0Ex는 Windows 10을 지원하는 모든 그래픽 하드웨어에 해당되지만, DirectX 11.3부터는 케플러, 1세대 GCN, 하스웰 아키텍처 이후의 그래픽 하드웨어만 해당된다.