DirectX 8.0 の紹介

Philip Taylor
Microsoft Corporation

November 9, 2000

「Driving DirectX」にようこそ。今月は、Microsoft® DirectX® 8.0 の機能についての詳細な調査を開始し、新バージョンが用意する開発者向けの便利な機能の概要を紹介します。DirectX 8.0 ランタイムと SDK をダウンロードできるリンクは、DirectX Developer Center にあります。DirextX 8.0 は、これまでの DirectX で最も意欲的なリリースです。新機能の詳細なリストが、その主張を裏付けています。

はじめに

DirectX の機能を大幅に拡張する大型新機能が、DirectX 8.0 のすべてのコンポーネントに導入されました。グラフィックス、オーディオ、およびネットワークの 3 つのコンポーネントが大幅に書き換えられています。DirectInput® には、新たな構成機能とアクション マッピングが導入され、インターナショナル サポートが強化されています。そして、このバージョンから、DirectShow® が DirectX のランタイムと SDK の両方に含められています。

DirectX 8.0 に導入された新機能を簡単に紹介します。

  • DirectX Graphics - DirectDraw と Direct3D の統合
    Microsoft DirectDraw® と Microsoft Direct3D® は、DirectX Graphics という単一のコンポーネントに統合されました。API は大幅に更新され、使いやすくなり、最新のグラフィックス ハードウェアをサポートしています。最も強調すべき新機能は、プログラマブル シェーダーのサポートです (シェーダーとは、プログラマブル頂点パイプライン、またはプログラマブル ピクセル パイプラインのいずれかで使用されるシェーディング言語で記述されたコードの一部です)。

  • DirectX Audio - DirectMusic と DirectSound の統合
    Microsoft DirectMusic® と Microsoft DirectSound® は、新たな DirectX Audio コンポーネントで緊密に統合されています。これにより、WAV ファイルやその他のリソースを DirectMusic ローダーで読み込み、DirectMusic パフォーマンスを通じて再生し、MIDI ノートに同期させることができます。

  • スケーラビリティとパフォーマンスを向上させる DirectPlay の更新
    Microsoft DirectPlay® コンポーネントが大幅に更新され、操作性と、とりわけスケーラビリティとパフォーマンスの面で、機能が向上しました。さらに、DirectPlay はプレーヤ間の音声によるコミュニケーションをサポートしています。

  • DirectInput のアクション マッピング
    Microsoft DirectInput には、アクション マッピングという大型の新機能が導入されています。アクション マッピングにより、入力アクションと入力デバイス間に、特定のデバイス オブジェクトの存在に依存しない関係を確立できます。これで、入力デバイスの処理が簡略になります。

  • DirectShow の DirectX への編入
    Microsoft DirectShow が新たに DirectX に加わり、このリリースで更新されました。 新機能がサポートするコンポーネントについて詳しく説明します。

少しの間各コンポーネントをより詳細にチェックして、新しくサポートされた機能強化を理解しましょう。

DirectX 8.0 Graphics

多くの新機能とパフォーマンス拡張機能が DirectX 8.0 Microsoft Direct3D® API インターフェイスの一部として追加されました。

  • DirectDraw と Direct3D の完全な統合

  • プログラマブル頂点処理言語

  • プログラマブル ピクセル処理言語

  • マルチサンプリング レンダリングのサポート

  • ポイント スプライト

  • 3D ボリューム テクスチャ

  • 高次プリミティブのサポート

  • さまざまな D3D 用 3D コンテンツ作成ツールのサポート

  • インデックス型頂点ブレンディング

  • Direct3DX ユーティリティ ライブラリの拡張

