効果状態グループ (Direct3D 10)

効果の状態は、式の形式の名前と値のペアです。

ブレンドの状態

効果の状態 グループ
ALPHATOCOVERAGEENABLEBLENDENABLESRCBLENDDESTBLENDBLENDOPSRCBLENDALPHADESTBLENDALPHABLENDOPALPHARENDERTARGETWRITEMASK D3D10_BLEND_DESCのメンバー

深度とステンシルの状態

効果の状態 グループ
DEPTHENABLEDEPTHWRITEMASKDEPTHFUNCSTENCILENABLESTENCILREADMASKSTENCILWRITEMASK D3D10_DEPTH_STENCIL_DESCのメンバー
FRONTFACESTENCILFAILFRONTFACESTENCILZFAILFRONTFACESTENCILPASSFRONTFACESTENCILFUNCBACKFACESTENCILFAILBACKFACESTENCILZFAILBACKFACESTENCILPASSBACKFACESTENCILFUNC D3D10_DEPTH_STENCILOP_DESCのメンバー

ラスタライザーの状態

効果の状態 グループ
FILLMODE D3D10_FILL_MODE
CULLMODE D3D10_CULL_MODE
FRONTCOUNTERCLOCKWISEDEPTHBIASDEPTHBIASCLAMPSLOPESCALEDDEPTHBIASZCLIPENABLESCISSORENABLEMULTISAMPLEENABLEANTIALIASEDLINEENABLE D3D10_RASTERIZER_DESCのメンバー

サンプラーの状態

効果の状態 グループ
FilterAddressUAddressVAddressWMipLODBiasMaxAnisotropyComparisonFuncBorderColorMinLODMaxLOD D3D10_SAMPLER_DESCのメンバー

例については、「 サンプラーの種類 (DirectX HLSL)」 を参照してください。

効果オブジェクトの状態

この効果オブジェクト 対応する設定
RASTERIZERSTATE Rasterizer State 状態オブジェクト。
DEPTHSTENCILSTATE 深度およびステンシルの状態オブジェクト。
BLENDSTATE Blend State 状態オブジェクト。
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;
};

状態オブジェクトは、 Effect Technique Syntax (Direct3D 10) で説明されている SetStateGroup 関数のいずれかを使用して、手法パスに適用されます。 たとえば、上で説明した BlendState オブジェクトを適用するには、次のコードを使用します。

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

状態の使用について説明するチュートリアルについては、「 状態管理」を参照してください。