Compartilhar via


Sintaxe de técnica de efeito (Direct3D 11)

Uma técnica de efeito é declarada com a sintaxe descrita nesta seção.

TechniqueVersion TechniqueName [ <Annotations> ]

{

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

}

Parâmetros

Item Descrição
TechniqueVersion
Técnica10 ou técnica11. As técnicas que usam funcionalidades novas no Direct3D 11 (sombreadores 5_0, BindInterfaces etc) devem usar a técnica11.
TechniqueName
Opcional. Uma cadeia de caracteres ASCII que identifica exclusivamente o nome da técnica de efeito.
< Anotações >
[in] Opcional. Uma ou mais partes de informações fornecidas pelo usuário (metadados) que são ignoradas pelo sistema de efeito. Para obter sintaxe, consulte Sintaxe de anotação (Direct3D 11).
Passar
Palavra-chave necessária.
PassName
[in] Opcional. Uma cadeia de caracteres ASCII que identifica exclusivamente o nome da passagem.
SetStateGroup
[in] Defina um ou mais grupos de estado, como:
StateGroup Sintaxe
Estado de mesclagem
SetBlendState( arguments ); 

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

Estado do estêncil de profundidade
SetDepthStencilState( arguments ); 

Consulte ID3D11DeviceContext::OMSetDepthStencilState para obter a lista de argumentos.

Estado do rasterizador
SetRasterizerState( arguments ); 

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

Estado do sombreador
SetXXXShader( Shader );

SetXXXShader é um de SetVertexShader, SetDomainShader, SetHullShader, SetGeometryShader, SetPixelShader ou SetComputeShader (que são semelhantes aos métodos de API ID3D11DeviceContext::VSSetShader, ID3D11DeviceContext::D SSetShader, ID3D11DeviceContext::HSSetShader, ID3D11DeviceContext::GSSetShader, ID3D11DeviceContext::P SSetShader e ID3D11DeviceContext::CSSetShader).

Sombreador é uma variável de sombreador, que pode ser obtida de várias maneiras:

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 ) );
Renderizar estado de destino Um destes:
SetRenderTargets( RTV0, DSV );
SetRenderTargets( RTV0, RTV1, DSV );
...
SetRenderTargets( RTV0, RTV1, RTV2, RTV3, RTV4, RTV5, RTV6, RTV7, DSV );

Semelhante a ID3D11DeviceContext::OMSetRenderTargets.

Exemplos

Este exemplo define o estado de mesclagem.

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

...

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

Este exemplo configura o estado do rasterizador para renderizar um objeto em wireframe.

RasterizerState rsWireframe { FillMode = WireFrame; };

...

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

Este exemplo define o estado do 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 efeito

Sintaxe do grupo de efeitos (Direct3D 11)

Grupos de Estado de Efeito