效果状态组 (Direct3D 10)

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

混合状态

效果状态 Group
ALPHATOCOVERAGEENABLEBLENDENABLESRCBLENDDESTBLENDBLENDOPSRCBLENDALPHADESTBLENDALPHABLENDOPALPHARENDERTARGETWRITEMASK D3D10_BLEND_DESC 的成员

深度和模具状态

效果状态 Group
DEPTHENABLEDEPTHWRITEMASKDEPTHFUNCSTENCILENABLESTENCILREADMASKSTENCILWRITEMASK D3D10_DEPTH_STENCIL_DESC 的成员
FRONTFACESTENCILFAILFRONTFACESTENCILZFAILFRONTFACESTENCILPASSFRONTFACESTENCILFUNCBACKFACESTENCILFAILFAILBACKFACESTENCILZFAILBACKFACESTENCILPASSBACKFACESTENCILFUNC D3D10_DEPTH_STENCILOP_DESC 的成员

光栅器状态

效果状态 Group
FILLMODE D3D10_FILL_MODE
CULLMODE D3D10_CULL_MODE
FRONTCOUNTERCLOCKWISEDEPTHBIASDEPTHBIASCLAMPSLOPESCALEDDEPTHBIASZCLIPENABLESCISSORENABLEMULTISAMPLEENABLEANTIALIASEDLINEENABLE D3D10_RASTERIZER_DESC 的成员

取样器状态

效果状态 Group
FilterAddressUAddressVAddressWMipLODBiasMaxAnisotropyComparisonFuncBorderColorMinLODMaxLOD D3D10_SAMPLER_DESC 的成员

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

效果对象状态

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

定义和使用状态对象

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

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

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

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

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

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

有关描述状态用法的教程,请参阅 状态管理