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 ) ) );
}
}
Tópicos relacionados