次の方法で共有


フラグメント宣言構文 (Direct3D 9 HLSL)

各 Microsoft High Level Shader Language (HLSL) 関数は、フラグメント宣言を追加してシェーダー フラグメントに変換できます。

構文

fragmentKeyword FragmentName = compile_fragment shaderProfile FunctionName();

各値の説明:

説明
fragmentKeyword 必須のキーワード (keyword)。 pixelfragment または vertexfragment のいずれか。
FragmentName コンパイル済みフラグメント名を指定する ASCII テキスト文字列。
compile_fragment 必須のキーワード (keyword)。
shaderProfile コンパイル対象のシェーダー モデル。 有効な頂点シェーダー プロファイル ( 「D3DXGetVertexShaderProfile」を参照) またはピクセル シェーダー プロファイル ( 「D3DXGetPixelShaderProfile」を参照)。
FunctionName() シェーダー関数名。その後にかっこが続きます。

 

共有フラグメント パラメーターは、セマンティックに 'r_' プレフィックスを追加することによってマークされます。

void AmbientDiffuse( float3 vPosWorld: r_PosWorld,
                     float3 vNormalWorld: r_NormalWorld,
                     out float4 vColor: COLOR0 )
{  
    // Compute the light vector
    float3 vLight = normalize( g_vLightPosition - vPosWorld );
    
    // Compute the ambient and diffuse components of illumination
    vColor = g_vLightColor * g_vMaterialAmbient;
    vColor += g_vLightColor * g_vMaterialDiffuse * saturate( dot( vLight, vNormalWorld ) );
}
vertexfragment AmbientDiffuseFragment = compile_fragment vs_1_1 AmbientDiffuse();

この例では、r_PosWorldとr_NormalWorldのセマンティクスは、これら 2 つのパラメーターが他のフラグメント間で共有パラメーターであることを識別します。

Note

フラグメント リンカーは、D3DX 9 の Microsoft Direct3D 9 テクノロジでした。 フラグメント リンカーは、ツール (Flink.exe)、D3DX 9 API、HLSL 拡張機能でした。 フラグメント リンカーは、2009 年 8 月の DirectX SDK リリースの時点で削除されました。 フラグメント リンカーは、Microsoft Direct3D 10、Microsoft Direct3D 10.1、または Microsoft Direct3D 11 には適用されません。

 

シェーダー モデル 3 (DirectX HLSL)