| ダイレクトX | |
|---|---|
| 開発者 | マイクロソフト |
| 初回リリース | 1995年9月30日 (1995年9月30日) |
| 安定版リリース | 12 Ultimate API / 2021年10月5日 ( 2021-10-05 ) |
| オペレーティング·システム | Microsoft Windows、Windows Phone 8、Dreamcast、[ 1 ]、Xbox、Xbox 360、Xbox One、Xbox Series XおよびSeries S、Linux (Gallium Nine)(DirectX 12のみ、 Windows Subsystem for Linux専用)[ 2 ] |
| タイプ | API |
Microsoft DirectX は、 Microsoftプラットフォーム上でマルチメディア、特にゲーム プログラミングやビデオに関連するタスクを処理するためのアプリケーション プログラミング インターフェイス(API)のコレクションです。当初、これらの API の名前はすべて、Direct3D、DirectDraw、DirectMusic、DirectPlay、DirectSoundなど、"Direct" で始まっていました。DirectXという名前は、これらすべての API の省略形として造られ ( X は特定の API 名を表します)、すぐにコレクションの名前になりました。Microsoft が後にゲーム コンソールの開発に着手したとき、そのコンソールが DirectX テクノロジに基づいていることを示すために、X はXboxという名前のベースとして使用されました。 [ 3 ] Xの頭文字は、 XInputやCross-platform Audio Creation Tool (XACT)など、Xbox 用に設計された API の命名に引き継がれ、DirectX のパターンはDirect2DやDirectWriteなどの Windows API にも引き継がれています。
Direct3D(DirectXの3DグラフィックAPI)は、 Microsoft WindowsおよびXboxシリーズコンソール向けのビデオゲーム開発で広く使用されています。また、CAD/CAMエンジニアリングなどの視覚化やグラフィックスタスクを行う他のソフトウェアアプリケーションでもDirect3Dが使用されています。Direct3DはDirectXの中で最も広く知られているコンポーネントであるため、「DirectX」と「Direct3D」という名称が同じ意味で使用されていることがよくあります。
DirectXソフトウェア開発キット(SDK)は、再配布可能なバイナリ形式のランタイムライブラリと、コーディングに使用するための付属ドキュメントおよびヘッダーで構成されています。当初、ランタイムはゲームによって、またはユーザーによって明示的にインストールされるだけでした。Windows 95はDirectXを搭載してリリースされませんでしたが、Windows 95 OEM Service Release 2にはDirectXが同梱されていました。[ 4 ] Windows 98とWindows NT 4.0はどちらもDirectXを搭載して出荷され、それ以降にリリースされたすべてのバージョンのWindowsにも同梱されています。SDKは無料でダウンロードできます。ランタイムはプロプライエタリなクローズドソースソフトウェアですが、SDKサンプルのほとんどにはソースコードが提供されています。Windows 8 Developer Previewのリリース以降、DirectX SDKはWindows SDKに統合されています。[ 5 ]
1994年後半、マイクロソフトは次期オペレーティングシステムであるWindows 95のリリース準備を整えていた。消費者にとってWindows 95の価値を決定づける重要な要素は、その上で動作するプログラムだった。マイクロソフトの社員アレックス・セント・ジョンは、様々なゲーム開発者と話し合い、彼らのMS-DOSゲームをWindows 95に移植する可能性について尋ねたが、その反応は概ね否定的だった。というのも、プログラマーたちはWindows環境では、MS-DOSではBIOSルーチンやハードウェアへの直接アクセスで利用できるような必要な機能が提供されていないことに気づいていたからである。 [ 6 ]互換性についても強い懸念があった。その顕著な例としては、WinGプログラミングインターフェースをベースにしたディズニーのアニメ『ライオンキング』が挙げられる。 [ 7 ]新品のコンパック製コンピュータに付属していたWinGインターフェースでテストされていない非互換性のグラフィックドライバーが多数存在したため、多くのデスクトップシステムでゲームが頻繁にクラッシュし、保護者からディズニーの電話相談窓口に殺到した。 [ 8 ] [ 9 ]
もう一人のマイクロソフト社員、クレイグ・アイスラーは、ゲーム技術に取り組むために Windows 95 マルチメディア チームに参加していた。[ 10 ]マイクロソフトの技術が開発者に受け入れられていないことをセントジョンから聞いたアイスラーは、開発者がグラフィックス ハードウェアのネイティブ機能にアクセスできるようにし、グラフィックス ハードウェア企業に開発者が使用できる方法で革新する能力を与える新しい API セットとドライバー モデルの構築に着手した。[ 11 ]プログラム管理のサポートを必要としていたアイスラーは、エリック・エングストロムを採用し、2 人で DirectX の研究で 11 件の特許を取得した。[ 12 ]このプロジェクトは、第二次世界大戦中の同名のプロジェクトと同じくマンハッタン計画というコードネームが付けられ、そのアイデアは、日本製のビデオ ゲームコンソールをマイクロソフトのオペレーティング システムで動作するパーソナル コンピューターに置き換えることだった。[ 8 ] [ 8 ]経営陣は既にWindowsをゲームプラットフォームとして見限っていたため、このプロジェクトには同意しなかったが、3人はこのプロジェクトの開発に全力を尽くした。[ 9 ]彼らの反抗的な性格から、マイクロソフトのオフィス製品担当上級副社長であるブラッド・シルバーバーグは、この3人を「ビースティ・ボーイズ」と名付けた。[ 13 ]
3人による作業のほとんどは、1994年末頃から始まった他の割り当てられたプロジェクトの合間に行われました。 [ 9 ] 4ヶ月以内に、複数のハードウェア製造業者からの意見を得て、チームは最初のアプリケーションプログラミングインタフェース(API)セットを開発し、1995年のゲーム開発者会議で発表しました。[ 9 ] SDKには、ビットマップグラフィック用のDirectDraw、[ 14 ]オーディオ用のDirectSound、[ 15 ]ネットワークを介したプレーヤー間の通信用のDirectPlayを実装したライブラリが含まれていました。[ 16 ]さらに、Windows 95に既に存在していた拡張ジョイスティックAPIがDirectInputとして初めて文書化され、[ 17 ] CD-ROMを挿入した後、ソフトウェアタイトルのインストール手順をすぐに開始するAutoPlayという機能を実装する方法の説明もSDKの一部でした。[ 18 ]ライブラリの「Direct」部分は、これらのルーチンが既存のWindows 95コアルーチンをバイパスし、ハードウェア抽象化層(HAL)を介してのみコンピュータハードウェアにアクセスすることから、このように名付けられました。[ 19 ]チームは当初「ゲームSDK」(ソフトウェア開発キット)と名付けていましたが、「DirectX」という名前は、あるジャーナリストが様々なライブラリの命名規則を嘲笑したことに由来しています。チームはこの命名規則を引き続き使用し、プロジェクトをDirectXと呼ぶことにしました。[ 8 ]
DirectXの最初のバージョンは、1995年9月にWindows Game SDKとしてリリースされました。そのDirectDrawコンポーネントは、Windows 3.1のDCI [ 20 ]およびWinG API [ 21 ]のWin32版でした。DirectXにより、Windows 95以降のすべてのバージョンのMicrosoft Windowsで高性能マルチメディアを組み込むことができました。アイスラーは自身のブログで、DirectX 1から5までの開発の熱狂について書いています。[ 22 ]
DirectXを採用する開発者を増やすため、マイクロソフトはid Softwareのジョン・カーマック氏に接触し、 『Doom』と『Doom 2』をMS-DOSからDirectXに無料で移植することを申し出た。ただし、id Softwareはゲームのすべてのパブリッシング権を保持する。カーマック氏はこれに同意し、マイクロソフトのゲイブ・ニューウェル氏が移植プロジェクトを主導した。最初のゲームは1996年8月に『Doom 95』としてリリースされ、DirectXで初めて公開されたゲームとなった。マイクロソフトはビル・ゲイツ氏を広告に起用するなど、このゲームを大々的に宣伝した。 [ 8 ]
DirectX 2.0は、1996年半ばのWindows 95 OSR2とWindows NT 4.0のリリースとともにWindowsの組み込みコンポーネントとなった。Windows 95自体がまだ新しいものであり、Windows 95向けのゲームがほとんどリリースされていなかったため、マイクロソフトは、Windowsでゲームプラットフォームを構築するマイクロソフトの能力に一般的に不信感を抱いていた開発者に対してDirectXの積極的なプロモーションを行った。DirectXの伝道師であるアレックス・セント・ジョンは、1996年のコンピュータゲーム開発者会議で、ゲーム開発者のジェイ・バーンソンがローマをテーマにしたと表現した、本物のライオン、トーガ、屋内カーニバルに似たものを含む豪華なイベントを開催した。[ 23 ]このイベントでマイクロソフトは初めてDirect3Dを紹介し、インターネット経由で マルチプレイヤーMechWarrior 2をプレイするデモを行った。
DirectXチームは、各DirectXリリースを様々なコンピュータハードウェアとソフトウェアでテストするという困難な課題に直面しました。ベータ版と最終版では、様々なグラフィックカード、オーディオカード、マザーボード、CPU、入力デバイス、ゲーム、その他のマルチメディアアプリケーションがテストされました。また、DirectXチームは、ハードウェア業界が新しいハードウェア設計とドライバリリースがDirectXと互換性があることを確認できるように、テストを構築・配布しました。
DirectXに先立ち、マイクロソフトはWindows NTプラットフォームにOpenGLを追加していた。[ 24 ] OpenGLは、シリコングラフィックス社が、 3Dグラフィックスプログラミングをアプリケーションプログラミングの主流にするために、クロスプラットフォームでウィンドウシステムに依存しないグラフィックスハードウェアへのソフトウェアインターフェースとして設計した。2Dグラフィックスやイメージングにも使用でき、マイクロソフトを含むArchitectural Review Board(ARB)によって管理されていた。[ 25 ] [ 26 ] Direct3Dは、マイクロソフトが管理するOpenGLの代替となることを意図しており、当初はゲームでの使用に重点が置かれていた。3Dゲームが普及するにつれ、ゲーム開発者はOpenGLがゲーム開発にも効果的に使用できることを発見した。[ 27 ]その時点で、クロスプラットフォームのOpenGL支持者とWindows専用のDirect3D支持者の間で「戦い」が始まった。[ 28 ]ちなみに、OpenGLはマイクロソフトではDirectXチームによってサポートされていた。開発者がコンピュータ ゲームで OpenGL 3D グラフィックス API を使用することを選択した場合、OpenGL にはサウンドやジョイスティックのサポートなど、DirectX のすべての機能が含まれていないため、Direct3D 以外の DirectX の他の API が OpenGL と組み合わせられることがよくありました。
コンソール固有のバージョンでは、DirectXはMicrosoftのXbox、Xbox 360、Xbox OneコンソールAPIの基盤として使用されました。このAPIは、初代Xboxで使用されたカスタムグラフィックハードウェアを開発したNVIDIAとMicrosoftの共同開発でした。Xbox APIはDirectXバージョン8.1に類似していましたが、他のコンソール技術と同様に更新できませんでした。XboxのコードネームはDirectXboxでしたが、商用名としてXboxに短縮されました。[ 29 ]
2002年、マイクロソフトは、ピクセルシェーダーと頂点シェーダーのバージョン2.0で、それ以前よりもはるかに長いシェーダープログラムの使用をサポートするDirectX 9をリリースしました。マイクロソフトはその後もDirectXスイートのアップデートを続け、2004年8月にリリースされたDirectX 9.0cでシェーダーモデル3.0を導入しました。
2005 年 4 月現在、DirectShow はDirectX から削除され、代わりにMicrosoft Platform SDKに移行されました。
DirectXはマイクロソフトのWindows Phone 8に搭載されていることが確認されている。[ 30 ]
リアルタイムレイトレーシングは2018年にDXRとして発表されました。HLSLをSPIR-Vにコンパイルするサポートも同年にDirectXシェーダーコンパイラに追加されました。[ 31 ]
DirectX は複数の API で構成されています。
Microsoft では次のコンポーネントを廃止しました。
DirectXの機能は、 COMスタイルのオブジェクトとインターフェースの形で提供されます。また、DirectXコンポーネントそのものではありません。マネージドオブジェクトは、DirectXの一部の機能を基盤として構築されており、例えばManaged Direct3D [ 34 ]や、Direct3D 9を基盤としたXNAグラフィックスライブラリ[ 35 ]などが挙げられます。
マイクロソフトは「PIX」と呼ばれるDirectXのデバッグツールを配布している。[ 36 ]
| 1995 | DirectX 1 |
|---|---|
| 1996 | DirectX 2 |
| DirectX 3 | |
| 1997 | DirectX 5 |
| 1998 | DirectX 6 |
| 1999 | DirectX 7 |
| 2000 | DirectX 8 |
| 2001 | |
| 2002 | DirectX 9 |
| 2003 | |
| 2004 | |
| 2005 | |
| 2006 | DirectX 10 |
| 2007 | |
| 2008 | |
| 2009 | DirectX 11 |
| 2010 | |
| 2011 | |
| 2012 | |
| 2013 | |
| 2014 | |
| 2015 | DirectX 12 |
2002年にMicrosoftによって導入されたDirectX 9は、DirectXファミリーにおける重要なリリースでした。Windowsのグラフィック機能に多くの重要な機能と拡張機能をもたらしました。リリース当時、DirectX 9はWindows 98、Windows Me、Windows 2000、Windows XPをサポートしていました。2024年8月現在、下位互換性のために、以降のすべてのWindowsバージョンでサポートされています。
DirectX 9で導入された主要機能の一つは、ピクセルシェーダー2.0と頂点シェーダー2.0を含むシェーダーモデル2.0でした。これにより、より複雑でリアルなグラフィックレンダリングが可能になりました。また、ハードウェアアクセラレーション機能の向上とGPUリソースの有効活用により、待望のパフォーマンス向上も実現しました。さらに、開発者にとってよりアクセスしやすいシェーダー作成方法を提供する HLSLも導入されました。
DirectX 9.0cはオリジナルのアップデート版であり、長年にわたり継続的に変更が加えられ、古いオペレーティングシステムとの互換性に影響を与えてきました。2007年1月以降、Windows 2000とWindows XPが最低限必要なオペレーティングシステムとなりました。これは、Windows 98とWindows Meのサポートが正式に終了したことを意味します。2024年8月現在、DirectX 9.0cは引き続き定期的にアップデートされています。
Windows XP SP2以降にはDirectX 9.0cが含まれていますが[ 37 ]、2005年2月のDirectX 9.0 SDK以降でコンパイルされたDirectX 9.0cアプリケーションには、新しいDirectXランタイムの再頒布可能なインストールが必要になる場合があります。
DirectX 9はゲーム開発に大きな影響を与えました。2000年代半ばから2010年代初頭にかけて、多くのゲームがDirectX 9を使用して開発され、開発者にとって標準的なターゲットとなりました。現在でも、一部のゲームでは、古いハードウェアや性能の低いハードウェア向けのオプションとしてDirectX 9を使用しています。

