概要
マイクロソフトの開発するWindowsのコンポーネントの一つで、コンピュータゲームやマルチメディア関連のAPI群。ゲーム機のXboxシリーズなどにも利用される。
3DCG描画を行うDirect3D、2DCG描画を行うDirect2D、オーディオ出力を担当するXAudio、テキスト表示を担当するDirectWrite、コントローラー(ゲームパッド)・マウス・ジョイスティックなどの入力デバイスのインターフェースであるDirectInput及びXInputなどのコンポーネントから構成されるが、単にDirectXと言うときは暗にDirect3Dを指していることが多い。
DirectX(Direct3D)と互換性を持つビデオカードを利用することで高品質の3DCGを快適に描画できる。
DirectXのバージョン
1998年のDirectX 6.0以降、2000年代にかけてGPUのハイペースな進化と歩調を合わせて毎年のようにアップデートが繰り返されたが、2009年のDirectX 11以降はレンダリングパイプラインへのテコ入れはあまり行なわれなくなった。
DirectX 6.0(1998年) - ジオメトリパイプラインの見直し、テクスチャデータ圧縮機能、シングルパス・マルチテクスチャやバンプマッピングのサポート。AMD 3DNow!対応。ドリームキャストに採用。
DirectX 7.0(1999年) - GPUのハードウェアT&L、マルチテクスチャやキューブマップのサポート
DirectX 8.0(2000年) - 原始的なプログラマブルシェーダー、ボリュームテクスチャ、マルチサンプルレンダリングをサポート。Xboxに採用。
DirectX 8.1(2001年) - Windows XPと同時リリース。ピクセルシェーダの追加命令など。Windows98/Me/2000向けの最後のリリース。
DirectX 9(2002年) - 実数(浮動小数点数)テクスチャ、プログラマブルシェーダー2.0をサポート。シェーダ言語としてC言語ベースのHLSLを採用。DirectInputの導入。
DirectX 9.0c(2004年) - プログラマブルシェーダー3.0をサポート。Windows XP SP2に搭載。Xbox360に採用。
DirectX 9.0Ex(2006年) - Windows Vistaに搭載。従来の画像処理APIであるGDIに代わってDirectXがウィンドウの描画に用いられるようになった(Windows Aero)。
DirectX 10.0(2007年) - ジオメトリシェーダの導入、プログラマブルシェーダは統合型シェーダアーキテクチャの4.0に。
DirectX 10.1(2008年) - GPUの仮想化の実装。
DirectX 11.0(2009年) - テッセレーションのサポート、GPUによる汎用計算(GPGPU]をサポートするAPIであるDirectComputeの実装など。Windows 7に搭載。XboxOneはこの世代。
DirectX 12.0(2015年) - Windows 10専用。従来のDirectXの分厚い抽象化レイヤーを撤廃しパフォーマンスを改善した。
DirectX 12 Ultimate(2020年) - DXR 1.1、メッシュシェーダー、可変レートシェーディング、サンプラーフィードバックのサポート。レイトレーシングの効率化。Windows10/11に対応する上にXboxSeriesXとシリーズS世代との互換性がある。
DirectXランタイム
DirectXを利用するゲームソフトをインストールして起動しようとした際に「xxx.dllが見つからなかったため、このアプリケーションを開始できませんでした。」というエラーが出ることがある。このエラーに対処するにはDirectXランタイムを出来る限り最新の物に更新する必要がある。しかし使用するOSが古いものだと最新のランタイムをインストールしてもソフトを実行できない場合がある。一例としてWindowsXPはDirectX9までしかサポートしていないため、DirectX10以降でしか作動しないソフトはXPマシンではランタイムを更新したところで動作せず、HDD(SSD)の肥やしになるだけである。
なおDirectXランタイムの更新はWindowsUpdateで自動で行われるものではなく、ユーザー自らがマイクロソフトの配布サイトよりダウンロードして手動でインストールするか、DirectXを使用するソフトがインストール段階で最新のランタイムに更新するようにソフトデベロッパーがプログラムを組むようにするかのいずれかで更新する。
入力デバイスのAPIはDirectX9で「XInput」が導入されたが、従来の「DirectInput」ライブラリも廃止されたわけではなく共存している(マイクロソフトは新しいXInputの利用を推奨している)。基本的に両者に互換性はないが、両対応のコントローラーも多く発売されている。