効果状態グループ (Direct3D 10)
効果の状態は、式の形式の名前と値のペアです。
ブレンドの状態
効果の状態 | グループ |
---|---|
ALPHATOCOVERAGEENABLE、 BLENDENABLE、 SRCBLEND、 DESTBLEND、 BLENDOP、 SRCBLENDALPHA、 DESTBLENDALPHA、 BLENDOPALPHA、 RENDERTARGETWRITEMASK | D3D10_BLEND_DESCのメンバー |
深度とステンシルの状態
効果の状態 | グループ |
---|---|
DEPTHENABLE、 DEPTHWRITEMASK、 DEPTHFUNC、 STENCILENABLE、 STENCILREADMASK、 STENCILWRITEMASK | D3D10_DEPTH_STENCIL_DESCのメンバー |
FRONTFACESTENCILFAIL、 FRONTFACESTENCILZFAIL、 FRONTFACESTENCILPASS、 FRONTFACESTENCILFUNC、 BACKFACESTENCILFAIL、 BACKFACESTENCILZFAIL、 BACKFACESTENCILPASS、 BACKFACESTENCILFUNC | D3D10_DEPTH_STENCILOP_DESCのメンバー |
ラスタライザーの状態
効果の状態 | グループ |
---|---|
FILLMODE | D3D10_FILL_MODE |
CULLMODE | D3D10_CULL_MODE |
FRONTCOUNTERCLOCKWISE、 DEPTHBIAS、 DEPTHBIASCLAMP、 SLOPESCALEDDEPTHBIAS、 ZCLIPENABLE、 SCISSORENABLE、 MULTISAMPLEENABLE、 ANTIALIASEDLINEENABLE | D3D10_RASTERIZER_DESCのメンバー |
サンプラーの状態
効果の状態 | グループ |
---|---|
Filter、 AddressU、 AddressV、 AddressW、 MipLODBias、 MaxAnisotropy、 ComparisonFunc、 BorderColor、 MinLOD、 MaxLOD | 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 );
状態の使用について説明するチュートリアルについては、「 状態管理」を参照してください。