DirectX
| 開発者(チーム) | Microsoft |
|---|---|
| 初期リリース日 | 1995年9月30日 |
| ライセンス | プロプライエタリ (EULA) |
DirectX(ダイレクトエックス)は、マイクロソフトのプラットフォームにおいて、マルチメディア、特にゲームプログラミングやビデオ処理のために設計されたAPI(アプリケーションプログラミングインタフェース)の集合体である。
概要
元来、Windows 95時代にDOSベースのゲームがWindows環境へ移行する際に発生した、ハードウェア直接制御の困難さを解決するために「Windows Game SDK」という名称で始まった。現在はWindows OSおよびXboxコンソールにおけるゲーム開発の中核技術として定着している。
主な構成要素
DirectXは以下のような複数のAPIから構成される。
- Direct3D: 3Dグラフィックスアクセラレーション機能を提供する最も核心的なコンポーネント。
- Direct2D: 2DグラフィックスおよびテキストレンダリングのためのAPI。(旧DirectDrawの代替)
- DirectCompute: GPGPU(汎用GPUコンピューティング)のためのAPI。
- XAudio2: 低遅延と信号処理に最適化されたオーディオAPI。(旧DirectSoundの代替)
- XInput: Xboxコントローラーなど次世代入力デバイスをサポートするAPI。(旧DirectInputの代替)
- DirectStorage: 高速NVMe SSDの性能を活用し、ゲームのロード時間を劇的に短縮する技術。
歴史と主なバージョン
DirectXは1995年、Windows 95の発売と共に「Windows Game SDK」という名称で始まり、その後継続的なアップデートを通じてWindowsプラットフォームの標準マルチメディアAPIとしての地位を確立した。
- DirectX 1.0 (1995年9月): Windows 95用「Windows Game SDK」として初リリース。DirectDraw(2Dグラフィックス)、DirectSound(オーディオ)、DirectInput(入力)、DirectPlay(ネットワーク)などの基本機能を含んでいた。
- DirectX 2.0 (1996年6月): Direct3Dが初めて導入され、3Dグラフィックスアクセラレーションのサポートを開始した。Windows 95 OSR2およびWindows NT 4.0に含まれた。
- DirectX 3.0 (1996年9月): DirectSound3D(DS3D)が追加され、立体音響効果をサポートするようになった。Windows NT 4.0 SP3でサポートされた。
- DirectX 5.0 (1997年8月): (バージョン4.0は開発中止)DrawPrimitiveなどDirect3Dの機能が大幅に強化され、MMX命令セットのサポート、フォースフィードバック(DirectInput)のサポートなどが追加された。
- DirectX 6.0 (1998年8月): マルチテクスチャリング、バンプマッピングなどの高度な3Dレンダリング技術が追加され、高品質な音楽再生のためのDirectMusic APIが導入された。ドリームキャストのWindows CEベースOSにも使用された。
- DirectX 7.0 (1999年9月): ハードウェアT&L(Transform and Lighting)のサポートが最大の特徴である。CPUが処理していた座標変換と照明演算をGPUが担当することになり、パフォーマンスが飛躍的に向上した。Visual Basicのサポートも追加された。
- DirectX 8.0 (2000年11月): プログラマブルシェーダー(Programmable Shader)が導入された革命的なバージョンである。頂点シェーダー(Vertex Shader)1.0とピクセルシェーダー(Pixel Shader)1.0を通じて、開発者がグラフィックスパイプラインを直接制御できるようになった。DirectDrawとDirect3Dが「DirectX Graphics」として統合された。
- DirectX 9.0c: Windows XP時代を風靡したバージョンで、シェーダーモデル3.0をサポートし、長期間標準として使用された。
- DirectX 10: Windows Vista専用としてリリースされ構造的な変化を図ったが、XP未対応のため普及が遅れた。ジオメトリシェーダー(Geometry Shader)が追加された。
- DirectX 11: テッセレーション(Tessellation)、マルチスレッドレンダリング、GPGPU(DirectCompute)などをサポートし、グラフィックス品質と効率性を大幅に向上させた。Windows 7の成功と共に広く普及した。
- DirectX 12: ハードウェアへのより低いレベル(Low-level)のアクセスを許可し、CPUオーバーヘッドを削減してパフォーマンスを最大化した。
- DirectX 12 Ultimate: DirectX 12の拡張版で、リアルタイムレイトレーシング(DXR)、可変レートシェーディング(VRS)、メッシュシェーダー(Mesh Shaders)、サンプラーフィードバックなどの次世代グラフィックス技術を標準化した。
その他
.NET環境(.NET Core, .NET 5+など)でのゲーム開発には、現在FNAやMonoGameなどを利用するのが一般的である。 過去にはManaged DirectX, XNAなどが存在したが、現在は開発が中断されている。
- .NET用ラッパーライブラリ(オープンソース)
- Vortice.Windows
- TerraFX.Interop.Windows
- SharpDX(開発中断)
- SlimDX(開発中断)