次の方法で共有


グラフィックスの描画層

更新 : 2010 年 10 月

描画層は、WPF アプリケーションを実行するデバイスのグラフィックス ハードウェアの機能およびパフォーマンスのレベルを定義します。

このトピックは、次のセクションで構成されています。

  • グラフィックス ハードウェア
  • 描画層の定義
  • その他のリソース
  • 関連トピック

グラフィックス ハードウェア

描画層のレベルに大きく影響するグラフィックス ハードウェアの機能は、次のとおりです。

  • ビデオ RAM グラフィックス ハードウェアのビデオ メモリの量によって、グラフィックスを合成する際に使用できるバッファーのサイズと数が決まります。

  • ピクセル シェーダー ピクセル シェーダーは、ピクセル単位で効果を計算するグラフィックス処理関数です。 表示するグラフィックスの解像度によっては、各表示フレームの処理に数百万ピクセルが必要な場合もあります。

  • 頂点シェーダー 頂点シェーダーは、オブジェクトの頂点データの算術演算を実行するグラフィックス処理関数です。

  • マルチテクスチャのサポート マルチテクスチャがサポートされていると、3D グラフィックス オブジェクトのブレンド操作を行うときに、2 つ以上の別個のテクスチャを適用できます。 マルチテクスチャのサポートの度合いは、グラフィックス ハードウェアのマルチテクスチャ ユニットの数によって決まります。

描画層の定義

グラフィックス ハードウェアの機能によって、WPF アプリケーションの表示能力が決まります。 WPF システムは、次の 3 つの描画階層を定義します。

  • 描画層 0 グラフィックス ハードウェア アクセラレータは使用されません。 すべてのグラフィックス機能で、ソフトウェア アクセラレータを使用します。 DirectX のバージョン レベルは Version 9.0 未満です。

  • 描画層 1 一部のグラフィックス機能で、グラフィックス ハードウェア アクセラレータを使用します。 DirectX のバージョン レベルは Version 9.0 以上です。

  • 描画層 2 ほとんどのグラフィックス機能でグラフィックス ハードウェア アクセラレータを使用します。 DirectX のバージョン レベルは Version 9.0 以上です。

RenderCapability.Tier プロパティを使用すると、アプリケーションの実行時に描画層を取得できます。 描画層を使用すると、特定のハードウェア アクセラレータ グラフィックス機能がデバイスでサポートされているかどうかを確認できます。 アプリケーションは、デバイスでサポートされている描画層に応じて、実行時に異なるコード パスを受け取ることができます。

描画層 0

描画層の値 0 は、デバイスのアプリケーションに使用できるグラフィックス ハードウェア アクセラレータがないことを示します。 この描画層では、すべてのグラフィックスがハードウェア アクセラレータを使用せずにソフトウェアで描画されることを想定する必要があります。 この層の機能は、DirectX の 9.0 未満の Version に対応します。

描画層 1 および描画層 2

メモメモ

.NET Framework 4 以降、描画層 1 は、DirectX 以降をサポートするグラフィックス ハードウェアのみを含むように再定義されています。DirectX 7 または 8 をサポートするグラフィックス ハードウェアは、描画層 0 と定義されています。

描画層の値 1 または 2 は、必要なシステム リソースが使用可能であり、枯渇していない場合に、WPF のほとんどのグラフィックス機能がハードウェア アクセラレータを使用することを示します。 これは、DirectX の 9.0 以上の Version に対応します。

描画層 1 と描画層 2 のグラフィックス ハードウェア要件の違いを次の表に示します。

機能

層 1

層 2

DirectX のバージョン

9.0 以上であることが必要です。

9.0 以上であることが必要です。

ビデオ RAM

60 MB 以上であることが必要です。

120 MB 以上であることが必要です。

ピクセル シェーダー

バージョン レベルは、2.0 以上であることが必要です。

バージョン レベルは、2.0 以上であることが必要です。

頂点シェーダー

要件は特にありません。

バージョン レベルは、2.0 以上であることが必要です。

マルチテクスチャ単位

要件は特にありません。

単位数は、4 以上であることが必要です。

描画層 1 および描画層 2 では、以下の機能がハードウェア アクセラレータによって加速されます。

機能

説明

2D レンダリング

ほとんどの 2D レンダリングがサポートされています。

3D ラスタライズ

ほとんどの 3D ラスタライズがサポートされています。

3D 異方性フィルタリング

WPF では、3D コンテンツの描画時に異方性フィルタリングの使用が試行されます。 異方性フィルタリングとは、カメラから遠く、視線角度のきつい位置にあるサーフェイス上のテクスチャの画質を向上させる手法です。

3D ミップマップ

WPF では、3D コンテンツの描画時にミップマップの使用が試行されます。ミップマップを使用すると、テクスチャが Viewport3D の狭い視野を占める場合にテクスチャの描画品質が向上します。

放射状グラデーション

サポートされますが、大きなオブジェクトでは RadialGradientBrush を使用しないでください。

3D の光源計算

WPF は、頂点ごとの光源処理を実行します。そのため、メッシュに適用されている各素材の頂点ごとに光の強さを計算する必要があります。

