Grupos de estado de efeito (Direct3D 11)

Estados de efeito são pares de valor de nome na forma de uma expressão.

Estado de mesclagem

Estado do efeito Grupo
ALPHATOCOVERAGEENABLEBLENDENABLESRCBLENDDESTBLENDBLENDOP SRCBLENDALPHADESTBLENDALPHABLENDOPALPHARENDERTARGETWRITEMASK Membros do D3D11_BLEND_DESC

 

Estado de profundidade e estêncil

Estado do efeito Grupo
DEPTHENABLEDEPTHWRITEMASKDEPTHFUNCSTENCILENABLESTENCILREADMASKSTENCILWRITEMASK Membros do D3D11_DEPTH_STENCIL_DESC
FRONTFACESTENCILFAILFRONTFACESTENCILZFAILFRONTFACESTENCILPASSFRONTFACESTENCILFUNCBACKFACESTENCILFAILBACKFACESTENCILZFAILBACKFACESTENCILPASSBACKFACESTENCILFUNC Membro do D3D11_DEPTH_STENCILOP_DESC

 

Estado do rasterizador

Estado do efeito Grupo
FILLMODE D3D11_FILL_MODE
CULLMODE D3D11_CULL_MODE
FRONTCOUNTERCLOCKWISEDEPTHBIASDEPTHBIASCLAMPSLOPESCALEDDEPTHBIAS ZCLIPENABLESCISSORENABLEMULTISAMPLEENABLEANTIALIASEDLINEENABLE Membros do D3D11_RASTERIZER_DESC

 

Estado do sampler

Estado do efeito Grupo
Filter AddressU AddressV AddressW MipLODBias MaxAnisotropy ComparisonFunc BorderColor MinLOD MaxLOD Membros do D3D11_SAMPLER_DESC

 

Consulte Tipo de amostra (DirectX HLSL) para obter exemplos.

Estado do objeto Effect

Este objeto effect É mapeada para
RASTERIZERSTATE Um objeto de estado do rasterizador .
DEPTHSTENCILSTATE Um objeto de estado de profundidade e estêncil .
BLENDSTATE Um objeto de estado blend state .
VERTEXSHADER Um objeto de sombreador de vértice compilado.
PIXELSHADER Um objeto de sombreador de pixel compilado.
GEOMETRYSHADER Um objeto de sombreador de geometria compilado.
DS_STENCILREFAB_BLENDFACTORAB_SAMPLEMASK Membros do D3DX11_PASS_DESC.

 

Definindo e usando objetos de estado

Os objetos de estado são declarados em arquivos FX no formato a seguir. StateObjectType é um dos estados listados acima e MemberName é o nome de qualquer membro que terá um valor não padrão.

StateObjectType ObjectName {
  MemberName = value;
  ...
  MemberName = value;
};
    

Por exemplo, para configurar um objeto de estado de combinação com AlphaToCoverageEnable e BlendEnable[0] definido como FALSE , o código a seguir seria usado.

BlendState NoBlend {
  AlphaToCoverageEnable = FALSE;
  BlendEnable[0] = FALSE;
};
    

O objeto de estado é aplicado a uma passagem de técnica usando uma das funções SetStateGroup descritas em Sintaxe de técnica de efeito (Direct3D 11). Por exemplo, para aplicar o objeto BlendState descrito acima, o código a seguir seria usado.

SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
    

Sintaxe da Técnica de Efeito

Formato de efeito (Direct3D 11)