シェーダー型 (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 の呼び出し。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 = 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 ); } }