DirectX Graphics における著しい変更の一つは、DirectDraw (2D グラフィックス用インターフェイス) と Direct3D (3D グラフィックス用インターフェイス) が 1 つの共通インターフェイスに統合されたことです。DirectDraw と Direct3D は、これまでかなり長い間共存していました。独立した 2 つのインターフェイスへの分割がさらに人為的になったのはそのためです。この新たな統合により、初期化と Direct3D コアの制御が簡略化され、操作がよりわかりやすくなりました。アプリケーションの初期化が簡略された以外にも、この変更により、データ配置と管理パフォーマンスが向上し、メモリのフットプリントが低減します。インターフェイス統合のもう一つの理由は、DirectDraw の開発が停止同然であったことです。DirectX 6.0 および DirectX 7.0 の両方において、DirectDraw に加えられた変更はすべて表面的なものでした。図 1 は、新しい Direct3D アーキテクチャを示します。

diagram

図 1. DirectX 8.0 Graphics アーキテクチャ

グラフィックス API の統合により、ダイナミックなアプリケーション データ構造へのさらに柔軟なマッピングを実現する、パラレル頂点入力ストリームに対応します。

DirectX 8.0 における Direct3D の更新で最も重要な機能は、おそらくプログラマブル シェーダーの追加でしょう。言語が大幅にスケールアップし、今後数年間のグラフィックス ハードウェアに新機能が急増すると考えると、シェーディング用の小さな言語を追加するという選択は、何倍も大きなメリットをもたらすことになります。シェーディング言語は、頂点処理とピクセル処理の両方に用意されます。

このプログラマブル頂点処理言語により、プログラマは次のハードウェア シェーダーを記述できます。

  • モーフィング/トウィーニング アニメーション

  • マトリックス パレット スキニング

  • ユーザー定義のライトニング モデル

  • 全般的な環境マッピング

  • プロシージャル ジオメトリ

  • その他の開発者定義のアルゴリズム

プログラマブル ピクセル処理言語により、プログラマは次のカスタム ハードウェア シェーダーを記述できます。

  • 一般的なテクスチャの組み合わせ表現

  • ピクセル単位のライティング (バンプ マッピング)

  • ピクセル単位の環境マッピング (フォトリアルなスペキュラ エフェクト)

  • その他の開発者定義アルゴリズム

頂点およびピクセル操作用のシェーディング言語の追加が、頂点パイプラインのトランスフォームとライトニング用、およびピクセル パイプラインのマルチテクスチャリング用の "古い" 方式と共存していることに注意してください。図 2 は、DirextX 8.0 グラフィックス パイプラインを示します。

diagram

図 2. 新方式と旧形式をサポートする DirectX 8.0 グラフィックス パイプライン

その他の便利な機能により、さまざまな特殊効果を容易に実装できます。マルチサンプル レンダリングでは、フルシーン アンチエイリアシングや、モーション ブラー、被写界深度などのマルチサンプリング効果が利用できます。ポイント スプライトでは、火花、爆発、雨、雪など、粒子系のレンダリングに高いパフォーマンスを発揮します。ボリューム テクスチャでは、パーピクセル ライトニングおよびボリューメトリック空間効果で範囲減衰が有効になり、さらに複雑なジオメトリを適用できます。

高次プリミティブのサポートにより、3D コンテンツの外観がよくなり、主な 3D オーサリング ツール製のコンテンツのマッピングが容易になります。さらに、DirectX 8.0 グラフィックスには、3D コンテンツ作成ツール プラグインが含まれており、スキン メッシュを .X ファイルにエクスポートして、Direct3D (さまざまな Direct3D テクニックを使用)、マルチレゾリューション LOD (level-of-detail) ジオメトリ、および高次サーフェス データで使用できます。インデックス型頂点ブレンディングにより、ジオメトリ ブレンディング サポートが拡張され、頂点ブレンディングに使用されるマトリックスをマトリックス インデックスを使って参照できるようになります。

