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 ) ) );
}
}
Temas relacionados