Grupos de estado del efecto (Direct3D 10)
Los estados de efecto son pares nombre-valor en forma de expresión.
Estado de mezcla
Estado del efecto | Grupo |
---|---|
ALPHATOCOVERAGEENABLE, BLENDENABLE, SRCBLEND, DESTBLEND, BLENDOP, SRCBLENDALPHA, DESTBLENDALPHA, BLENDOPALPHA, RENDERTARGETWRITEMASK | Miembros de D3D10_BLEND_DESC |
Estado de profundidad y galería de símbolos
Estado del efecto | Grupo |
---|---|
DEPTHENABLE, DEPTHWRITEMASK, DEPTHFUNC, STENCILENABLE, STENCILREADMASK, STENCILWRITEMASK | Miembros de D3D10_DEPTH_STENCIL_DESC |
FRONTFACESTENCILFAIL, FRONTFACESTENCILZFAIL, FRONTFACESTENCILPASS, FRONTFACESTENCILFUNC, BACKFACESTENCILFAIL, BACKFACESTENCILZFAIL, BACKFACESTENCILPASS,BACKFACESTENCILFUNC | Miembro de D3D10_DEPTH_STENCILOP_DESC |
Estado del rasterizador
Estado del efecto | Grupo |
---|---|
FILLMODE | D3D10_FILL_MODE |
CULLMODE | D3D10_CULL_MODE |
FRONTCOUNTERCLOCKWISE, DEPTHBIAS, DEPTHBIASCLAMP, SLOPESCALEDDEPTHBIAS, ZCLIPENABLE, SCISSORENABLE, MULTISAMPLEENABLE, ANTIALIASEDLINEENABLE | Miembros de D3D10_RASTERIZER_DESC |
Estado del sampler
Estado del efecto | Grupo |
---|---|
Filter, AddressU, AddressV, AddressW, MipLODBias, MaxAnisotropy, ComparisonFunc, BorderColor, MinLOD, MaxLOD | Miembros de D3D10_SAMPLER_DESC |
Consulte Sampler type (DirectX HLSL) (Tipo de sampler [DirectX HLSL]) para obtener ejemplos.
Estado del objeto Effect
Este objeto de efecto | Se asigna a |
---|---|
RASTERIZERSTATE | Objeto de estado de rasterizador . |
DEPTHSTENCILSTATE | Objeto de estado De estado de profundidad y galería de símbolos . |
BLENDSTATE | Objeto de estado de Blend . |
VERTEXSHADER | Objeto de sombreador de vértices compilado. |
PIXELSHADER | Objeto de sombreador de píxeles compilado. |
GEOMETRYSHADER | Objeto de sombreador de geometría compilado. |
DS_STENCILREF AB_BLENDFACTOR AB_SAMPLEMASK | Miembros de D3D10_PASS_DESC. |
Definición y uso de objetos de estado
Los objetos de estado se declaran en archivos FX con el formato siguiente. StateObjectType es uno de los estados enumerados anteriormente y MemberName es el nombre de cualquier miembro que tenga un valor no predeterminado.
StateObjectType ObjectName {
MemberName = value;
...
MemberName = value;
};
Por ejemplo, para configurar un objeto de estado de mezcla con AlphaToCoverageEnable y BlendEnable[0] establecido en FALSE, se usaría el código siguiente.
BlendState NoBlend {
AlphaToCoverageEnable = FALSE;
BlendEnable[0] = FALSE;
};
El objeto de estado se aplica a una técnica que se pasa mediante una de las funciones SetStateGroup descritas en Sintaxis de técnica de efecto (Direct3D 10) . Por ejemplo, para aplicar el objeto BlendState descrito anteriormente, se usaría el código siguiente.
SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
Para ver un tutorial que describe el uso de estados, consulte Administración de estados.