Direct3DX (D3DX) ユーティリティ ライブラリの Direct3D の最上位に位置するヘルパ レイヤに豊富な新機能が追加され、3D グラフィックス開発者に発生する共通の作業を簡略化します。D3DX には "スキニング" ライブラリ、メッシュ操作のサポート、および頂点シェーダーとピクセル シェーダーをまとめる関数が含まれます。Microsoft DirectX 5.0 で初めて導入された D3D_OVERLOADS が提供する機能は、D3DX ユーティリティ ライブラリに移行しています。

DirectX Audio

Microsoft DirextX 8.0 Audio では、音楽と効果音が統合再生される新たなアーキテクチャを提供します。Microsoft DirectSound およびMicrosoft DirectMusic という名前は引き続き使用されますが、これら 2 つの間に明確な違いはなくなりました。対話的な効果音を作成するには、DirectMusic API を選択することになります。

DirextX 8.0 Audio の新機能には次のようなものがあります。

  • .wav ファイルとメッセージベースのサウンドの単一再生メカニズムへの統合

  • 各セグメント状態の個別制御など、より柔軟かつ強力なオーディオパス モデル

  • 特殊効果など、DLS2 シンセサイザ

  • オーディオ スクリプティング

  • DirectMusic Producer プロジェクトの全コンポーネントを 1 つのファイルに保存するための、コンテナ オブジェクト

  • 演奏、セグメント、およびトラックに対する制御の向上

新しいオーディオ アーキテクチャでは、DirectMusic シンセサイザを DirextX 8.0 Audio のメイン サウンド ジェネレータとして扱います。高度に最適化された DLS2 (Downloadable Sounds Level 2) シンセサイザが、すべてのサウンドを作成し、それらをサブミックスして、その結果を DirectSound バッファに送り、さらなる処理が施されます。DirectMusic シンセサイザは、複数のボイスを出力前にサブミックスすることもできます。これにより、1 つの DirectSound3D バッファだけを使って CPU 使用率と 3D ハードウェア要件を最低限に抑えながら、同じオーディオ効果で複数のサウンドを処理して、同じ 3D 空間内の場所に配置できます。新しいオーディオ アーキテクチャの模式図については、図 3 を参照してください。

diagram

図 3. DirectX 8.0 Audio アーキテクチャ

.wav ファイルとリソースは、DirectMusic ローダーによりロードされ、DirectMusic パフォーマンスにより再生できるようになりました。アプリケーションは .wav ファイルを解析して DirectSound バッファにコピーまたはストリーミングする必要はなくなります。.wav ファイル再生のタイミングは、DirectMusic マスタ クロックを基準とし、.wav ファイルをミュージカル イベントに同期させたり、その他のセグメントと同様にツールで処理したりすることができます。DirectSound API は引き続きサポートされるので、DirectSound バッファから直接 .wav ファイルを再生することもできます。DirectSound は.wav ファイル キャプチャとフルデュプレクス用の API として継続します。

以前のバージョンの DirectMusic では、パフォーマンス チャンネルがポートにマップされ、各ポートが出力を単一の DirectSound バッファに送信していました。新しいモデルでは、セグメント内のチャンネルは、パフォーマンスから最終出力へのデータ フローを制御するオーディオパスにマップされます。シンセサイザからの出力は、それぞれが固有の 3D ポジショニングとエフェクトを持った、複数の再生バッファに送信できます。オーディオパスは、アプリケーションから動的に作成したり、セグメントに作成できます。セグメントの再生インスタンスはそれぞれ独自のオーディオパスを持つことができるので、各セグメント状態のボリューム、パン、およびピッチ ベンドなどのパラメータを個別に変更できます。

DirectMusic シンセサイザは DLS2 標準に基づいており、高音質のシンセサイザを提供します。DLS2 シンセサイザの新機能には、6 ステージのエンベロープ、ボイスのレイヤ化、リリース ウェーブフォーム、および追加の LFO (低周波オシレータ) などがあります。それぞれのボイスにはオプションのローパス レゾナント フィルタがあります。新しいオーディオ アーキテクチャの一部として、DLS2 シンセサイザは、次の機能を含む効果音を容易に再生できます。

  • 任意のループ ポイント

  • ボイスごとのフィルタ

  • サブミックス

  • 自動ストリーミング再生

  • 再生用 ACM コーデックの統合

  • エフェクト プロセッシング バス

  • 容易な .wav ファイル ロード

