Compartir a través de


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

Una técnica de efecto se declara con la siguiente sintaxis.

technique10 TechniqueName [ <Annotations> ]

{

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

}

Parámetros

técnica10

Palabra clave requerida.

TechniqueName

Opcional. Cadena ASCII que identifica de forma única el nombre de la técnica de efecto.

Anotaciones

[in] Opcional. Uno o más fragmentos de información proporcionada por el usuario (metadatos) que el sistema de efectos omite. Para obtener sintaxis, vea Annotation Syntax (Direct3D 10) (Sintaxis de anotación [Direct3D 10]).

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

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

Consulte OMSetDepthStencilState para obtener la lista de argumentos.

Estado del rasterizador
SetRasterizerState( arguments ); 

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

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

or

SetXXXShader( CompileShader( NULL ) );

or

SetXXXShader( NULL );

SetXXXShader es uno de SetVertexShader, SetGeometryShader o SetPixelShader (que son similares a los métodos de API VSSetShader, GSSetShader y PSSetShader).

 

Los grupos de estados de efecto se muestran en estado de efecto.

Ejemplos

En este ejemplo (del ejemplo CubeMapGS) 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 del 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 (del ejemplo BasicHLSL10); que usa un sombreador de vértices y píxeles.

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