次の方法で共有


DirectX を使用した高忠実度グラフィックス

Windows アプリケーション開発者は、Microsoft DirectX を長い間使用して、高品質のハードウェア アクセラレータを使用した 3D グラフィックスを提供してきました。 このテクノロジが 1995 年にデビューしたとき、開発者は、ゲーマーや専門家が 3D グラフィックス ボードに追加料金を支払うことをお考えであれば、ゲームやエンジニアリング アプリケーションに高品質の 3D グラフィックスを提供できます。 現在、最も安価な PC にも、対応する 3D グラフィックス ハードウェアが含まれています。

これらのグラフィックス機能を利用するために、Windows Vista は DirectX 用の Windows ディスプレイ ドライバー モデル (WDDM) インフラストラクチャを導入しました。これにより、複数のアプリケーションとサービスでグラフィックス処理装置 (GPU) のリソースを共有できるようになりました。 デスクトップ ウィンドウ マネージャー (DWM) は、このテクノロジを使用して、タスクの切り替えを 3D でアニメーション化し、アプリケーション ウィンドウの動的サムネイル 画像を提供し、デスクトップ アプリケーションに Windows Aero ガラス効果を提供します。

Windows 7 では、さらに多くのグラフィックス機能がアプリケーション開発者の手に届きます。 Microsoft Win32 開発者は、新しい DirectXAPIs のセットを通じて、GPU の最新のイノベーションを活用して、高速でスケーラブルで高品質の 2D および 3D グラフィックス、テキスト、画像をアプリケーションに追加できます。 最新の LCD ディスプレイでは、DirectXAPIs では、カラー コンポーネントごとに 8 ビットを超える色深度を使用して、デスクトップとウィンドウのコンテンツを表示できます。

DirectX を使用すると、Win32 開発者は、画像処理などの汎用計算に GPU の並列処理を使用することもでき、DirectX 10 ハードウェア、DirectX 9 ハードウェア、CPU、またはリモート Windows コンピューターにレンダリングすることもできます。 これらのテクノロジは、Windows グラフィックス デバイス インターフェイス (GDI) および Windows GDI+ と相互運用できるように設計されており、開発者は Win32 コードへの既存の投資を簡単に維持できます。 (2009 年 3 月の DirectX SDK 新機能を参照してください)。

これらの強化されたグラフィックス機能は、次の COMベースの API によって提供されます。

Direct2D

Microsoft Direct3D 10 上に構築された Direct2D は、次世代グラフィックス ハードウェアの機能を使用する Win32 開発者の即時モード、解像度に依存しない 2D API を提供しますが、現在の GDI/GDI+ アプリケーションや Direct3D 10 アプリケーションと十分に相互運用できます。 Direct2D は、GDI および GDI+ よりも優れたパフォーマンスを備えた高品質の 2D レンダリングを提供します。 これにより、Win32 開発者はリソースとその管理を細かく制御できます。 (Direct2D を参照してください)。

DirectWrite

今日のアプリケーションの多くは、高品質のテキスト レンダリング、解像度に依存しないアウトライン フォント、完全な Unicode テキストとレイアウトのサポートをサポートする必要があります。 新しい DirectX コンポーネントである DirectWrite には、次のような機能があります。

  • ドキュメントおよび UI でのテキストの読みやすさを向上させる、デバイスに依存しないテキスト レイアウト システム。
  • GDI、Direct2D、またはアプリケーション固有のレンダリング テクノロジを使用できる、高品質、サブピクセル、ClearType テキスト レンダリング。
  • Direct2Dで使用する場合は、ハードウェアで高速化されたテキスト。
  • 複数形式のテキストのサポート。
  • OpenType フォントの高度な文字体裁機能のサポート。
  • サポートされているすべての言語でのテキストのレイアウトとレンダリングのサポート。
  • GDI 互換のレイアウトとレンダリング。

DirectWrite フォント システムを使用すると、"任意の場所に任意のフォント" フォントを使用できます。ユーザーは、フォントを使用するためだけに別のインストール手順を実行する必要はありません。また、フォントグループ化の構造階層が改善され、手動またはプログラムによるフォント検出に役立ちます。 API は、複数形式のテキストの測定、描画、ヒット テストをサポートしています。 DirectWrite は、Windows 7 で見つかった主要な言語インフラストラクチャに基づいて、グローバルおよびローカライズされたアプリケーションでサポートされているすべての言語でテキストを処理します。 DirectWrite には、独自のレイアウトと Unicode からグリフへの処理を実行する開発者向けの低レベルのグリフ レンダリング API も用意されています。 (DirectWrite を参照してください)。

Windows イメージング コンポーネント

Windows Vista では、Windows イメージング コンポーネント イメージとイメージ メタデータを操作するための拡張可能なフレームワークが導入されました。 Windows イメージング コンポーネントでサポートされる画像形式には、JPEGPNGTIFFが含まれます。サポートされるメタデータ形式には、XMP EXIFが含まれます。 Windows 7 では、Windows イメージング コンポーネントは、プログレッシブ 画像デコード、拡張された PNG 機能、GIF メタデータ、および APPn セグメントにまたがるメタデータ サポートすることで、標準のコンプライアンスを広げます。 (Windows 7 の WIC の新機能を参照してください)。