作曲やサウンド デザインを行う場合、スクリプトを使うことで、演奏に対するコントロールを高めることができます。アプリケーションは再生の詳細を処理しませんが、その代わりにスクリプトを呼び出します。たとえば、ゲーム イベントをトリガとしてスクリプト関数を呼び出すことができます。スクリプト作成者は、関数を変更することで、ゲーム イベントに対するサウンドトラックの応答を容易に変更できます。

DirectMusic Producer プロジェクトのすべてのコンポーネントは、1 つのファイルに保存されるので、すべてのオブジェクトの検索とロードを容易に行うことができます。また、コンテナをセグメントに埋め込むことができるので、セグメントの再生に必要なすべてのものをセグメント内に格納できます。

DirextX Audio には、パフォーマンス、セグメント、およびトラックに対するより高機能なコントロールが含まれています。パフォーマンス通知イベントには、DMUS_NOTIFICATION_MUSICALMOSTEND という新たな通知タイプが追加されます。これは、キューの最後のプライマリ セグメントがもうすぐ終了することを示します。この通知により、アプリケーションは新しいセグメントのスケジュールを設定する機会を得ることができます。

セグメントの新機能として、作曲時にセグメントが再生を開始する場所をセグメント内に指定できます。これにより、セグメントは拍子記号との関係を維持できます。プライマリ セグメントには、ほかのセグメントを挿入可能な任意のポイントを含めることができます。これにより、最も近い小節、拍、グリッドへの挿入よりもきめ細かなコントロールが可能です。新しい セグメント挿入フラグの DMUS_SEGF_SEGMENTEND を使うと、現在のプライマリ セグメントが再生を終了するときにセグメントを再生できます。別の新しいフラグの DMUS_SEG_REPEAT_INFINITE を使うと、時間を指定せずにセグメントを再生できます。

トラックについては、新しい構成と再生フラグを使って、セグメントが再生またはループするごとに、トラックのアレンジを変更することができます。たとえば、コードマップ トラックを構成して、セグメントを再生するごとに新しいコード進行を確立することができます。アプリケーションはトラック構成を個別に設定して、再生とパラメータ コントロールを無効にできます。また、ミュージック タイムではなくクロック タイムで操作するようトラックを構成できます。セルフコントロールするセグメント内のトラックを構成して、コントロール セグメントまたはプライマリ セグメント内のパラメータ トラックをオーバーライドすることもできます。歌詞トラックを含むセグメントにより、タイムスタンプ付きのテキストがパフォーマンスに送信されます。

新たに追加されるオーディオ機能のすべてをここで紹介することはできません。オーディオに関心がある方にとって、DirextX 8 オーディオは非常に便利な機能を備えています。SDK のマニュアルとサンプルを参照してください。

DirectX 8.0 DirectPlay

DirectPlay は、アプリケーションと通信サービス間の高レベルなインターフェイスです。インターネット、電話回線、またはネットワーク経由でゲームを容易に接続できます。DirectPlay は、高度なトランスポート レベルのサービス (保証付き配信と無保証配信、低速リンクのトラフィック スロットリング、接続切断検出など) とセッション レベルのサービス (プレーヤ ネームテーブル管理、ピア ツー ピア ホスト移行など) を用意しています。図 4 は、DirectPlay アーキテクチャの模式図です。DirectPlay が、いかにして通信サービス プロバイダからの独立性を提供するかを示します。

diagram

図 4. DirectPlay アーキテクチャ

