Compartir a través de


Sintaxis de la técnica de efecto (Direct3D 11)

Una técnica de efecto se declara con la sintaxis descrita en esta sección.

TechniqueVersion TechniqueName [ <Annotations> ]

{

pass *PassName* \[ <*Annotations* > \] {
\[ *SetStateGroup*; \] \[ *SetStateGroup*; \] ... \[ *SetStateGroup*; \]
}

}

Parámetros

Elemento Descripción
TechniqueVersion
Técnica10 o técnica11. Las técnicas que usan la funcionalidad nueva en Direct3D 11 (sombreadores 5_0, BindInterfaces, etc.) deben usar técnica11.
TechniqueName
Opcional. Cadena ASCII que identifica de forma única el nombre de la técnica de efecto.
< Anotaciones >
[in] Opcional. Uno o varios fragmentos de información (metadatos) proporcionados por el usuario que el sistema de efectos omite. Para obtener la sintaxis, vea Annotation Syntax (Direct3D 11) (Sintaxis de anotación [Direct3D 11]).
Pasar
Palabra clave requerida.
PassName
[in] Opcional. Cadena ASCII que identifica de forma única el nombre del pase.
SetStateGroup
[in] Establezca uno o varios grupos de estados, como:
StateGroup Sintaxis
Estado de mezcla
SetBlendState( arguments ); 

Vea [ID3D11DeviceContext::OMSetBlendState](/windows/desktop/api/D3D11/nf-d3d11-id3d11devicecontext-omsetblendstate) para la lista de argumentos.

Estado de galería de símbolos de profundidad
SetDepthStencilState( arguments ); 

Vea ID3D11DeviceContext::OMSetDepthStencilState para obtener la lista de argumentos.

Estado del rasterizador
SetRasterizerState( arguments ); 

Vea [ID3D11DeviceContext::RSSetState](/windows/desktop/api/D3D11/nf-d3d11-id3d11devicecontext-rssetstate) para la lista de argumentos.

Estado del sombreador
SetXXXShader( Shader );

SetXXXShader es uno de SetVertexShader, SetDomainShader, SetHullShader, SetGeometryShader, SetPixelShader o SetComputeShader (que son similares a los métodos de API ID3D11DeviceContext::VSSetShader, ID3D11DeviceContext::D SSetShader, ID3D11DeviceContext::HSSetShader, ID3D11DeviceContext::GSSetShader, ID3D11DeviceContext::P SSetShader e ID3D11DeviceContext::CSSetShader).

El sombreador es una variable de sombreador, que se puede obtener de muchas maneras:

SetXXXShader( CompileShader( shader_profile, ShaderFunction( args ) ) );
SetXXXShader( CompileShader( NULL ) );
SetXXXShader( NULL );
SetXXXShader( myShaderVar );
SetXXXShader( myShaderArray[2] );
SetXXXShader( myShaderArray[uIndex] );
SetGeometryShader( ConstructGSWithSO( Shader, strStream0 ) );
SetGeometryShader( ConstructGSWithSO( Shader, strStream0, strStream1, strStream2, strStream3, RastStream ) );
Estado de destino de representación Uno de los valores siguientes:
SetRenderTargets( RTV0, DSV );
SetRenderTargets( RTV0, RTV1, DSV );
...
SetRenderTargets( RTV0, RTV1, RTV2, RTV3, RTV4, RTV5, RTV6, RTV7, DSV );

Similar a ID3D11DeviceContext::OMSetRenderTargets.

Ejemplos

En este ejemplo se establece el estado de fusión.

BlendState NoBlend
{ 
    BlendEnable[0] = False;
};

...

technique10
{
    pass p2 
    {
        ...
        SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
    }
}

En este ejemplo se configura el estado de rasterizador para representar un objeto en wireframe.

RasterizerState rsWireframe { FillMode = WireFrame; };

...

technique10
{
    pass p1 
    {
        ....
        SetRasterizerState( rsWireframe );
    }
}

En este ejemplo se establece el estado del sombreador.

technique10 RenderSceneWithTexture1Light
{
    pass P0
    {
        SetVertexShader( CompileShader( vs_4_0, RenderSceneVS( 1, true, true ) ) );
        SetGeometryShader( NULL );
        SetPixelShader( CompileShader( ps_4_0, RenderScenePS( true ) ) );
    }
}

Formato de efecto

Sintaxis del grupo de efectos (Direct3D 11)

Grupos de estados de efecto