DirectX 8.1 の新機能

Microsoft Corporation

Microsoft® DirectX® 8.1 には以下の新しいツールおよび Graphics と DirectShow® の新機能が含まれまています。

新しいツール

  • AppWizard: このツールは DirectX コンポーネントを使った DirectX アプリケーション作成用のアプリケーション ウィザードを提供します。このツールは SDK に含まれ、新しいアプリケーション製作時に Microsoft Visual Studio® からアクセスできます。
  • Error Lookup Tool: このツールを使えば 16 進エラーコードからテキスト ベースのエラー メッセージに変換できます。このツールは SDK の一部としてインストールされ、[スタート]→[プログラム]→[Microsoft DirectX 8.1 SDK]→[DirectX Utilities]→[DirectX Error Lookup] からアクセスできます。
  • MeshView: このツールを使えば簡単にメッシュを読み込み、表示、修正できます。またこのツールはプログレッシブ メッシュに関する D3DX 機能の一般的な練習を提供します。このツールは SDK の一部としてインストールされ、[スタート]→[プログラム]→[Microsoft DirectX 8.1 SDK]→[DirectX Utilities]→[DirectX MeshViwe] からアクセスできます。

デフォルト ディレクトリの変更

  • DirectX 8.1 インストールではデフォルトでは C:\dxsdk にインストールされます (DirectX 8.0 では C:\mssdk でした)。これはインストール時に変更が可能です。デフォルト インストールで使用する場合には、Visual Studio を使うときのインクルード ファイルやライブラリのディレクトリ設定をやり直す必要があります。詳細はDirectX 8.1 Help の Compiling DirectX Samples and Other DirectX Applicationsを参照してください。

DirectX Graphics の新機能

ピクセル シェーダ

  • ピクセル シェーダにバージョン 1.2、1.3、1.4 を追加しました。これらの新バージョンはピクセルシェーダ プログラミングにおけるよりパワフルな命令、レジスタ、修正子によって既存の機能を強化しています。

Direct3DX (D3DX) ユーティリティ ライブラリの強化

メッシュ API

  • D3DXConvertMeshSubsetToStrips と D3DXConvertMeshSubsetToSingleStrip を使ったパフォーマンスを改善するメッシュ機能を追加しました。OptimizedMesh サンプルを使ってこのメッシュ パフォーマンスの改善を理解してください。
  • OptimizeBaseLOD、TrimByVertices、TrimByFaces を使ったプログレッシブ メッシュ サポートの改善。
  • メッシュの小さな複数メッシュへの分割に役立つ D3DXSplitMesh を追加しました。

バンプ マッピング

  • テクスチャ接空間座標系をベースにした頂点単位の座標系を作成をする D3DXComputeTangent を追加しました。
  • D3DXComputeNormalMap は高さマップを法線マップに変換します。

エフェクト フレームワーク

  • 文字列サポートの追加、コメントの追加、FourCC による制限を排除しました。
  • エフェクト フレームワーク API。ステートの保存と復元のサポート、OnLost および OnReset 処理のサポート、Begin() 後の Set*() のサポート。すべての ID3DXTechnique 機能を ID3DXEffect インターフェイスに移動し、エフェクト インターフェイスを単純化しました。

テクスチャ ライブラリ

  • より高品質な DXTn エンコーディング アルゴリズム。
  • D3DXGetImageInfoFrom を使えばローディング前にイメージ情報を取得できます。
  • 動的テクスチャのサポート。
  • D3DXSaveSurfaceToFile はフォーマット (ミップマップ、キューブマップ、ボリューム) で 8ビット パレットの .bmp と 24ビットの RGB .dds ファイルをすべてのフォーマット(ミップマップ、キューブマップ、ボリューム)でサポートします。
  • D3DPOOL_SCRATCH によってデバイスの能力には制限されないリソースの作成が可能になります。このリソースは作成、破棄、ロック、アンロックが可能です。このリソースはひとつのデバイスに対して設定でき、レンダリングに使用可能です。高精度の高さフィールドをレンダリングするような場合、D3DX と併用すると便利な場合があります。
  • D3DXFillTexture、D3DXFillCubeTexture、D3DXFillVolumeTe のテクスチャ書き込み関数。

数式演算ライブラリ

  • 新しい数式演算関数: D3DXQuaternionSquadSetup を使用した球面三次クオータニオン補間サポートの追加。これはD3DXQuaternionSquad と併用してください。頂点シェーダと D3DXFresnelTerm の行列用のD3DXMatrixMultiplyTranspose 。
  • 数式演算ライブラリ: 3DNow!、SSE、SSE2 に対する CPU 固有の最適化を追加しました。
  • D3DXMATRIXA16 を使用した16バイトアラインメントの行列をサポートします。

サンプル

  • カリング、ライティング、ボリュームフォグ、シャドウボリュームを使ったセルフ シャドウをデモンストレーションするいくつかの新しいサンプル。
  • スクリーンセーバー サンプル フレームワーク上で構築された新しいスクリーンセーバー サンプル。新しいフレームワークは複数モニタをサポートします。