DirectX 8.0 の Microsoft DirectPlay API に導入された新機能は次のとおりです。

  • インターフェイスが完全に書き換えられました。

  • ロビー機能が DirectPlay の残りの部分から完全に独立しました。

  • 音声転送が追加されました。

  • アドレッシング情報が GUID ベースのデータから URL ベースのデータ形式に移行しました。

  • スケーラビリティとメモリ管理が強化されました。

  • ファイアウォールと NAT (Network Address Translator) のサポートが強化されました。

ネットワーク対応アプリケーションの作成は複雑ですが、ピア ツー ピア セッションとクライアント サーバー セッションの作成用インターフェイスを分割することで、これが劇的に簡略化されました。DirectPlay トランスポート セッション作成用インターフェイスは次のとおりです。

  • IDirectPlay8Peer - ピア ツー ピア セッション作成用メソッドを提供します。

  • IDirectPlay8Client - クライアント サーバー アプリケーションのクライアント部分作成用メソッドを提供します。

  • IDirectPlay8Server - クライアント サーバー アプリケーションのサーバー部分作成用メソッドを提供します。

DirectPlay では、ロビー クライアントが DirectPlay アプリケーションでのみ動作するという要件を削除しました。これにより、ロビー サービス プロバイダとアプリケーションの両方が、互いを意識することなく DirectPlay を実装できます。ロビーの実装は、次の 2 つの簡略化されたインターフェイスに分割されています。

  • IDirectPlay8LobbyClient - ロビー クライアントを管理し、ロビー対応アプリケーションを列挙および起動します。

  • IDirectPlay8LobbiedApplication - ロビー対応アプリケーションをシステムに登録し、ロビーを起動できるようにします。ユーザーに問い合わせることなくゲームを起動できるように、ロビーから接続情報を取得するのにも使用されます。

DirectPlay Voice は、アプリケーションにリアルタイムの音声通信を追加する一連のインターフェイスを用意しています。音声をサポートするのは次の新しいインターフェイスです。

  • IDirectPlayVoiceClient - DirectPlay Voice セッションでクライアントを作成および管理するメソッドを提供します。

  • IDirectPlayVoiceServer - DirectPlay Voice セッションのホストとして機能し管理するメソッドを提供します。

  • IDirectPlayVoiceTest - クライアント マシンでのオーディオ セットアップのテストに使用されます。

図 5 は、DirectPlay Voice の使用時に利用可能なコンポーネントを示します。

diagram

図 5. DirectPlay Voice コンポーネント

これまでのバージョンの DirectPlay では、GUID アドレス型のバイナリ データ チャンクを使用しており、実装と読み取りが困難でした。DirextX 8.0 では、DirectPlay はURL 形式のアドレス表現を導入しています。新しいアドレス表現形式を作成および操作するには、次の新しいインターフェイスを使用します。

  • IDirectPlay8Address - DirectPlay アドレスの作成および操作に使用する汎用のアドレッシング メソッドを提供します。

  • IDirectPlay8AddressIP - IP プロバイダ固有のアドレッシング サービスを提供します。

DirextX 8.0 では、DirectPlay は大幅に改造され、高度なパフォーマンスとスケーラビリティを提供できるようになりました。家庭用帯域幅の増加は、ネットワーク ゲームのデザインと実装に大きな影響を与えました。DirectPlay のスレッドプール管理が強化されたことで、開発者は、同時に多数のオンライン プレイヤーをサポート可能な、スケーラブルかつ堅牢なアプリケーションを容易にデザインできます。

NAT、ファイアウォール、およびその他のICS (Internet Connection Sharing) 方式を横断するネットワーク ゲームを記述するのは、とりわけ保証のない (UDP) トラフィックの場合は面倒です。DirextX 8.0 では、DirectPlay はこれらの問題を念頭に置いて開発されており、可能な限りの NAT ソリューションをサポートします。DirectPlay TCP/IP サービス プロバイダは、ゲーム データ用に開発者が選択可能な単一の UDP ポートを使用します。これにより、ファイアウォールと NAT を適切に構成できます。さらに、DirectPlay は、クライアント サーバー ゲームで UDP を使用して、NAT の背後に位置するクライアントが追加の構成を使用せずにゲームに接続できるようにします。

