Microsoft DirectX
読み:マイクロソフト-ダイレクトエックス
外語:Microsoft DirectX

 Microsoftが開発した、Microsoft Windows用のマルチメディア処理API群。Windows 95 OSR2以降、およびWindows NT 4.0 SP3以降から標準対応した。
目次

概要
 実際にDirectXという名のAPIがあるわけではなく、Xの部分に用途に応じた名称が入る。
 このAPI群は、ハードウェア固有の機能を最大限に引き出すことを目的とし、ハードウェアを直接操作できたMS-DOSからの移植作業(特にゲームの‐)を容易にしながら、それによるパフォーマンス低下を極力なくすために設計された。ゲーム開発用として登場した経緯から、一番最初のバージョンであるDirectX 1.0 SDKに相当するものは「Game SDK」と呼ばれており、バージョン2からDirectX SDKと呼ばれるようになった。
 Microsoftのゲーム専用機であるXbox/Xbox360でもDirectXが利用されているが、より新しいAPIも使われており(XInputやXACTなど)、これを輸入する形で将来的に古いDirectX APIを置き換えることも計画されているようである。

特徴

構成
 DirectXは、ハードウェアに関する直接的なサービスを代行する部分と、マルチメディア関連の処理を扱う部分とに分けられる。
 かつてはそれぞれ、DirectX Foundation、DirectX Mediaと呼ばれていたが、DirectX 8以降は次のように構成が変更になっている。

Direct
 そもそも "Direct" という名は、ハードウェアを直接操作するというところを語源としている。従って、旧来から存在するのはDirectX GraphicsやDirectX Audio、つまり初期にはDirectX Foundationと呼ばれていたグループである。
 これはHAL(Hardware Abstraction Layer)と名付けられ機構でハードウェアを仮想化することにより、もしハードウェアにその機能が無ければソフトウェアで処理を代行することで、全ての環境を同一に扱うことが可能にできる。これが、DirectXの持つ大きな特徴である。
 もちろん、ソフトウェアで代行する場合の速度については別の次元の問題である。

OSとの関係
 DirectXはハードウェアを操作するAPI群である。
 ハードウェアに依存するのは半ば当然で、バージョンアップの度に新しいハードウェアに対応をしてきた。
 DirectX 6.0からAMD 3DNow!命令に、DirectX 6.1からPentium IIIのストリーミングSIMD拡張命令(SSE)に、DirectX 7.0からはハードウェアによるトランスフォームとライディング、DirectX 8.0からPentium 4のストリーミングSIMD拡張命令2(SSE2)に対応し、3Dグラフィックを高速化する。DirectX 8.1はWindows XP標準搭載版で、ピクセル・シェーダーなどが改良されている。DirectX 9.0はシェーダー言語HLSLに対応し、またハードウェアT&Lは廃止された。
 このほか、ハードウェアの差異の緩衝としてデバイスドライバーが介在すると、ハードウェアだけでなくOSのデバイスドライバーモデルに依存することもある。
 例えば、Windows Vistaから新しいディスプレイドライバーモデルのWDDM(Windows Display Driver Model)に対応し、Windows 2000/XPの従来のドライバーモデルをXPDMと呼ぶようになった。新しいDirectXの中には、WDDMに依存した実装しか提供されていないものもある。
 なお、Windows 95対応の最終版はDirectX 8.0a、NEC PC-9801/PC-9821対応の最終版はDirectX 7.0aである。

再検索