DirectShow の新機能

DirectShow では DirectX 8.1 新機能と、Microsoft Windows® XP Home Edition および Windows XP Professional でのみ利用可能な機能がサポートされました。

Windows XP Home Edition および Windows XP Professional 用の DirectShow 新機能

  • Microsoft TV Technologies (Broadcast Driver Architecture)
  • ビデオ ミキシング レンダラ (VMR)
  • その他の Windows XP 用フィルタ
  • 新しい MPEG-2 トランスポートとプログラム ストリームのサポート
  • ヘッダー ファイルでの Windows XP サポート
  • Windows XP ベースのアプリケーションに関する新しいサンプル

DirectX 8.1 の DirectShow 新機能

  • 新しいサンプルと以前のサンプルの改善
  • ドキュメントのアップデート
  • SampleGrabber フィルタ ソース コードの修正
  • ランタイムの改善

Microsoft TV Technologies (Broadcast Driver Architecture)

  • Windows XP Home Edition と Windows XP Professional と DirectX 8.0
    Microsoft TV Technologies は Broadcast Driver Architecture (BDA) と Microsoft Unified Tuning Model をサポートします。Broadcast Driver Architecture はデジタルとアナログのTV受信のためのさまざまな要素技術をサポートするフレームワークを定義します。それは DVB や ATSC を含む主なデジタル TV 標準仕様に対するネットワーク構成、ネットワーク制御、デマルチプレキシング、テーブルパーシング、IP データ配送のソフトウェア要素を含んでいます。Microsoft Unified Tuning Model は、さまざまなネットワーク タイプを通して単純で統一した方法で、アプリケーションが容易に選局できるようにするオブジェクトの集まりです。
  • Windows XP Home Edition と Windows XP Professional のみ
    新しいビデオ制御は TV アプリケーション開発をかなり単純にし、デジタル TV チューナーとアナログ TV チューナーに対する Automation サポートを提供します。Windows XP Home Edition と Windows XP Professional に対してのみ、新しい条件アクセス機能をサポートします。Guide Store は EPG や他の情報の容易な保存と取得を提供します。

**ビデオ ミキシング レンダラ (VMR)

  • Windows XP Home Edition と Windows XP Professional のみ
    新しいビデオ ミキシング レンダラ フィルタはビデオ再生のパフォーマンスの改善し、TV や DVD アプリケーションの開発者に対し拡張されたビデオ機能を提供します。ビデオ アプリケーションからグラフィックス ハードウェアの 3D 能力を利用可能にすることによって、それはまた新しい描画能力をも可能にします。

Windows XP Home Edition と Windows XP Professional に対するその他の新しいフィルタ

ビデオ ミキシング レンダラは以前のビデオ レンダラとは別のインターフェイスを提供しますから、VMR のアップストリームに接続するフィルタは新しいバージョンと再実装すれば、新しいインターフェイスを利用できます。以下の新しいフィルタは VMR が利用可能な場合にのみ使用可能です、Video Port Manager, Line 21 Decoder 2, WST Decoder 2.。

Windows XP Home Edition と Windows XP Professional は D-VHS と MPEG カムコーダ デバイス、MSTape用の新しい WDM ドライバを提供します。DirectShow アプリケーションは、ドライバとコミュニケーションするソフトウェア インターフェイスを通してこれらのデバイスにアクセスします。

新しい MPEG-2 トランスポートとプログラム ストリーム サポート
MPEG-2 デマルチプレクサがプッシュ モデル、プル モデル両方で MPEG-2 トランスポート ストリームとプログラム ストリームをサポートするようになりました。以前 MPEG-2 プログラム ストリームをプルモードで処理していた MPEG-2 スプリッタ フィルタは Microsoft Windows XP Home Edition と Windows XP Professional では使われません。

ヘッダー ファイルにおける Windows XP サポート
DirectX 8.1 は以下の Windows プラットフォームをサポートします。

  • Windows 98、Windows 98 Second Edition、Windows Millennium Edition
  • Windows 2000
  • Windows XP Home Edition and Windows XP Professional

Windows XP Home Edition と Windows XP Professional では以前のシステムでは提供されない新しい機能を追加しているので、\DXSDK\include ディレクトリのヘッダーの多くはアップデートされ、完全な下位互換性を持ちながら開発者が必要なときこの機能を使えるようにしています。これは関連するヘッダーファイルに対し以下のコンパイラ条件命令を追加することで実現しています。


#if (WINVER >= 0x501)
    // Windows XP の内容
#else
    // 以前のWindowsの内容
#endif