DirectX 8.0 DirectInput

DirectInput は、ジョイスティック、ヘッドギア、マルチボタン マウス、フォース フィードバック デバイスなど、さまざまな入力デバイス用に最新のインターフェイスを提供します。デバイス ドライバに直接働きかけることで、DirectInput は Windows メッセージング システムをバイパスして、最高のパフォーマンスを実現します。

DirextX バージョン8.0 の Microsoft DirectInput API に導入された新機能は次のとおりです。

  • アクション マッピング

  • 国際化アプリケーションのサポートの向上

  • 新規インターフェイス作成のサポート

  • ジョイスティック スライダ データへの変更

アクション マッピングは、入力デバイスのサポートを前進させる大きな一歩です。アクション マッピングにより、入力ループが簡略化され、カスタム ゲーム ドライバ、カスタム デバイス プロファイル、およびカスタム構成ユーザー インターフェイスのゲームにおける必要性が減少します。また、アクション マッピングには、ユーザーがデバイスを迅速かつ簡単に構成できる、既定のユーザー インターフェイスが含まれています。この標準 API は、独自のカスタム ユーザー インターフェイスで使用するデバイス イメージに、アプリケーションが直接アクセスできる、低レベル ユーザー インターフェイス API により実装されます。

DirextX 8.0 における DirectInput デバイスは、インターナショナル キーボードでローカライズされたキー名文字列を処理する新しいプロパティをサポートしています。ローカライズされたキー名を取得する DIPROP_KEYNAME、およびスキャン コードを取得する DIPROP_SCANCODE という、2 つのキーボード プロパティが追加されました。これらの機能は、全世界に出荷される DirectInput ベースのアプリケーションのほとんどに便利です。

DirectInput オブジェクトは、IDirectInput8 インターフェイスにより表されます。新しいヘルパ関数である DirectInput8Create は、オブジェクトを作成してこのインターフェイスを取得します。IDirectInput8 には新しい CLSID が付加されました。DirextX の以前のバージョンでは、クラス CLSID_DirectInput のオブジェクトへのインターフェイスに QueryInterface を呼び出して取得することができましたが、このバージョンでは取得できません。

ジョイスティック スライダ データは、以前の DirextX の以前のバージョンの DIJOYSTATE または DIJOYSTATE2 構造体の Z 軸に割り当てられていましたが、このバージョンでは、同じ構造体の rglSlider 配列にあります。この変更により既存のコードを調整するありますが、長期的にみると大きな意味があります。

DirectX 8.0 DirectShow

DirectShow もこのリリースで大幅な改造が施されました。DirextX 8.0 に追加された新機能には、次のようなものがあります。

  • フィルタ グラフの新機能

  • Windows Media Format のサポート

  • ビデオ編集機能のサポート

  • DVD の新規サポート

  • MPEG2 トランスポートおよびプログラム ストリームの新規サポート

  • ブロードキャスト ドライバ アーキテクチャのサポート

  • DirectX Media Object

フィルタ グラフ マネージャは、動的グラフ構築およびライブ ソース同期などの新機能をサポートします。動的グラフ構築では、フィルタ グラフの実行中にグラフに変更を加えることができます。以前のバージョンでは、フィルタを追加または削除するには、アプリケーションはグラフを停止する必要があり、データの流れが中断されます。また、DirectShow がライブ ソースの同期化をサポートします。たとえば、ライブ オーディオ ストリームをライブ ビデオ ストリームと同期させることができます。

2 つの新しいフィルタにより、DirectShow アプリケーションは、Microsoft Windows Media Format のファイルを読み取りおよび書き込みできます。ASF Reader フィルタは、Windows Media Format ファイルを読み取って解析します。ASF File Writer フィルタは、Windows Media Format ファイルを書き込み、必要な多重化や圧縮も実行します。Microsoft Windows Media Format ストリームを作成および再生するアプリケーションを作成するにあたって、DirectShow と Windows Media SDK は相補的なソリューションを提供します。

