DirectXとは?


昔Windows3.1が出た当時は「Windowsでゲームなんて出来ない!」
と言われるほどWindowsでのゲームは嫌われてました。
それは何故か?
...遅いからです。
Windowsは絵の描画がDOSに比べて段違いに遅かったのです。
DOSとWindowsの仕組みはお分かりでしょうか?
DOSは少々強引(直接ハードを制御)なプログラムも出来ますが,
Windowsは他のプログラムのこともあるのであまり強引なことは出来ません。
そしてWindowsではGDIと呼ばれる描画ルーチンを呼び出して絵を描いてます。
しかしながらこれは当然オーバーヘッドになりますし,GDIも早くなかったのです。
「このままじゃWindowsではゲームが出ない...」
*OSにとってゲーム分野もバカにならないものなんですよ(^^; そういった危機感からか?マイクロソフトも本腰を入れてきました。 Windows GameSDK(後にDirectXと改名)を発表したのです。 今までと違いハードよりなプログラムが組めるため DOS並に高速なゲームを作れるようになりました。 DirectXはどんどんと新しくなりDirectX2,3,5,6,7と現在DirectX8まで出ています。 機能的にも 2D描画, 3D描画, 効果音等, 音楽演奏等, 通信等, インプットデバイス等 など非常に多彩な機能を搭載してきました。 近年ゲームだけではなくあらゆるソフトにDirectXは使われてます。 またWindows98はDirectX5の機能は標準装備となってます。 またWindows2000ではDirectX7の機能が標準装備となってます。
(現在最新版はDirectX8です。) 主な分担
DirectX 8 DirectX 6.1,7 DirectX 3,5,6 DirectX 2 DirectX 1 主な機能
DirectX Graphics Direct Draw 2D描画
Direct 3D なし 3D描画
DirectX Audio Direct Sound 効果音等
Direct Music なし なし なし 音楽演奏等
Direct Play 通信等
Direct Input インプットデバイス等
DirectX8からはDirectDrawとDirect3Dは統合されてDirectX Graphicsと呼ばれています。 まず少しDirectXの歴史を説明します。 DirectXは最初GameSDK(DirectX 1.0相当)としてリリースされ DirectDraw,DirectMusic,DirectInput,DirectPlayの機能がありました。 見てわかるとおりDirect3Dは最初は無かったのです。 理由は「なぜファミコンで3Dゲームが無かったの?」と聞いてるようなものです(笑) そのころのPCには3D表示なんてまだまだ難しいくらい非力でした。 しかしDOOMなどの擬似3Dゲームの出現によりPC界にも3Dゲームのブームは広がっていきました。 そしてグラフィックボードの性能の向上に伴いDirectXも次々とバージョンアップを重ねていきました。 いよいよDirectX2からはDirect3Dが出てきました。 でも使い方としてはDirectDrawを初期化してDirect3Dを初期化する... そう,単体では使えない仕様だったのです。 2D描画命令はDirectDrawから呼び出し.. 3D秒が命令はDirect3Dから呼び出し... DirectDraw,Direct3Dとカテゴリを分ける必需性? きっとプログラマーの誰もがそう思ったのではないでしょうか? どっちも一緒に使えるようになればなぁ.. しかしこの仕様は長く続きました... 3,5,(4は3と5に統合されましたのでありません)6,7, ....いよいよDirectX8からは2Dと3Dが統合されました。