エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 のシェーダー モデルのサポート

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 のみ

Windows Phone 8 では、Direct3D を使用するアプリ内で、開発者がカスタムな頂点シェーダーとピクセル シェーダーを使用することができます。Windows Phone 8 デバイスのカスタム シェーダーでサポートされる機能および制限事項は、シェーダー モデル 4_0_level_9_3 によって定義されます。シェーダー モデルの詳細については、「シェーダー モデルとシェーダー プロファイル」を参照してください。

4_0_level_9_3 シェーダー モデルは、Direct3D 9-era シェーダー モデル 2.0 の全機能に、いくつかの重要な相違点を取り入れています。

  • シェーダーは、DirectX 用の High Level Shading Language (HLSL) で作成する必要があります。詳細については、「HLSL」を参照してください。

  • 静的および動的なフロー制御がサポートされています。

  • 頂点シェーダーは、最大 256 個のシェーダー アセンブラー命令に相当する長さにすることができます。

  • ピクセル シェーダーは、最大 512 個のシェーダー アセンブラー命令に相当する長さにすることができます。

HLSL は、GPU シェーダー コードの作成用に最適化された、C に類似したプログラミング言語です。Windows Phone 8 アプリで使用するシェーダー コードを HLSL で作成する場合は、次の点に注意してください。

  • シェーダー コードのコンパイルは、エフェクト コンパイラ ツール FXC.exe を使用してオフラインで行う必要があります。このコンパイラは Visual Studio により既定で使用されるほか、コマンド ラインから起動することもできます。実行時のシェーダーのコンパイルはサポートされていません。

  • 4_0_level_9_3 では、シェーダー コンパイラ ターゲットは、頂点シェーダーについては vs_4_0_level_9_3、ピクセル シェーダーについては ps_4_0_level_9_3 です。シェーダー コンパイラ ターゲットの詳細については、「コンパイラ ターゲットの指定」を参照してください。

  • 4_0_level_9_3 シェーダー モデルのセマンティクスは、Direct3D 9 に関してドキュメント化されているセマンティクスと同じです。その結果、Direct3D 10 およびシェーダー モデル 4.0 で導入された system-value セマンティクスは、大部分が使用できません。例外は SV_Position、SV_Target、SV_Depth であり、これらはサポートされています。system-value セマンティクスなど、セマンティクスについての詳細は、「セマンティクス」を参照してください。

  • 命令数の制限に近づく可能性のある大規模なシェーダーを作成する場合は、シェーダーをコンパイルする時点で “/Fc” スイッチを使用し、結果のアセンブラー コード出力を取得して確認することができます。エフェクト コンパイラ ツールのコマンド ライン オプションの詳細については、「構文」を参照してください。

表示:
© 2014 Microsoft