シェーダー型 (DirectX HLSL)

Direct3D 10 では、エフェクト内でシェーダー変数を宣言するための構文が Direct3D 9 のものから変更されました。

  • Direct3D 10 のシェーダー タイプ
  • Direct3D 9 のシェーダー タイプ

Direct3D 10 のシェーダー タイプ

Direct3D 10 の エフェクト パス内でシェーダー変数を宣言するには、次のシェーダー タイプ構文を使用します。

SetPixelShader Compile( ShaderTarget, ShaderFunction );

SetGeometryShader Compile( ShaderTarget, ShaderFunction );

SetVertexShader Compile( ShaderTarget, ShaderFunction );

パラメーター

  • SetXXXShader
    シェーダー オブジェクトを作成する Direct3D API の呼び出し。SetPixelShaderSetGeometryShader、または SetVertexShader を指定できます。
  • ShaderTarget
    コンパイル対象となるシェーダー モデル。すべての Direct3D 9 ターゲットのほか、次のシェーダー モデル 4 ターゲットも含め、あらゆるターゲットでこのパラメーターは有効です。vs_4_0、gs_4_0、および ps_4_0 です。
  • ShaderFunction
    シェーダー エントリポイント関数の名前を含む ASCII 文字列。これは、シェーダーが呼び出されたときに実行を開始する関数です。(...) はシェーダーの引数を表します。これらは、シェーダー作成 API の VSSetShaderGSSetShader、または PSSetShader に渡される引数と同じです。

次の例では、特定のシェーダー モデルを対象にしてコンパイルした、頂点シェーダーとピクセル シェーダーのオブジェクトを作成します。Direct3D 10 の例では、ジオメトリ シェーダーはないため、そのポインターは NULL に設定されています。

 // Direct3D 10 technique10 Render {     pass P0     {         SetVertexShader( CompileShader( vs_4_0, VS() ) );         SetGeometryShader( NULL );         SetPixelShader( CompileShader( ps_4_0, PS() ) );     } } 

Direct3D 9 のシェーダー タイプ

Direct3D 9 のエフェクト パス内でシェーダー変数を宣言するには、次のシェーダー タイプ構文を使用します。

PixelShader = compile ShaderTarget ShaderFunction(...);

VertexShader = compile ShaderTarget ShaderFunction(...);

パラメーター

  • XXXShader
    コンパイルしたシェーダーを表すシェーダー変数です。PixelShader または VertexShader を指定できます。
  • ShaderTarget
    コンパイルの対象となるシェーダー モデル。シェーダー変数のタイプに応じて異なります。
  • ShaderFunction(...)
    シェーダー エントリポイント関数の名前を含む ASCII 文字列。これは、シェーダーが呼び出されたときに実行を開始する関数です。(...) はシェーダーの引数を表します。これらは、シェーダー作成 API の SetVertexShader または SetPixelShader に渡される引数と同じです。

次の例は、特定のシェーダー モデルを対象にしてコンパイルした、頂点シェーダーとピクセル シェーダーのオブジェクトです。

 // Direct3D 9 technique RenderSceneWithTexture1Light {     pass P0     {                   VertexShader = compile vs_2_0 RenderSceneVS( 1, true, true );         PixelShader  = compile ps_2_0 RenderScenePS( true );     } } 

関連項目

データ型 (DirectX HLSL)