Sintaxe de técnica de efeito (Direct3D 10)

Uma técnica de efeito é declarada com a sintaxe a seguir.

technique10 TechniqueName [ <Annotations> ]

{

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

}

Parâmetros

técnica10

Palavra-chave obrigatório.

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 a sintaxe, consulte Sintaxe de anotação (Direct3D 10).

Passar

Palavra-chave obrigatório.

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 [OMSetBlendState](/windows/desktop/api/D3D10/nf-d3d10-id3d10device-omsetblendstate) para obter a lista de argumentos.

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

Consulte OMSetDepthStencilState para obter a lista de argumentos.

Estado do rasterizador
SetRasterizerState( arguments ); 

Consulte [RSSetState](/windows/desktop/api/D3D10/nf-d3d10-id3d10device-rssetstate) para obter a lista de argumentos.

Estado do sombreador
SetXXXShader( CompileShader( shader_profile, ShaderFunction( args ) ) );

ou

SetXXXShader( CompileShader( NULL ) );

ou

SetXXXShader( NULL );

SetXXXShader é um dos métodos SetVertexShader, SetGeometryShader ou SetPixelShader (que são semelhantes aos métodos de API VSSetShader, GSSetShader e PSSetShader).

 

Os grupos de estado de efeito são listados no estado de efeito.

Exemplos

Este exemplo (do exemplo CubeMapGS) 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 (do exemplo BasicHLSL10); que usa um sombreador de vértice e pixel.

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