DirectX 4はリリースされなかった。Raymond Chenの著書The Old New Thing(邦訳:Windowsプログラミングの極意 歴史から学ぶ実践的Windowsプログラミング!)によると、DirectX 3がリリースされた後に、マイクロソフトは後継のバージョン4と5の開発を同時に始めた。バージョン5がより実りの多いものになる予定だったのに対し、バージョン4は小幅な機能拡張を伴う短期リリース版となる予定だった。しかしDirectX 4に実装される予定の機能はゲーム開発者の興味をそそらず、そのためDirectX 4はキャンセルされ、すべての機能をDirectX 5に組み込むことになったが、すでに執筆されていた多数のドキュメント内ではこれら2つのバージョンを明確に区別していた。マイクロソフトは混乱を避けるため、バージョン5をバージョン4にリネームするようなことはせず、バージョン4をスキップすることにした[35]。 1994年終盤、マイクロソフトはWindows 95をリリースしようとしていたが、当時のプログラマは、Windows 95よりもむしろMS-DOSの方がゲームプログラミングに適していると考える傾向にあった[36][37]。「どのようなプログラムを作れるか」というのはOSの評価基準として大きなウェイトを占める。マイクロソフトの三人の社員、クレイグ・アイスラー、アレックス・ジョン、エリック・イングシュトロームは、この傾向を危惧していた。 MS-DOSの環境下では、プログラムはビデオカード、キーボード、マウス、サウンドカードなど様々なシステムパーツに直接アクセスできていたが、Windows 95ではメモリ保護のためにこれらの直接のアクセスが制限されてしまっていた。あと数ヶ月でWindows 95がリリースされるという中で、マイクロソフトはWindows 95におけるプログラムの自由度を上げる仕組みを作り上げなければならなかった。アイスラーとジョンとイングシュトロームの三人はこれらの問題解決に乗り出した。こうして作られたのがDirectXである。 DirectXの最初のバージョンはWindows Games SDKとして1995年9月にリリースされた。これはWindows 3.1にあったWinG APIとDCI (Display Control Interface) とを32ビット用に移植したものである。このとき、マイクロソフトはATIの開発チームからゲームグラフィックの基本部分についての技術提供を受けた。これ以降、アイスラー(開発リーダー)、ジョン、イングシュトローム(プログラム責任者)の三人のチームを中心としてDirectXの開発が進められ、最終的にはこれ以降のすべてのWindowsにおいてDirectXがマルチメディア機能を担うことになった。DirectX 1から5までの開発でのドタバタは、アイスラーのブログに詳しく書かれている[38]。 DirectXの登場より前に、マイクロソフトはOpenGLをWindows NTに搭載してしまっていた[39][40]。OpenGLは、動作に(当時においては)ハイスペックな環境が必要だった上に、用途もCADやエンジニアリングに限られていた。そんな中Direct3Dは、ゲーム用としてはオーバースペック気味だったOpenGLの軽量版として設計され、ここからDirect3DとOpenGLとの、ユーザー同士の対立が始まった。Windows専用だったDirect3Dはマイクロソフトの3E戦略(embrace, extend, extinguish―吸収、拡大、根絶)だとOpenGLユーザーから非難されることとなった。しかしDirectXには、サウンドやジョイスティックなど、OpenGLがカバーできない機能が含まれていたため、DirectX上の他のAPIとOpenGLとを組み合わせて使われることが多かった。後にはOpenGLとSDLの組み合わせも多い。OpenGLはDirect3Dが先行して実装したジオメトリシェーダーやコンピュートシェーダーといった機能を数年遅れで取り入れるなど、Direct3Dの影響を受けている部分がある[41][42]。 ゲーム機では、セガのドリームキャストにWindows CEと共にDirectXが世界で初めて用いられた[43]。その後、マイクロソフトのXboxとXbox 360にも搭載された。XboxのコンソールAPIはマイクロソフトとNVIDIA(Xboxのカスタムグラフィックチップの開発元)で共同開発された。Xbox APIはDirectX 8.1に近いが、コンソール上からアップデートができないところが他と異なる。XboxのコードネームはDirectXboxだったが、商品名は短縮してXboxとなった[44]。 2002年にマイクロソフトは、以前よりもはるかに長いシェーダープログラムを扱えるシェーダーモデル2.0(頂点シェーダー2.0、ピクセルシェーダー2.0)と高級シェーディング言語HLSLをサポートしたDirectX 9をリリースした。2004年8月にはさらに機能を強化したシェーダーモデル3.0を導入したDirectX 9.0cをリリースし、それ以降もDirectX一式の更新を続けている。 DirectX SDK February 2005を最後に、DirectShowはDirectX SDKから取り除かれ、代わりにMicrosoft Platform SDKへ移動された(DirectX SDK April 2005以降にはDirectShow関連ファイルが含まれない)。しかしPlatform SDKに付属するDirectShowのサンプルをビルドするためにはDirectX SDKが必要である[45]。 2006年にリリースされたDirectX 10は、WDDM/DWM/DXGI 1.0とともにWindows Vista専用として提供され、Windows XP以前のOSにはバックポートされなかった。 DirectX SDK August 2007を最後に、DirectMusicはDirectX SDKから取り除かれた[46]。 2008年にはWindows Vista SP1と同時に、DirectX 10のマイナーバージョンアップとしてDirectX 10.1がリリースされた[47]。 2009年、Windows 7と同時にDirectX 11がリリースされた。DirectX 11のうち、GPGPUのために導入されたAPIであるDirectComputeについては、当初はDirectX 11(シェーダーモデル5.0)世代のハードウェアのみに対して提供される予定だったが、2008年11月に開催されたハードウェア技術者向け国際会議「WinHEC 2008」にて「DirectX 10世代のハードウェアでもサポートする」との発表があった。最終的に、DirectX 10.x(シェーダーモデル4.x)世代のGPUでも、DirectX 11 APIを通してDirectComputeが利用できるようになった[48][49]。
歴史
DirectX 9のリリース
DirectX 10のリリース
DirectX 11のリリース
Size:130 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef