影响状态组 (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 );
相关主题