Share via


シェーダーの種類

効果でシェーダー変数を宣言するための構文が Direct3D 9 から Direct3D 10 に変更されました。

Direct3D 10 のシェーダーの種類

シェーダーの種類の構文を使用して、(Direct3D 10 の) 効果パス内でシェーダー変数を宣言します。

SetPixelShader Compile( ShaderTarget, ShaderFunction ); SetGeometryShader Compile( ShaderTarget, ShaderFunction ); SetVertexShader Compile( ShaderTarget, ShaderFunction );

パラメーター

項目 説明
SetXXXShader
シェーダー オブジェクトを作成する Direct3D API 呼び出し。 SetPixelShader または SetGeometryShader または SetVertexShader のいずれかを指定できます。
ShaderTarget
コンパイル対象のシェーダー モデル。 これは、すべての Direct3D 9 ターゲットと シェーダー モデル 4 ターゲット (vs_4_0、gs_4_0、ps_4_0) を含むすべてのターゲットに対して有効です。
ShaderFunction
シェーダー エントリ ポイント関数の名前を含む ASCII 文字列。これは、シェーダーが呼び出されたときに実行を開始する関数です。 (...) はシェーダー引数を表します。これらは、シェーダー作成 API の VSSetShader または GSSetShader または 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 = ShaderTarget ShaderFunction(...)をコンパイルします。VertexShader = 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)