Compartir a través de


Sintaxis de declaración de fragmento (Direct3D 9 HLSL)

Cada función de Lenguaje de sombreador de alto nivel (HLSL) de Microsoft se puede convertir en un fragmento de sombreador con la adición de una declaración de fragmento.

Sintaxis

fragmentKeyword FragmentName = compile_fragment shaderProfile FunctionName();

donde:

Value Descripción
fragmentKeyword Palabra clave requerida. Pixelfragment o vertexfragment.
FragmentName Cadena de texto ASCII que especifica el nombre del fragmento compilado.
compile_fragment Palabra clave requerida.
shaderProfile Modelo de sombreador con el que se va a compilar. Cualquier perfil de sombreador de vértices válido (vea D3DXGetVertexShaderProfile) o perfil de sombreador de píxeles (vea D3DXGetPixelShaderProfile).
FunctionName() Nombre de la función de sombreador, seguido de paréntesis.

 

Los parámetros de fragmento compartido se marcan agregando un prefijo "r_" a su semántica.

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();

En este ejemplo, el r_PosWorld y r_NormalWorld semántica identifican que estos dos parámetros son parámetros compartidos entre otros fragmentos.

Nota

El enlazador de fragmentos era una tecnología de Microsoft Direct3D 9 en D3DX 9. El enlazador de fragmentos era una herramienta (Flink.exe), una API D3DX 9 y una mejora de HLSL. El enlazador de fragmentos se quitó a partir de la versión del SDK de DirectX de agosto de 2009. El enlazador de fragmentos nunca se aplicó a Microsoft Direct3D 10, Microsoft Direct3D 10.1 o Microsoft Direct3D 11.

 

Modelo de sombreador 3 (DirectX HLSL)