DirectX
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Microsoft DirectX(ダイレクトエックス・ディレクトエックス・ディレクティクス)は、マイクロソフト社が開発したゲームおよびマルチメディア処理用のAPIの集合である。
DirectXコンポーネントのうち、グラフィックスを担うDirectX GraphicsはMicrosoft Windows、Xbox、Xbox 360向けのゲーム開発で広く利用されている。DirectX互換のビデオカードを利用することにより高品質の3Dグラフィックスを高速にレンダリングできるため、DirectXはこれ以外のソフトウェア産業、特にエンジニアリングの分野でも広く利用されている。
DirectXのランタイムライブラリとSDKはいずれもマイクロソフトのウェブサイトから無償でダウンロードできるが、プロプライエタリでソースコードは非公開である。DirectXはWindowsに含まれているが、最新版をウェブサイトからダウンロードすることも可能である。
2007年2月現在の最新バージョンはDirectX 10で、Windows Vistaに同梱されている。DirectX 10とDirect X 9ExはWindows Vista専用である。Windowsのグラフィックアーキテクチャに大規模な修正が加えられ、Windows Display Driver Modelが導入されたことがその理由である。
目次 |
[編集] DirectX のコンポーネント群
DirectXの機能はマネージコードインターフェイスのセットと同様にCOMインターフェイスの形で提供されている。
- DirectX Graphics:(DirectX 8からの名称、下記の2つで構成される)
- DirectDraw: 2次元グラフィックス(DirectX 7まで存在、現在でも広く利用されているものの過去の遺産である)
- Direct3D: 3次元グラフィックス
- DirectX Audio:(DirectX 8からの名称、下記の3つで構成される)
- DirectSound: サウンド再生及び録音
- DirectSound3D(DS3D): 3次元サウンド再生
- DirectMusic: DirectMusic Producerで作成された音楽トラックの再生
- DirectX Media: (下記の3つで構成される)
- DirectInput: キーボード、マウス、ゲームパッド、ジョイスティックの入力処理(Xbox360のためのXInputを除き8以降更新されていない。キーボードやマウスはWM INPUTを代わりに利用すること。)
- DirectPlay: ゲーム用ネットワーク通信(DirectInputと同様に8以降更新されていない。過去の遺産である。)
- DirectX Media Objects: エンコーダー、デコーダー、エフェクトといったストリーミングオブジェクトのサポート
- DirectSetup: DirectXランタイムのセットアップ用であり、正確にはAPIではない。
将来的にはDirectInputがXInputに、DirectSoundがXACTに、DirectShowがMedia Foundationに置き換えられる予定である。
[編集] 歴史
1994年終盤、マイクロソフトはWindows 95をリリースしようとしていたが、当時のプログラマーは、Windows 95よりもむしろMS-DOSのほうがゲームプログラミングに適していると考える傾向にあった。「どのようなプログラムを作れるか」というのはOSの評価基準として大きなウェイトを占める。マイクロソフトの三人の社員、クレイグ・アイスラー、アレックス・ジョン、エリック・イングシュトロームは、この傾向を危惧していた。
MS-DOSの環境下では、プログラムはビデオカード、キーボード、マウス、サウンドカードなど様々なシステムパーツに直接アクセスできていたのだが、Windows 95ではメモリ保護のためにこれらの直接のアクセスが制限されてしまっていたのだ。あと数ヶ月でWindows 95がリリースされるという中で、マイクロソフトはウィンドウズ95におけるプログラムの自由度を上げる仕組みを作り上げなければならなかった。アイスラーとジョンとイングシュトロームの三人はこれらの問題解決に乗り出した。こうして作られたのがDirectXである。
DirectXの最初のバージョンはWindows Games SDKとして1995年9月にリリースされた。これはWindows3.1にあったWinG APIとDCIとを32ビット用に移植したものである。このとき、マイクロソフトはATIの開発チームからゲームグラフィックの基本部分についての技術提供を受けた。これ以降、アイスラー(開発リーダー)、ジョン、イングシュトローム(プログラム責任者)の三人のチームを中心としてDirectXの開発が進められ、最終的にはこれ以降のすべてのWindowsにおいてDirectXがマルチメディア機能を担うことになった。DirectX1から5までの開発でのドタバタは、アイスラーのブログに詳しく書かている。[1]。
DirectXの登場より前に、マイクロソフトはOpenGLをWindowsNTに搭載してしまっていた。OpenGLは、動作に(当時においては)ハイスペックな環境が必要だった上に、用途もCADやエンジニアリングに限られていた。そんな中Direct3Dは、ゲーム用としてはオーバースペック気味だったOpenGLの計量版として設計され、ここからDirect3DとOpenGLとの、ユーザー同士の対立が始まった。Windows専用だったDirect3Dはマイクロソフトの3E戦略(embrace,extend,extinguish―吸収、拡大、根絶)だとOpenGLユーザーから非難されることとなった。しかしながらDirectXには、サウンドやジョイスティックなど、OpenGLがカバーできない機能が含まれていたため、DirectX上の他のAPIとOpenGLとを組み合わせて使われることが多かった。最近ではOpenGLとSDLの組み合わせも多くなってきている。
ゲーム専用機では、セガのDreamcastにWindowsCEと共にDirectXが世界で初めて用いられた[2]。その後マイクロソフトのXboxとXbox360にも搭載された。Xbox360のコンソールAPIはマイクロソフトとNVIDIA(Xboxのカスタムグラフィックチップの開発元)で共同開発された。Xbox APIはDirectX8.1に近いが、コンソール上からアップデートができないところが他と異なる。XboxのコードネームはDirectXboxだったが、商品名は短縮してXboxとなった[3]。
2002年にマイクロソフトは、以前よりもはるかに長いシェーダプログラムを扱えるピクセル・バーテックスシェーダバージョン2.0をサポートしたDirectX 9をリリースした。2004年8月にはシェーダモデル3.0を導入したDirectX 9.0cをリリースし、それ以降もDirectX一式の更新を続けている。
2005年4月の時点でDirectShowはDirectXから取り除かれ、代わりにMicrosoft Platform SDKへ移動した。しかしながらDirectShowのサンプルをビルドするためにはDirectXが必要である[4]。
[編集] リリース履歴
バージョン | 概要 | 日付 |
---|---|---|
WinG、DCI | Windows 3.1時代 | |
DirectX 1.0 | ゲーム作成用のAPI集GameSDKとして発表された | 1995年10月 |
DirectX 2.0 | Direct3D(Immediate Mode, Retained Mode)の登場 | 1996年6月 |
DirectX 3.0 | DirectSound3D登場、DirectInputの統合 Windows NT4.0に搭載。 | 1996年9月25日 |
ActiveMovie | DirectShowの前身 | 1996年11月5日 |
DirectX 4.0 | 登場予定であったが、DirectX 3.0からはわずかな変更であり、既にDirectX 5.0がロードマップ上にあったため、ベンダーの要望によりキャンセルされた。 | |
DirectX 5.0 | Direct3DにDrawPrimitive(OpenGLのようなプリミティブ単位の描画機能)が登場。Windows 98に搭載。 | 1997年8月4日) |
DirectX Media | DirectShowおよびDirectAnimation搭載 | 1997年12月1日 |
DirectX 6.0 | 3D描画向けの「Direct3D」の強化、AMD提唱の3D向け命令セット「AMD 3DNow!」への対応や、ジオメトリパイプラインの見直し、テクスチャデータ圧縮機能のサポートなどにより高速化が図られたほか、シングルパス・マルチテクスチャやバンプマッピングのサポートなど表現力の向上。 | 1998年8月7日 |
DirectX 6.1 | DirectMusic登場。SSEのサポート。Windows 98 SEに搭載。 | 1999年2月3日 |
DirectX 7.0 | Visual Basicをサポート、Direct3Dの機能強化(ハードウェアT&Lのサポート) Windows 2000に搭載され、NT系列でも最新機能が使えるようになった。 |
1999年9月22日 |
DirectX 7.1 | Windows Meに搭載された。 | |
DirectX 8.0 | DirectDrawとDirect3Dが統合されてDirectX Graphicsに。また、DirectSoundとDirectMusicが統合されてDirectX Audioと呼ばれるようになった。 Windows 2000および9x系で使用可能。 | 2000年11月9日 |
DirectX 8.1 | Windows XPに搭載。Windows 2000・Me・98用に単体配布もされている。 | |
DirectX 8.2 | Windows 2000 および Windows XP で使用可能。短期間配布された。 | |
DirectX 9.0 | 各コンポーネントの機能強化が中心。DirectX 9.0cがWindows XP SP2に搭載された。 この頃から、DirectXのバージョンが上がっても、更新されるのはDirect3Dだけとなりつつあるため、DirectX 9.0ではなくDirect3D 9.0と呼ばれるようになる。 |
2002年12月20日 |
Direct3D 9.0Ex | Windows Vistaに搭載されている、Direct3D 9.0の改良版。Windows VistaのWindows AeroはDirect3D 10ではなく9Exで描画されている。 | |
DirectX 10.0 | Windows Vista以降でのみ、利用可能。 | |
DirectX 10.1 | Windows Vista SP1以降でのみ、利用可能。GPUの仮想化技術の実装 |
[編集] 注
- DirectX 4はリリースされなかった。Raymond Chen氏の著書The Old New Thingによると、DirectX 3がリリースされた後に、マイクロソフトは4と5の開発を同時に始めた。Version 5がより実りの多いものになる予定であったのに対し、version 4は小幅な機能拡張を伴う短期リリース版となる予定であった。DirectX 4に実装される予定の機能はゲーム開発者の興味をそそらずに棚上げされる結果となり、またドキュメントはこれら2つのバージョンを明確に区別して執筆しており、マイクロソフトは(version 5の)機能はversion 5のためのものだと記述するためversion 4を再利用しないことに決めた。
[編集] Managed DirectX
Managed DirectXは.NET FrameworkアプリケーションからDirectXを呼び出すためのAPIである。Managed DirectXを使うと、.NET Framework上で動作するどんな言語からでもDirectXを呼び出すことができる。また、テクスチャオブジェクトをSystem.Drawing.Bitmapオブジェクトから生成できるなど、.NET Frameworkとの相互運用も強化されている。
しかしながらManaged DirectX 2.0の開発は中止され、Microsoft XNAに置き換えられることになった。
[編集] OpenGLとの関係
DirectXのうちDirectX Graphicsは、同じく三次元グラフィックスを扱うためのAPI集合であるOpenGLとしばしば比較される。
主な違いは、DirectXは基本的に3DグラフィックAPIに限定されるものではなく、サウンド処理や入出力処理、ネットワーク処理までを内包するトータルなゲーム作成用API/SDKを指向するものである一方、OpenGLは純然たる3DグラフィックAPIとして設計されている点にある。 またDirectXはWindows(やWindowsを採用したゲーム機、DreamcastやXbox等)の動作する限られたプラットフォームでしかサポートされないのに対し、OpenGLはクロスプラットフォームであるという点である。また、DirectXはクローズドソースなライセンスであるが、OpenGLはオープンソースであるため、特別な許可なく移植や改変ができる。
DirectXはその出自から、主にWindows用ゲームの分野で使用されてきたが、現在ではDirect3Dに関しては同環境における標準的な3DグラフィックAPIとしても用いられるようになり、ゲームに限らない一般的な3Dアプリケーションや、オペレーティングシステムのグラフィカルシェル環境にまで用いられるようになった。
一方のOpenGLは、歴史的および機能的な理由から、3DCGの製作工程(但し、モデラーやシーンエディタ等によって対話的に行う作業環境の表示に用いられ、最終的なレンダリング出力にOpenGLそのものが用いられる事はまず無い)やCAD、データ可視化などの用途に、グラフィックワークステーションやEWS等のプロフェッショナルな分野で使用されてきた。また現在ではパーソナルユーザー向けの3Dデスクトップ環境において標準的な描画APIとしても用いられており、これらの環境では3DビデオゲームのグラフィックAPIとしても標準的な立場にある。このように、両者をその用途によって明確に区別することは困難となりつつある。
またDirectXが標準的な3DグラフィックAPIとして定着したPC/Windows系の環境においてもOpenGLは今なお共存しており、実際にDirectXの登場以前~登場初期頃には、PC(Windows)用ゲームの3DグラフィックAPIとしてOpenGL(やOpenGLを簡略化し自社製グラフィックカードVoodooの専用APIとしたGlide)がデファクトスタンダードとして用いられて来た歴史もあり、両者を比較する文脈においてよく言われるような単純な競合関係として説明することも、実態として困難と言える。
[編集] 関連項目
[編集] 外部リンク
- DirectX World - DirectX lessons. Learn how to build a graphic engine.
- DirectXホームページ
- DirectXデベロッパーセンター(開発者向け)
- DirectX 10 Wiki(英語)
[編集] 脚注
- ^ Craig's Musings: DirectX Then and Now (Part 1)
- ^ WindowsCE SDK for Dreamcast
- ^ J. Allard, PC Proのインタビュー 2004年4月
- ^ Release Notes (MSDN)
|
|
---|---|
コア | Aero · ClearType · DWM · DirectX · エクスプローラ · タスクバー · スタートメニュー · シェル(シェル名前空間 · 特殊フォルダ · 関連付け) · Windows デスクトップサーチ (Saved search, iFilters) · GDI · Windows Imaging Format · 次世代TCP/IPスタック · .NET Framework · 音声 · 印刷 (XPS) · Windows Script Host (VBScript, JScript) · COM (OLE, OLEオートメーション, DCOM, ActiveX, 構造化ストレージ) |
アプリケーションとツール | バックアップと復元センター · 電卓 · カレンダー · 文字コード表 · Cmd.exe · Contacts · コントロールパネル(アプレット) · デバイスマネージャ · ディスク クリーンアップ · デフラグ · DVDメーカー · イベントビューア · FAXとスキャン · Windows 画像とFAX ビューア · Internet Explorer · Mail · 拡大鏡 · 管理コンソール · Media Center · ミーティングスペース · Windows Mobileデバイスセンター · Mobility Center · ムービーメーカー · ナレータ · メモ帳 · ペイント · フォトギャラリー · PowerShell · 外字エディタ · 問題の報告と解決 · リモートアシスタンス · サイドバー · Snipping Tool · サウンド レコーダー · Sysprep · システム構成ユーティリティ · システムファイルチェッカー · システムの復元 · UNIXサブシステム · Windowsインストーラ · Windows Media Player · 音声認識 · タスクマネージャ · Windows Update · ワードパッド · WinSAT |
カーネル | Ntoskrnl.exe · HAL · アイドルプロセス · Svchost.exe · レジストリ · Windowsサービス · サービスコントロールマネージャ · WOW/WOW64 · DLL · EXE · NTLDR/ブートマネージャ · Winlogon · 回復コンソール · I/O · WinRE · WinPE · カーネルパッチ保護 |
サービス | 自動再生 · BITS · タスクスケジューラ · Wireless Zero Configuration · シャドウコピー · Windowsエラー報告 · マルチメディアクラススケジューラ · CLFS |
ファイルシステム | NTFS (ジャンクション, マウントポイント, リパースポイント, シンボリックリンク, TxF, EFS) · FAT32 · FAT16 · FAT12 · exFAT · CDFS · UDF · DFS · IFS |
サーバー | ドメイン · Active Directory · DNS · グループポリシー · 移動ユーザープロファイル · MSDTC · SharePoint Services · Windows Media Services · RMS · IIS · ターミナル サービス · WSUS · NAP · DFSレプリケーション |
アーキテクチャー | NT系のアーキテクチャー · オブジェクト マネージャ · スタートアッププロセス (Vista) · IRP · KTM · 論理ディスクマネージャ · セキュリティアカウントマネージャ · Windowsリソース保護 · LSASS · CSRSS · SMSS |
セキュリティ | UAC · BitLocker · Defender · DEP · Protected Media Path · MIC · UIPI · ファイアウォール · セキュリティセンター |
ゲーム | チェスタイタン · フリーセル · ハーツ · Hold 'Em · インクボール · マージャンタイタン · マインスイーパ · Purble Place · ソリティア · スパイダ ソリティア |
PowerToys | Tweak UI · SyncToy · PowerCalc |