Direct3D 11

Microsoft Direct3D 11 は、Direct3D 10 パイプラインの機能を拡張し、Windows 7 ゲームとハイエンド 3D アプリケーションに、次世代の GPU とマルチコア CPU への効率的で堅牢でスケーラブルなアクセスを提供します。 Direct3D 10 の機能に加えて、Direct3D 11 にはいくつかの新機能が導入されています。

ジオメトリサーフェスと高次サーフェスをテッセレーションして、パッチおよびサブ区分サーフェスリプレゼンテーションでスケーラブルで動的なコンテンツをサポートできるようになりました。

複数の CPU コアから使用可能な並列処理能力を十分に活用するために、マルチスレッドでは、アプリケーション、ランタイム、ドライバーの呼び出しを複数のコアに分散することで、フレームあたりの潜在的なレンダリング呼び出しの数を増やします。 さらに、リソースの作成と管理はマルチスレッド用に最適化されており、ストリーミングの動的テクスチャ管理をより効率的に行うことができます。

Direct3D 11 用に新しい汎用コンピューティング シェーダーが作成されました。 既存のシェーダーとは異なり、これらはプログラミング可能なパイプラインの拡張機能です。これにより、アプリケーションは CPU に依存せず、GPU 上でより多くの作業を完全に実行できます。 Direct3D 10 で導入された DrawAutoは、コンピューティング シェーダーと対話するように拡張されています。

高度なシェーディング言語 (HLSL) に対して、特殊化の複雑さを改善するためのシェーダーの動的リンケージの限られた形式や、クラスやインターフェイスなどのオブジェクト指向プログラミングコンストラクトなど、いくつかの改善が行われています。 (2009 年 3 月の DirectX SDK 新機能を参照してください)。

Direct3D 10 の機能強化

Direct3D 10 には、プログラミング可能なシェーダー ステージと、固定関数ステージを初期化するための不変状態オブジェクトを含む、再設計されたグラフィックス パイプラインが含まれています。 状態オブジェクトは、必要な状態変更の数を最小限に抑えることで、パイプラインを簡略化し、パフォーマンスを向上させます。 シェーダー ステージのプログラミング機能により、シェーダー命令の無制限、一般化されたシェーダー リソース、整数およびビットごとの計算をサポートする高度なシェーディング言語拡張機能が提供されるようになりました。

パイプラインにはジオメトリ シェーダー ステージも導入されています。これにより、CPU から GPU に完全に作業がオフロードされます。 この新しいステージを使用すると、ジオメトリを作成し、データをメモリにストリーミングし、CPU 操作なしでジオメトリをレンダリングできます。

その他のいくつかの機能強化は、パフォーマンスを向上させるために特別に設計されています。 述語レンダリングでは、オクルージョン カリングを実行して、レンダリングされるジオメトリの量を減らします。 インスタンス化 API は、類似したオブジェクトの複数のインスタンスを描画することで、GPU に転送する必要があるジオメトリの量を大幅に削減できます。 テクスチャ 配列を使用すると、GPU は CPU の介入なしにテクスチャ スワップを実行できます。

Direct3D 10 と Direct3D 11 には、これらの API を対象とする構成の色域を拡張するために、いくつかの追加が行われています。 Windows Advanced Rasterization Platform (WARP) は、Direct3D 10 用の高速でマルチコアのスケーラブルな CPU レンダリングを実装し、グラフィックス ハードウェアのないシステムでフル機能のグラフィックス レンダリングを可能にします。 Direct3D 10 レベル 9 特に呼ばれる新しい "機能レベル" を追加することで、Direct3D 10 および Direct3D 11 API が Microsoft Direct3D 9 クラス ハードウェアを駆動し、Direct3D 10 または Direct3D 11 アプリケーションが市場のほぼすべてのコンピューター システムを対象とする構成の数を増やすことができます。 (Direct3D 10 グラフィックス を参照してください)。

DirectX/GDI の相互運用性

Windows Vista では、DirectX と GDI の両方を使用して共有サーフェイスにレンダリングするアプリケーションの動作は、DWM がオンかオフかに応じて異なります。 さらに、DWM がオンの場合、DirectX と GDI の両方を使用するアプリケーションは、Windows Vista と Windows XP の両方で動作が異なります。 これにより、一貫性のある動作を確保するために、多くの ISV が Windows Vista でアプリケーションを実行するときに DWM を無効にしました。 Windows 7 での DirectX の機能強化により、アプリケーションは DWM を無効にせずに DirectX と GDI を自由に混在させることができます。 Windows 7 では、より効率的な Direct3D 10 API を使用して DirectX と GDI の間の相互運用を必要とするシナリオのパフォーマンスも向上しています。 (「Direct2D と GDI 相互運用の概要」を参照してください)。