DirectX APIのメジャーアップデートであるDirectX 10は、Windows Vista(2006年後半にリリース)以降に同梱され、Windows Vista以降でのみ利用可能でした。Windows XPなどの以前のバージョンのWindowsでは、DirectX 10専用アプリケーションを実行できません。代わりに、DirectX 10ハードウェアを搭載したWindows XPシステムで実行されるプログラムは、Windows XPで利用可能な最新バージョンであるDirectX 9.0cのコードパスを使用します。[ 38 ]
DirectX 10 では大規模な変更が行われました。DirectX API の以前の部分の多くは最新の DirectX SDK で非推奨となり、互換性のためだけに残されています。DirectInputはXInputに置き換えられ、DirectSound はCross-platform Audio Creation Toolシステム (XACT)に置き換えられました。さらに、 Vista のオーディオスタックはCPU 上でソフトウェア的にサウンドをレンダリングするため、ハードウェア アクセラレーション オーディオのサポートは失われました。DirectPlay の DPLAY.DLL も削除され、dplayx.dll に置き換えられました。この DLL を使用するゲームでは、DLL を複製して dplay.dll に名前を変更する必要があります。
下位互換性を実現するために、Windows VistaのDirectXにはDirect3Dのいくつかのバージョンが含まれています。[ 39 ]
Direct3D 10.1 は、2008 年 2 月にリリースされたWindows Vista Service Pack 1に同梱され、同バージョンを必要とした Direct3D 10.0 の増分アップデートです。 [ 40 ]このリリースでは、主にグラフィックベンダー向けにいくつかの画質基準が強化され、開発者は画質をより細かく制御できるようになりました。[ 41 ]また、キューブマップ配列のサポート、MRT ごとに独立したブレンドモード、ピクセルシェーダーからのカバレッジマスクのエクスポート、サンプルごとにピクセルシェーダーを実行する機能、マルチサンプル深度バッファーへのアクセスも追加されました。[ 42 ]また、ビデオカードがシェーダーモデル 4.1 以上と 32 ビット浮動小数点演算をサポートしている必要があります。Direct3D 10.1 は Direct3D 10 ハードウェアを完全にサポートしていますが、すべての新機能を利用するには、ハードウェアを更新する必要があります。[ 43 ]

