影响状态组 (Direct3D 11)

效果状态是表达式形式的名称值对。

混合状态

效果状态 Group
ALPHATOCOVERAGEENABLEBLENDENABLESRCBLENDDESTBLENDBLENDOP SRCBLENDALPHADESTBLENDALPHABLENDOPALPHARENDERTARGETWRITEMASK D3D11_BLEND_DESC的成员

 

深度和模具状态

效果状态 Group
DEPTHENABLEDEPTHWRITEMASKDEPTHFUNCSTENCILENABLESTENCILREADMASKSTENCILWRITEMASK D3D11_DEPTH_STENCIL_DESC成员
FRONTFACESTENCILFAILFRONTFACESTENCILZFAILFRONTFACESTENCILPASSFRONTFACESTENCILFUNCBACKFACESTENCILFAILBACKFACESTENCILZFAILBACKFACESTENCILPASSBACKFACESTENCILFUNC D3D11_DEPTH_STENCILOP_DESC 成员

 

光栅器状态

效果状态 Group
FILLMODE D3D11_FILL_MODE
CULLMODE D3D11_CULL_MODE
FRONTCOUNTERCLOCKWISEDEPTHBIASDEPTHBIASCLAMPSLOPESCALEDDEPTHBIAS ZCLIPENABLESCISSORENABLEMULTISAMPLEENABLEANTIALIASEDLINEENABLE D3D11_RASTERIZER_DESC的成员

 

采样器状态

效果状态 Group
Filter AddressU AddressV AddressW MipLODBias MaxAnisotropy ComparisonFunc BorderColor MinLOD MaxLOD D3D11_SAMPLER_DESC成员

 

有关示例 ,请参阅取样器类型 (DirectX HLSL)

效果对象状态

此效果对象 映射到
RASTERIZERSTATE 光栅器状态对象。
DEPTHSTENCILSTATE 深度和模具状态状态对象。
BLENDSTATE 混合状态对象。
VERTEXSHADER 已编译的顶点着色器对象。
PIXELSHADER 已编译的像素着色器对象。
GEOMETRYSHADER 已编译的几何着色器对象。
DS_STENCILREFAB_BLENDFACTORAB_SAMPLEMASK D3DX11_PASS_DESC的成员。

 

定义和使用状态对象

状态对象按以下格式在 FX 文件中声明。 StateObjectType 是上面列出的状态之一,MemberName 是具有非默认值的任何成员的名称。

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

例如,若要设置 AlphaToCoverageEnable 和 BlendEnable[0] 设置为 FALSE 的混合状态对象,将使用以下代码。

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

状态对象使用 效果技术语法 (Direct3D 11) 中所述的 SetStateGroup 函数之一应用于技术传递。 例如,若要应用上述 BlendState 对象,将使用以下代码。

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

效果技术语法

效果格式 (Direct3D 11)