新しい DirectShow Editing Services (DES) API は、ビデオ編集をサポートします。コア DirectShow アーキテクチャの上位に構築された DES は、ビデオ編集プロジェクトの操作用に特別にデザインされたインターフェイス群を提供します。アプリケーション開発者は、ビデオ編集アプリケーションの作成に最適なフレームワークの内部にあるDirectShow のメリットを享受できます。カットリストのサポートは終了しましたが、DES はカットリストの代わりとして機能します。

IDVDControl2 および IDVDInfo2 という 2 つの新規インターフェイスが、DVD Navigator の機能を大幅に拡張します。DVD Navigator は、DVD Annex-J コマンド セットを完全に実装し、ビデオ ディスクやカラオケを再生できます。新しい MSWebDVD ActiveXR コントロールは、この機能をスクリプト ベースのアプリケーションで利用できるようにします。

新しいフィルタの MPEG-2 Demultiplexer は、プッシュ モード (ライブ ソースからのデータ受信) のMPEG-2 トランスポート ストリームとプログラム ストリームのサポートを提供します。フィルタ グラフによるライブ ソース同期化の新規サポートと組み合わせることで、MPEG-2 サポートのさらなる拡張を実現します。

Microsoft Broadcast Driver Architecture (BDA) は、新世代のデジタル/アナログ TV チューナー デバイスの仕様です。DirectX 8.0 では、DirectShow は、カーネル モード デバイス フィルタの新セットと "BDA チューニング モデル" を備えた BDA 準拠デバイスをサポートします。"BDA チューニング モデル" は、あらゆる種類のデジタル/アナログ ネットワークに対して一貫性のあるチューニング体系を提供します。

DirectX Media Object (DMO) は、データ ストリーミング コンポーネントの新たな作成方法を提供します。DirectShow フィルタと同様に、DMO は入力データをとり、これを使って出力データを作成します。ただし、DMO API は、DirectShow の対応する API よりもはるかにシンプルです。結果的に、DMO は、DirectShow フィルタと比較して、作成、テスト、使用が容易です。DMO は DirectShow と完全な互換性があります。グラフ同期化、インテリジェント接続、データ フローの自動処理、スレッド管理など、DirectShow が提供するサービスが必要なときに、DMO をフィルタとして使うことができます。ただし、DMO はフィルタ グラフを必要としないので、アプリケーションは DirectShow を使わずに DMO を使うことができます。

DirextX 8.0 リリースの DirectShow にはもっと多くの機能が含まれていますが、スペースが足りなくて扱うことができません。DirectShow の新機能と拡張機能をぜひチェックしてください。

終わりに

DirextX 8.0 は、マルチメディア開発者にとってうれしい機能が満載で、非常に魅力的なリリースです。興味の対象が 3D グラフィックス、オーディオ、ネットワーク、ビデオのいずれであるにせよ、その新機能が含まれています。Microsoft 社では、DirextX 開発者コミュニティが、DirextX 8.0 を利用した世界規模のアプリケーションを来年にかけて出荷するのを楽しみにしています。今すぐ DirectX Developer Center で DirectX 8.0 をダウンロードしてください。

Microsoft では、同じ志を持つ開発者が情報を共有するためのフォーラムとして、活発なメーリング リストを運営しています。

Philip Taylor は DirectX の普及にたずさわる Senior SDE です。DirectX 1 の最初のパブリック ベータの段階から DirectX に手を染め、かっては実際に DirectX 2 ゲームを開発したこともあります。時間に余裕があるときは、さざまな 3-D グラフィックス プログラミング メーリング リストで彼に出会うことがあるかもしれません。

DirectX Driving コラム アーカイブ