Windows XP Home Edition と Windows XP Professional 機能を利用可能にし、新しいヘッダー部分を利用可能にするには、Visual C++ プロジェクト ファイルの Windows バージョンを 0x501 (Windows XP Home Edition と Windows XP Professional バージョン) に設定して下さい。Windows バージョンが 0x501 より小さい場合、オリジナルの DirectX 8.0 の内容が使用され、DirectX 8.0 SDK との完全な下位互換性が確保されます。同様な改善が \DXSDK\include\DShowIDL ディレクトリのインターフェイス 定義 ファイル (IDL)にも行われています。

詳細情報は Samples\DirectShow と Samples\DirectShow_WinXP ディレクトリを参照してください。

Windows XP ベースのアプリケーション用の新しいサンプル

Windows XP Home Edition と Windows XP Professional では以前のシステム (Windows 9x、Windows 2000) にはない新しい機能を提供します。DirectShow_WinXP ディレクトリには新しいビデオ ミキシング レンダラと新しい Microsoft ビデオ コントロールを使ったデモ サンプルが提供されています、これらは Windows Driver Model と Broadcast Driver Architecture を使用しています。新しいサンプルには以下の内容が含まれています。

  • ビデオ コントロール - Windows アプリケーションで ATSC、VB、アナログ TV のレンダリング方法を示す C++、Visual Basic、HTML のサンプル。新しい ビデオ コントロールは新しい機能の多くをカプセル化しており、VT 表示するアプリケーションの開発を容易にします。
  • ビデオ ミキシング レンダラ (VMR)
    • Cube
    • Renderless
    • Text Player
    • VMR Mix
    • VMR Player
    • VMR Exclusive Mode (VMRXcl)

新しいサンプルについてのより詳細な情報は DirectShow_WinXP を参照してください。

DirectX 8.1 の新しいサンプルと改善されたサンプル

DirectX 8.1 では DirectShow に優れた新しいサンプルが追加され、さらに既存の DirectX 8.0 サンプルに多くの強化改善が行われました。既存のサンプルへの改善には以下のものがあります。

  • 新機能
  • いくつかのバグフィックス、これには Windows XP Home Edition と Windows XP Professional サポートの問題も含まれます。
  • UNICODE と IA64 のサポート
  • ワーニング レベル 4 によりクリーン コンパイル
  • ジュークボックス スタイルのアプリケーションに対するビデオ ウィンドウ再描画の改善
  • リソースファイルとバージョン情報ブロックのアップデート
  • デジタル ビデオ サンプル (Capture\DVApp) ではグラフ構築に ICaptureGraphBuilder2 を使うよう書き直されました。

DirectX 8.1 用の新しいサンプル:

  • Audio Capture (Capture\AudioCap)
  • DMO-enabled Player (Players\PlayDMO)
  • DMO Enumerator (Misc\DMOEnum)
  • Filter Mapper (Misc\Mapper)
  • Sample Grabber Filter (Filters\Grabber) (modified from DX8 version)
  • PlayCap with Moniker (Capture\PlayCapMoniker)
  • Still Image Viewer (Players\StillView)
  • DirectShow\Common ディレクトリ内のユーティリティ コードとルーチン

ドキュメントのアップデート

DirectShow ドキュメントは DirectX 8.1 でかなり改善されました。Windows XP Home Edition と Windows XP Professiona で利用可能な新機能の情報が追加され、以前からあった Microsoft TV Technologies の資料を拡充しました。

SampleGrabber フィルタ ソース コードの修正

ポピュラーな SampleGrabber フィルタのソースコードを公開するよう Microsoft にいくつかの要求がありました。そこで SampleGlabber フィルタの(より単純な)バージョンを提供します、これは新しい GUID と新しい CLSID を使ってオリジナルの DirectX 8.0 フィルタとの衝突を避けています。このフィルタのソースコードをよく調べて修正し、自身のアプリケーションへの使用が可能です。詳細情報は Filters\Grabber を参照してください。

ランタイムの改善

DirectX 8.1 バイナリ ファイルと再頒布ファイルには DirectX 8.0 リリース以降のいくつかのバグフィックスが行われています、これには Windows XP Home Edition と Windows XP Professional 用に作成した修正の大きなサブセットも含まれています。

GraphEdit アプリケーションのアップデート

GraphEdit ユーティリティは、特にユーザーインターフェイス、メニュー、ツールバーに以下に示すいくつかの改善が行われています。

  • コードをリサイズするグラフ (View->xxx %) はすべてのサイズを正しく処理し、メニュー、キーボードの +/- キー、Ctrl + マウスホイルを使用してグラフをリサイズできます。
  • シークバーは GraphEdit でフィルタをデバッグするときに問題となることがわかっています、そのシークバー (とそのタイムアップデート)を無効にできます。
  • スクリーンの実際のestateを保存するために、GraphEdit 内のソースとフィルタ ライタ フィルタはフィルタ名としてその対応するファイル名だけを表示するようになりました。たとえば「C:\DXSDK\samples\Multimedia\Media\lake.mpg」ファイルのファイルソースを「lake.mpg」と表示します。