テキストの描画

サブピクセル フォントの描画では、グラフィックス ハードウェアで利用可能なピクセル シェーダーを使用します。

描画層 2 に対してのみ、以下の機能がハードウェア アクセラレータによって加速されます。

機能

説明

3D アンチエイリアシング

3D アンチエイリアシングは、Windows Display Driver Model (WDDM) をサポートするオペレーティング システム (Windows Vista、Windows 7 など) でのみサポートされます。

以下の機能はハードウェア アクセラレータによって加速されません。

機能

説明

印刷されるコンテンツ

印刷されるすべてのコンテンツが、WPF ソフトウェア パイプラインによって表示されます。

RenderTargetBitmap を使用する、ラスタライズされたコンテンツ

すべてのコンテンツが、RenderTargetBitmapRender メソッドによって描画されます。

TileBrush を使用する、並べて表示されるコンテンツ

すべての並べて表示されるコンテンツにおいて TileBrushTileMode プロパティが Tile に設定されます。

グラフィックス ハードウェアの最大テクスチャ サイズを超えるサーフェイス。

ほとんどのグラフィックス ハードウェアでは、大型のサーフェイスのサイズは 2048 x 2048 ピクセルまたは 4096 x 4096 ピクセルです。

必要なビデオ RAM 容量がグラフィックス ハードウェアのメモリ容量を上回るすべての操作

Windows SDK の WPF Performance Suite に付属する Perforator ツールを使用して、アプリケーション ビデオ RAM の使用量を監視できます。

レイヤード ウィンドウ

レイヤード ウィンドウを使用すると、WPF アプリケーションで、コンテンツを四角形以外のウィンドウの画面に描画できます。 Windows Display Driver Model (WDDM) をサポートするオペレーティング システム (Windows Vista、Windows 7 など) では、レイヤード ウィンドウはハードウェア アクセラレータによって加速されます。 Windows XP などのその他のシステムでは、レイヤード ウィンドウはハードウェア アクセラレータを使用せずにソフトウェアで描画されます。

WPF でレイヤード ウィンドウを有効にするには、Window の次のプロパティを設定します。

その他のリソース

次の技術情報は、WPF アプリケーションのパフォーマンス特性の分析に役立ちます。

グラフィックス レンダリングのレジストリ設定

WPF には、WPF のレンダリングを制御するために 4 つのレジストリ設定が用意されています。

設定値

説明

Disable Hardware Acceleration Option

ハードウェア アクセラレータを有効にするかどうかを指定します。

Maximum Multisample Value

3-D コンテンツのアンチエイリアシングのマルチサンプリングの度合いを指定します。

Required Video Driver Date Setting

2004 年 11 月より前にリリースされたドライバーに対してハードウェア アクセラレータをシステムで無効にするかどうかを指定します。

Use Reference Rasterizer Option

WPF でリファレンス ラスタライザーを使用するかどうかを指定します。

これらの設定には、WPF レジストリ設定の参照方法を認識している外部構成ユーティリティを使用してアクセスできます。 また、これらの設定は、Windows レジストリ エディターを使用して値に直接アクセスして作成または変更することもできます。 詳細については、「グラフィックス レンダリングのレジストリ設定」を参照してください。

WPF パフォーマンス プロファイリング ツール

WPF は、アプリケーションの実行時の動作を分析したり、適用可能なパフォーマンス最適化の種類を決定できるパフォーマンス プロファイリング ツール スイートを提供します。 Windows SDK ツール (WPF Performance Suite) に含まれるパフォーマンス プロファイリング ツールを次の表に示します。

ツール

説明

Perforator

レンダリング動作の分析に使用します。

ビジュアル プロファイラー

ビジュアル ツリーの要素による WPF サービス (レイアウトやイベント処理など) の使用状況に関するプロファイリングで使用します。

WPF Performance Suite では、パフォーマンス データを多彩なグラフィカル ビューで表示できます。 WPF のパフォーマンス ツールの詳細については、「WPF Performance Suite」を参照してください。

DirectX 診断ツール

DirectX 診断ツール (Dxdiag.exe) は、DirectX 関連の問題のトラブルシューティングを支援します。 DirectX 診断ツールの既定のインストール フォルダーは次のとおりです。

~\Windows\System32

DirectX 診断ツールを実行すると、メイン ウィンドウに一連のタブが表示され、これらのタブを使用して DirectX 関連の情報を表示および診断することができます。 たとえば、[システム] タブにはコンピューターに関するシステム情報が表示され、コンピューターにインストールされている DirectX のバージョンが示されます。

DirectX 診断ツールのメイン ウィンドウ

スクリーンショット: DirectX 診断ツール

参照

参照

RenderCapability

RenderOptions

概念

WPF アプリケーションのパフォーマンスの最適化

WPF Performance Suite

グラフィックス レンダリングのレジストリ設定

アニメーションのヒントとテクニック

履歴の変更

日付

履歴

理由

2010 年 10 月

.NET Framework 4 と描画層 2 に関する情報を更新しました。

カスタマー フィードバック

2010 年 9 月

WPF パフォーマンス プロファイリング ツールに関する情報を追加しました。

情報の拡充