マイクロソフトはシアトルで開催されたGamefest 08イベントでDirectX 11を発表しました。Windows Vistaの最終プラットフォームアップデートは2009年10月27日にリリースされました。これは、 Direct3D 11を基本標準として搭載したWindows 7のリリースから1週間後のことでした。
予定されている主な機能には、GPGPUソフトウェアサポート(DirectCompute)、テッセレーションサポート付きのDirect3D 11 [ 44 ] [ 45 ]、およびビデオゲーム開発者がマルチコアプロセッサをより有効に活用するゲームを開発するのを支援するためのマルチスレッドサポートの改良などがあります。[ 46 ]マルチスレッドリソース処理などの新しいAPIの一部は、Direct3D 9/10/10.1クラスのハードウェアでサポートできます。ハードウェアテッセレーションとシェーダーモデル5.0には、Direct3D 11をサポートするハードウェアが必要です。[ 47 ] Direct3D 11はDirect3D 10.1の厳密なスーパーセットであり、バージョン10.1のすべてのハードウェアとAPI機能が保持され、新しい機能は新しい機能を公開するために必要な場合にのみ追加されます。これにより、以前のバージョンのDirectXとの下位互換性が維持されます。
DirectX 11 の 4 つのアップデートがリリースされました。
DirectX 12 は、2014 年 3 月 20 日に Microsoft によってGDCで発表され、2015 年 7 月 29 日にWindows 10とともに正式にリリースされました。
DirectXの新リリースの主な機能ハイライトは、 Direct3D 12用の高度な低レベルプログラミングAPIの導入で、これによりドライバのオーバーヘッドを削減できる。開発者はGPUに独自のコマンドリストとバッファを実装できるようになり、並列計算によるリソースのより効率的な利用が可能になった。主任開発者のマックス・マクマレンは、Direct3D 12の主な目標は「電話、タブレット、PCでコンソールレベルの効率を達成すること」だと述べた。[ 57 ] Direct3D 12のリリースは、AMDグラフィックカード用のAMDのMantle 、 iOSとmacOS用のAppleのMetal 、クロノスグループのクロスプラットフォームVulkanなど、オーバーヘッドの少ないグラフィックAPIに向けた他の取り組みと並行して行われた。
DirectX 12ではマルチアダプタのサポートが導入され、開発者はシステム上で複数のGPUを同時に利用できるようになります。マルチGPU(mGPU)のサポートは、これまでAMD CrossFireXやNVIDIA SLIなどのベンダーの実装に依存していました。[ 58 ] [ 59 ] [ 60 ] [ 61 ]
DirectX 12は、すべてのFermi以降のNvidia GPU、AMDのGCNベースのチップ、およびIntelのHaswell以降のプロセッサのグラフィックスユニットでサポートされています。[ 62 ]
SIGGRAPH 2014で、インテルはコンピューター生成の小惑星群を示すデモを公開しました。このデモでは、DirectX 12はレンダリング速度とCPU消費電力の点でDirectX 11よりも50~70%効率的であると主張しました。[ 63 ] [ 64 ]
Ashes of the Singularityは、DirectX 12を採用した最初の公開ゲームでした。 2015年8月にArs Technicaが行ったテストでは、 Nvidia GeForce 980 Tiの場合、DirectX 12モードではDirectX 11モードよりもわずかにパフォーマンスが低下することが明らかになりましたが、 AMD Radeon R9 290xはDirectX 12で最大70%の一貫したパフォーマンス向上を達成し、いくつかのシナリオではAMDがより強力なNvidiaをDirectX 12で上回りました。パフォーマンスの不一致は、NvidiaドライバーのDirectX 12への最適化が不十分であるか、DirectX 11のシリアル実行に最適化されたカードのハードウェア制限が原因である可能性がありますが、正確な原因は不明です。 [ 65 ]
XboxにおけるDirectX 12のパフォーマンス向上はPCほど顕著ではありません。[ 66 ]
2018年3月には、サポートされているハードウェアでリアルタイムレイトレーシングが可能なDirectX Raytracing(DXR)が発表され、[ 67 ] DXR APIはWindows 10の2018年10月の更新プログラムで追加されました。
2019年にマイクロソフトはWindows 7にDirectX 12を導入すると発表したが、これは特定のゲームタイトルのプラグインとしてのみだった。[ 68 ]
マイクロソフトは2020年3月にDirectX 12 Ultimateを発表しました。DirectX 12 Ultimateは、Windows 10コンピューターとXbox Series Xおよびその他の第9世代Xboxコンソールの両方で共通ライブラリに統合されます。Ultimateの新機能には、DirectX Raytracing 1.1、プログラマーがデザインの選択に応じてシェーディングの詳細レベルを制御できる可変レートシェーディング、メッシュシェーダー、サンプラーフィードバックなどがあります。[ 69 ] [ 70 ]
| バージョン | 発売日 | 注記 | ||
|---|---|---|---|---|
| 選考科目 | マイナー | 番号 | ||
| 1 | 1.0 | 4.02.0095 | 1995年9月30日 | 当初は Windows Game SDK としてリリースされ、Windows 95以降 ではWinGに取って代わりました。 |
| 2 | 2.0 | 1996 | いくつかのサードパーティ製アプリケーションのみが同梱されていました | |
| 2.0a | 4.03.00.1096 | 1996年6月5日 | Windows 95 OSR2およびWindows NT 4.0専用 | |
| 3 | 3.0 | 4.04.00.0068 | 1996年9月15日 | |
| 4.04.00.0069 | 1996 | DirectX 3.0 の後のパッケージには Direct3D 4.04.00.0069 が含まれていました | ||
| 3.0a | 4.04.00.0070 | 1996年12月 | Windows NT 4.0 SP3 (およびそれ以降) Windows NT 4.0 をサポートする最後のバージョン | |
| 3.0b | 4.04.00.0070 | 1997年1月 | これは 3.0a の非常に小さなアップデートであり、Windows 95 の日本語版 (DSETUPJ.DLL) の外観上の問題を修正しました。 | |
| 4 | 4.0 | 決して解放されない | DirectX 4は結局リリースされなかった。マイクロソフトのレイモンド・チェンは著書『The Old New Thing』の中で、DirectX 3のリリース後、マイクロソフトはバージョン4とバージョン5の開発を同時に開始したと述べている。バージョン4は小規模な機能を備えた短期リリースとなる予定だったが、バージョン5はより充実したリリースとなる予定だった。DirectX 4で発表された機能に対するゲーム開発者の関心が低かったため、DirectX 4は棚上げされ、2つの新しいバージョンを区別する大量のドキュメントが既に存在していたため、マイクロソフトはバージョン5の機能を説明する際にバージョン4の記述を再利用しないことを選択した。[ 71 ] [ 72 ] | |
| 5 | 5.0 | 4.05.00.0155 (RC55) | 1997年8月4日 | Windows NT 4.0 にインストールできる Windows 2000 のベータ版として利用可能 |
| 4.05.00.0155 (RC66) | Windows 95 OSR 2.5 インストール メディアに含まれるインストーラ | |||
| 5.2 | 4.05.01.1600 (RC00) | 1998年5月5日 | Windows 95 向け DirectX 5.2 リリース | |
| 1998年4月5日(RC0) | 1998年6月25日 | Windows 98専用 | ||
| 6 | 6.0 | 4.06.00.0318 (RC3) | 1998年8月7日[ 73 ] | Dreamcastやその他のデバイス に実装されているWindows CE |
| 6.1 | 4.06.02.0436 (RC0) | 1999年2月3日[ 74 ] | ||
| 6.1a | 4.06.03.0518 (RC0) | 1999年5月5日[ 75 ] | Windows 98 Second Edition専用。 | |
| 7 | 7.0 | 4.07.00.0700 (RC1) | 1999年9月22日[ 76 ] [ 77 ] [ 78 ] | |
| 4.07.00.0700 | 2000年2月17日 | Windows 2000専用 | ||
| 7.0a | 4.07.00.0716 (RC0) | 1999年11月 | ||
| 4.07.00.0716 (RC1) | 1999年12月17日 | Windows 95から98のみリリース[ 79 ] [ 80 ] | ||
| 7.1 | 4.07.01.3000 (RC1) | 2000年9月14日[ 81 ] | Windows Me専用。RGBソフトウェアレンダリングサポートを内蔵した最後のバージョン。また、486以前のCPUで動作する最後のバージョン。 | |
| 8 | 8.0 | 4.08.00.0400 (RC10) | 2000年11月10日[ 82 ] | |
| 8.0a | 4.08.00.0400 (RC14) | 2001年1月24日[ 83 ] [ 84 ] | Windows 95 をサポートする最後のバージョンであり、dxdiag.exe でソフトウェア レンダリングをサポートする最後のバージョンです。 | |
| 8.1 | 4.08.01.0810 | 2001年10月25日 | Windows XP、Windows XP SP1、Windows Server 2003 | |
| 4.08.01.0881 (RC7) | 2001年11月8日 | このバージョンは、下位レベルのオペレーティング システム (Windows 98、Windows Me、Windows 2000) 用です。 | ||
| 8.1b | 4.08.01.0901 (RC7) | 2002年6月25日 | このリリースには、Direct3D(D3d8.dll)のアップデートが含まれています。Windows 2000上のDirectShow(Quartz.dll)の修正も含まれています。 | |
| 8.2 | 4.08.02.0134 (RC0) | 2002 | DirectX 8.1b と同じですが、DirectPlay 8.2 が含まれています | |
| 9 | 9.0 | 4.09.00.0900 (RC4) | 2002年12月19日 | |
| 9.0a | 4.09.00.0901 (RC6) | 2003年3月26日 | ||
| 9.0b | 4.09.00.0902 (RC2) | 2003年8月13日 | ||
| 9.0c [ 85 ] | 4.09.00.0904 (RC0) | 2004年7月22日 | 最初の9.0cバージョンでは、2004年10月から32ビット/64ビットのハイブリッドアップデートが定期的にリリースされ、2007年8月までは2ヶ月ごと、その後は四半期ごとにリリースされました。最後のアップデートは2010年6月にリリースされました[ 86 ]。 | |
| 4.09.00.0904 | 2004年8月6日 / 2008年4月21日* | Windows XP SP2 および SP3*、Windows Server 2003 SP1 および Windows Server 2003 R2 | ||
| 2006年10月10日[ 87 ] | Windows 98、98 SE、Meをサポートする最終バージョン[ 88 ] [ 89 ] | |||
| 2010年2月5日[ 90 ] | Windows 2000、[ 89 ] XPおよびXP SP1 をサポートする最終バージョン | |||
| 2010年6月7日[ 89 ] | 最終バージョン9.0c Windows XP SP2およびSP3をサポートする最後のバージョン[ 91 ] | |||
| 10 | 10 | 6.00.6000.16386 | 2006年11月30日 | Windows Vista専用 |
| 10.1 | 6.00.6001.18000 | 2008年2月4日 | Windows Vista SP1、Windows Server 2008にはDirect3D 10.1が含まれています | |
| 6.00.6002.18005 | 2009年4月28日 | Windows Vista SP2、Windows Server 2008 SP2にはDirect3D 10.1が含まれています | ||
| 11 | 11 | 6.01.7600.16385 | 2009年10月22日 | Windows 7、Windows Server 2008 R2 |
| 6.00.6002.18107 | 2009年10月27日 | Windows Vista SP2およびWindows Server 2008 SP2、Windows VistaおよびWindows Server 2008のプラットフォーム更新プログラムを通じて[ 92 ] | ||
| 6.01.7601.17514 | 2011年2月16日 | Windows 7 SP1、Windows Server 2008 R2 SP1 | ||
| 11.1 | 6.02.9200.16384 | 2012年8月1日 | Windows 8、Windows RT、Windows Server 2012 | |
| 6.02.9200.16492 | 2013年2月11日 | Windows 7 SP1およびWindows Server 2008 R2 SP1、Windows 7およびWindows Server 2008 R2のプラットフォーム更新プログラムを通じて[ 93 ] | ||
| 11.2 | 6.03.9600.16384 | 2013年10月18日 | Windows 8.1、Windows RT、Windows Server 2012 R2 | |
| 12 | 12 | 10.00.10240.16384 | 2015年7月29日 | ウィンドウズ10 |
| 10.00.15063.0000 | 2017年3月20日 | Windows 10、深度境界テストとプログラム可能なMSAAが追加された[ 94 ] [ 95 ] | ||
| 10.00.17763.0000 | 2019年11月20日 | Direct3D 12はWindows 7 SP1のみで、アプリ開発者向けの専用ソースコードパッケージを介して提供される[ 96 ] [ 97 ] | ||
| 12.1 | 10.00.17763.0001 | 2018年10月2日 | Windows 10、DirectXレイトレーシングのサポートが追加された[ 98 ] | |
| 10.00.18362.0116 | 2019年5月19日 | Windows 10、可変レートシェーディング(VRS)のサポートが追加された[ 99 ] | ||
| 12.2 | 10.00.19041.0928 | 2020年11月10日 | Windows 10、アルティメット | |
| 10.00.22000.1000 | 2021年10月5日 | Windows 11では、ネイティブリフレッシュレート切り替え機能が追加され[ 100 ] 、 Windows Subsystem for Linuxのグラフィック機能も向上した[ 101 ]。 | ||
| 10.00.22621.3820 | 2022年9月20日 | Windows 11 (22H2)、DirectStorage の改善、DXR の最適化、シェーダー モデル 6.7 | ||
| 10.00.22631.2428 | 2023年10月31日 | Windows 11 (23H2)、DirectX 12 Ultimate のさらなる最適化と DXIL コンパイラの改善 | ||
| 10.00.26100.1000 | 2024年10月1日 | Windows 11 (24H2 / 25H2)、シェーダー実行順序変更 (SER)、作業グラフ、シェーダー モデル 6.8 のサポート | ||
| 10.00.26100.7309 | 2025年12月1日 | Windows 11 (25H2)、ワークグラフの改良、DXR の高度な動作、GPU 駆動パイプラインの改善 | ||
MicrosoftのDxDiagツール(バージョン4.09.0000.0900以降)が報告するバージョン番号は、x.xx.xxxx.xxxx形式です。しかし、DirectXとWindows XPに関するMSDNのページでは、レジストリは常にx.xx.xx.xxxx形式であると説明されています。そのため、上記の表でバージョンが「4.09.00.0904」と表示されていても、MicrosoftのDxDiagツールでは「4.09.0000.0904」と表示される可能性があります。[ 102 ]
Windowsのさまざまなリリースには、さまざまなバージョンのDirectXが含まれ、サポートされているため、新しいバージョンのオペレーティングシステムでは、以前のバージョンのDirectX用に設計されたアプリケーションを引き続き実行できます。これらのバージョンは、新しいAPI、ドライバー、ハードウェアに徐々に置き換えられるまで、段階的に廃止されます。[ 103 ]
Direct3D や DirectSound などの API はハードウェアと対話する必要があり、デバイス ドライバーを介してこれを行います。ハードウェア製造元は、特定の DirectX バージョン用のデバイス ドライバー インターフェイス (DDI) 用にこれらのドライバーを作成し、個々のハードウェアをテストして DirectX と互換性を持たせる必要があります。一部のハードウェア デバイスには DirectX と互換性のあるドライバーしかありません (つまり、そのハードウェアを使用するには DirectX をインストールする必要があります)。DirectX の初期のバージョンには、現在利用可能なすべての DirectX 互換ドライバーの最新ライブラリが含まれていました。ただし、この方法は廃止され、代わりに Web ベースのWindows Updateドライバー更新システムが採用されました。このシステムでは、ユーザーはライブラリ全体ではなく、自分のハードウェアに関連するドライバーのみをダウンロードできました。
DirectX 10より前のDirectXランタイムは、古いドライバーとの下位互換性を保つように設計されていた。つまり、新しいバージョンのAPIは、以前のバージョンのDDI向けに書かれた古いドライバーと相互運用できるように設計されていた。アプリケーションプログラマは、特定のハードウェア機能にそれぞれ結び付けられた「キャップビット」の複雑なシステムを使用して、利用可能なハードウェア機能を照会する必要がありました。Direct3D 7以前はどのバージョンのDDIでも動作しましたが、Direct3D 8では最低でもDDIレベル6、Direct3D 9では最低でもDDIレベル7が必要でした。[ 104 ] しかし、Windows VistaのDirect3D 10ランタイムは、統一された機能セットを必要とし、「キャップビット」の使用を放棄した大幅に更新されたDDIのため、古いハードウェアドライバーでは動作しません。
Direct3D 10.1では、 「機能レベル」10_0 と 10_1 が導入され、指定されたバージョンの Direct3D API で定義されているハードウェア機能のみを使用できるようになりました。Direct3D 11では、レベル 11_0 と「10 レベル 9」が追加されました。これは、Direct3D 9 ハードウェアで実行するように設計された Direct3D 10 API のサブセットで、「低」、「中」、「高」のビデオ カードの共通機能ごとにグループ化された 3 つの機能レベル (9_1、9_2、9_3) があります。ランタイムは、すべての WDDM ドライバーで提供される Direct3D 9 DDI を直接使用します。機能レベル 11_1 はDirect3D 11.1で導入されました。
2002 年、マイクロソフトは Microsoft .NET Frameworkと互換性のあるバージョンの DirectX をリリースしました。これにより、プログラマはマネージ C++ などの互換性のある言語やC#プログラミング言語を使用して、.NET アプリケーション内から DirectX 機能を利用できるようになりました。この API は「 Managed DirectX 」(または略して MDX)として知られ、基盤となるネイティブ DirectX API の 98% のパフォーマンスで動作すると主張しました。2005 年 12 月、2006 年 2 月、2006 年 4 月、および 2006 年 8 月に、マイクロソフトはこのライブラリの連続した更新をリリースし、最終的に Managed DirectX 2.0 というベータ バージョンがリリースされました。Managed DirectX 2.0 では、以前は複数のアセンブリに分散されていた機能が 1 つのアセンブリに統合され、ソフトウェア開発者にとっての依存関係が簡素化されましたが、その後このバージョンの開発は中止され、サポートされなくなりました。Managed DirectX 2.0 ライブラリは、2006 年 10 月 5 日に有効期限が切れました。
GDC 2006で、Microsoftは、DirectXの新しいマネージドバージョン(Managed DirectXに似ていますが、同一ではありません)であるXNA Frameworkを発表しました。これは、DirectX、HLSL、およびその他のツールを1つのパッケージに統合しやすくすることで、ゲーム開発を支援することを目的としています。また、Xbox 360でのマネージドコードの実行もサポートしています。XNA Game Studio Express RTMは、2006年12月11日にWindows XP用の無料ダウンロードとして利用可能になりました。DirectXランタイムとは異なり、Managed DirectX、XNA Framework、またはXbox 360 API(XInput、XACTなど)は、Windowsの一部として出荷されていません。開発者は、ゲームまたはアプリケーションと一緒にランタイムコンポーネントを再配布することが期待されています。
最新の XNA リリースを含む Microsoft 製品では、.NET Framework の DirectX 10 サポートは提供されていません。
マネージ言語での DirectX のもう 1 つのアプローチは、次のようなサードパーティ ライブラリを使用することです。
DirectXファミリーのAPIには代替手段があり、OpenGL、その後継であるVulkan、Metal、MantleはDirect3Dに匹敵する機能を最も多く備えています。その他のAPIの例としては、 SDL、Allegro、OpenMAX、OpenML、OpenAL、OpenCL、FMOD、SFMLなどが挙げられます。これらのライブラリの多くはクロスプラットフォームであるか、オープンコードベースです。Wineのように、同じAPIを提供することを目的とした代替実装も存在します。さらに、 ReactOSの開発者は、「ReactX」という名前でDirectXの再実装を試みています。
Windows がサポートする必要があるもの: ... – ページ反転 – 垂直ブランク同期 – タイトなサウンドミキシング – サウンドとビデオイベントのタイトな同期 – 生のブリングパフォーマンス – グラフィックモードの設定機能 ...
例えば、Lion KingソフトウェアはWinToonアプリです。…WinToonと同様に、この例ではDIBへの描画にWinGを使用しています。
DMOはMedia Foundation Transforms (MFT)に置き換えられました。