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.