DirectX

  • DirectXはMicrosoft社が提供しているLibrary群です。
    • WindowsのプログラムはWin32API*1というLibrary群を元に作成されます。
       かなり万能なのですがこのAPIにも弱点があり、OSを必ず経由するためどうしても動作が遅くなってしまいます。
       ゲームなどのリアルタイム処理が必要なプログラムでは、致命的になるのでグラフィックカードやサウンドカードなどのシステムを構成するデバイスに直接アクセスして操作するための規格としてGameSDK(WinG)という規格が立ち上がり、DirectXへと発展しました。
  • 現在最新のDirectXのバージョンは「DirectX9.0c」となっています。

DirectX9 Tool

  • DirectX9用Tool「Dx9Info」はDirectX9.0bの機能を利用してビデオカードなどの情報を取得、HTMLへの書き出しを行うツールです。
    そのため動作には「DirectX 9.0b以降」が必須となります。
    また、私が確認している動作OSは「WindowsXP」と「Windows2000 SP4」のみとなっています。
  • 吐き出す情報の中にはDirectXの機能のみでは取得できない「OSのバージョン情報」などもありますが、Win32APIで行っています。
    Windows環境であれば機能するものと思われます。
  • ツールは左側の「DirectX9 Tool」下の「Download」をクリックしてダウンロードしてください。
    ファイルは「LZH」で圧縮してありますので、解凍ツールで解凍後、作成されたフォルダ「Dx9Info」内の「dx9info.exe」を実行してください。
  • 謝辞
    作成には「[[PC Game Developpers ML」の皆さんにもご協力いただいて、
    いろいろと調整できた事をお礼申し上げます。

DirectX診断ツール(DxDiag)に関して

  • DirectX診断ツール(DxDiag??.exe)はDirectXをインストールしていると使用可能なDirectX環境確認ツールです。
    COMインターフェイスを使用してプログラムからアクセスすることが可能です。
  • DxDiag? COMインターフェイスを利用したプログラム「PcInfo?.exe」を作成しました。
  • ツールは左側の「PcInfo?」下の「Download」をクリックしてダウンロードしてください。
    ファイルは「LZH」で圧縮してありますので、解凍ツールで解凍後、作成されたフォルダ「PcInfo?」内の「pcinfo.exe」を実行してください。

DirectXに関するマイクロソフトの見解

■後藤弘茂のWeekly海外ニュース■上から下まで一気に増殖するDirectX 9世代VPUから引用

●誤解を招きやすいマーケティングトーク

このほか、マーケティング的な意味合いもあって“DirectX 9ベース”を名乗るケースもある。例えば、少し前のPC Watchの記事“Trident、DirectX 9対応GPU「XP4」”では、Tridentのリリースに沿って「XP4」をDirectX 9サポートと記述されていたが、実際にはXP4はハードウェア的にはDirectX 8.1世代VPUに過ぎない。つまり、DirectX 9のProgramable Shaderのフィーチャは備えていない。本当は、Tridentは、次の世代のXP8になるまでDirectX 9は名乗れない。

とはいえ、この手の話は今に始まったことではない。これまでのVPUメーカーは、DirectXサポートに関しては、かなりわかりにくい表現をしてきた。もっともよくあるのは、DirectXのフィーチャを完全にハードウェアでサポートしている場合は「DirectX 8互換(compatible)」とし、ハードウェアでフルサポートしていない場合は「DirectX 8準拠(compliant)」とする例だ。

じつは、これについてはDirectX 自体を定義しているMicrosoftに尋ねてみたことがある。すると、MicrosoftでDirectXのスポークスマンを務めるTed Hase(テッド・ハセ)氏(Dierctor, Third-Party Windows Gaming & Entertainment)は次のように説明した。

「Microsoftとしては単一のAPIセットしか設定していない。 互換と準拠という定義はしていない」、
「一般論で言うと、DirectX を名乗るには、完全に(DirectX の)APIの仕様を備えていなければならない。
ハードウェアメーカーが、APIの一部だけを取って準拠だとは言えない。
とはいえ、実際には誤解を招く表現もされている。
好例は GeForce4 MXで、あのチップはProgrammable Shaderハードウェアをサポートしていない。
つまり、実際にはDirectX 8パーツではない」

つまり、大元のMicrosoftでは、DirectX 準拠という“ベース機能だけをサポートした”仕様は設定していなかったわけだ。

そうは言っても、DirectX 9のように膨大な仕様になってくると、フルスペックをいきなりサポートするのは難しい。特にDirectX 9は拡張が多いため、全ての機能がすぐに市場で有用になるかどうかには疑問がある。

そのため、先ほど説明したように、Tessellatorや浮動小数点精度のサポートを省くといったフィーチャの“間引き”が出てくる。これは限られたシリコンバジェット(チップ面積)の枠内でチップを設計する側にとっては当然の話だ。しかし、多少の混乱も起こりそうな予感はある

http://msdn.microsoft.com/ja-jp/library/bb205066(VS.85).aspx


*1 APIはOSが公開しているプログラムインターフェイスでアプリケーションは基本的にこれを利用して作成される