DirectXとは
ゲームのプログラムを調べていると大体はDirectXという言葉にたどり着くかと思います。
このDirectXとはMicrosoftが提供しているゲーム・マルチメディアで処理する機能が入った*API(ライブラリ)です。
DirectXを使用することでゲームに必要な様々な機能が実現できるのでWindows環境では高確率で使用されています。
もちろんMicrosoft製であるXBox系統のゲームは全てDirectXで作成されます。
DirectXで出来ることは様々ですが、バージョン毎にも変化しています。
その中で最も使われるものが描画(画面に絵を表示する)機能です。
Direct3Dと呼ばれるものですが、DirectXと言うだけでDirect3Dを指すことも多いです。
APIとは
APIとはアプリケーションプログラミングインターフェイスの頭文字です。
こう呼ぶと難しく感じますが、簡単に言えば様々な機能を簡単に使用できるようにまとめたものです。
DirectX9
DirectX9は現役のDirectXの中で習得難度が一番低いので初心者の学習に向いているバージョンです。
WindowsXP以降のPCでは基本的に動作します。
現在ではDirectX9と言われるものは大体がDirectX 9.0cを指します。
使用するにはMicrosoftのサイトよりインストーラーをダウンロードしてくる必要があります。
※インストールする手順などは初めてのDirectX9の記事をご確認ください。
DirectX9で使用される主要な機能には下記があります。
Direct3D | 3次元グラフィックスを処理する機能です。 DirectXの本体とも言える機能です。 3Dと言っていますが2Dも扱えます。 |
---|---|
D3DX | Direct3Dで必要になる算術回りやテクスチャ―データの読み込み、モデルデータの読み込み、フォント描画などの機能が含まれています。 特に算術回りとテクスチャーの読み込み周りは初心者には必須の機能です。 |
DirectInput | キーボードやマウス、ゲームパッドといった入力周りの機能です。 DirectX8の頃から大した変更が無く、現在ではXInputの使用が推薦されています。 |
XInput | XBox 360のコントローラーを制御するための機能です。 最近ではサードパーティー性のコントローラーも多くがXInputに対応しています。 今後はこちらで実装することが推薦されています。 |
DirectX Audio | DirectSoundとDirectMusicの2つの機能から構成されたサウンド周りの機能です。
DirectSoundではWAVE(波形)情報を扱う機能です。 DirectMusicではMIDIファイルなどを扱える機能です。 |
XAudio2 | DirectSoundの後継となるサウンド周りを扱う機能です。 サウンドの再生処理や終了検知などを簡単に行えるようになりました。他にも高レベルなサウンド制御機能が備わっています。 |
DirectShow | 動画などのメディアファイルやストリーム処理を行う機能です。 2005年にDirectXから除外され、Platform SDKというものに移管されました。又、Vista以降ではMedia Foundationという後継が用意されています。 |
廃止されているけど、一応使用できる機能や重複する機能もありますが、概ねこの辺りがDirectX9で使用される機能です。
これらの中でも特に使用される機能は下記です。
- Direct3D
- D3DX
- DirectInput or XInput
- DirectSound or XAudio2
これだけあれば描画、入力、サウンドが扱えるのでゲームを作ることができます。
それ以外の機能についてはDirectX以外の機能を使って実装することもできるので使用されない場合が多いです。
DirectX11
DirectX11はDirectX9と比べて描画に関する細かな機能が増えているため難易度が格段に上がっています。
なのでDirectX9の学習後に始める人が多いバージョンです。
主にWindows 7以降のPCで動作します。
DirectX11はWindows SDKに同行されているので特にインストールなどは必要ありません。
DirectX11で使用される主要な機能には下記があります。
Direct3D | 3次元グラフィックスを処理する機能です。 他の機能がかなり絞られてきたので正に本体と言えます。 DirectX9と同様に2Dも扱えます。 |
---|---|
DirectXMath | Direct3D用の算術回りの機能をまとめた機能です。 SIMD対応が行われているのでCPUによっては高速に計算が行えます。 |
DXGI | DirectX Graphics Infrastructureと呼ばれる機能です。 主に機能の進化が緩やかなDirect3Dに依存しない部分をまとめた機能となります。 グラフィックカードやモニターの制御などを行います。 |
XInput | 以前から特に変更はありません。 ゲームパッドの入力周りにはこれが使用されます。 |
XAudio2 | XACT(イグザクト)と呼ばれる機能が廃止されたので一部の機能は無くなっていますが、概ね基本的なサウンド制御に関する機能が揃っています。 |
以前のDirectXの機能と共存もできますが、主にこれらの機能がDirectX11で使用されます。
算術回りがDirectXMathに変更されたことやD3DXに含まれていたリソース読み込み周りの処理などが無くなりました。
様々な機能がWindowsに標準搭載されているので、DirectXの役割が描画に集約されました。
XInputやXAudio2もDirectXというよりはそれぞれが個別の機能という形です。