フラグメント宣言構文 (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 には適用されません。
関連トピック