効果の状態グループ (Direct3D 11)
効果の状態は、式の形式の名前の値のペアです。
ブレンドの状態
効果の状態 | グループ |
---|---|
ALPHATOCOVERAGEENABLEBLENDENABLESRCBLENDDESTBLENDBLENDOP SRCBLENDALPHADESTBLENDALPHABLENDOPALPHARENDERTARGETWRITEMASK | D3D11_BLEND_DESCのメンバー |
深度とステンシルの状態
効果の状態 | グループ |
---|---|
DEPTHENABLEDEPTHWRITEMASKDEPTHFUNCSTENCILENABLESTENCILREADMASKSTENCILWRITEMASK | D3D11_DEPTH_STENCIL_DESCのメンバー |
FRONTFACESTENCILFAILFRONTFACESTENCILZFAILFRONTFACESTENCILPASSFRONTFACESTENCILFUNCBACKFACESTENCILFAILBACKFACESTENCILZFAILBACKFACESTENCILPASSBACKFACESTENCILFUNC | D3D11_DEPTH_STENCILOP_DESCのメンバー |
ラスタライザーの状態
効果の状態 | グループ |
---|---|
FILLMODE | D3D11_FILL_MODE |
CULLMODE | D3D11_CULL_MODE |
FRONTCOUNTERCLOCKWISEDEPTHBIASDEPTHBIASCLAMPSLOPESCALEDEPTHBIAS ZCLIPENABLESCISSORENABLEMULTISAMPLEENABLEANTIALIASEDLINEENABLE | D3D11_RASTERIZER_DESCのメンバー |
サンプラーの状態
効果の状態 | グループ |
---|---|
Filter AddressU AddressV AddressW MipLODBias MaxAnisotropy ComparisonFunc BorderColor MinLOD MaxLOD | D3D11_SAMPLER_DESCのメンバー |
例については、「 サンプラーの種類 (DirectX HLSL)」 を参照してください。
Effect オブジェクトの状態
この効果オブジェクト | 対応する設定 |
---|---|
RASTERIZERSTATE | Rasterizer State 状態オブジェクト。 |
DEPTHSTENCILSTATE | 深度およびステンシルの状態オブジェクト。 |
BLENDSTATE | Blend State 状態オブジェクト。 |
VERTEXSHADER | コンパイルされた頂点シェーダー オブジェクト。 |
PIXELSHADER | コンパイル済みのピクセル シェーダー オブジェクト。 |
GEOMETRYSHADER | コンパイルされたジオメトリ シェーダー オブジェクト。 |
DS_STENCILREFAB_BLENDFACTORAB_SAMPLEMASK | D3DX11_PASS_DESCのメンバー。 |
状態オブジェクトの定義と使用
状態オブジェクトは、FX ファイルで次の形式で宣言されます。 StateObjectType は上記の状態の 1 つであり、MemberName は既定値以外の値を持つメンバーの名前です。
StateObjectType ObjectName {
MemberName = value;
...
MemberName = value;
};
たとえば、AlphaToCoverageEnable と BlendEnable[0] を FALSE に設定してブレンド状態オブジェクトを設定するには、次のコードを使用します。
BlendState NoBlend {
AlphaToCoverageEnable = FALSE;
BlendEnable[0] = FALSE;
};
状態オブジェクトは、「 Effect Technique Syntax (Direct3D 11)」で説明されている SetStateGroup 関数のいずれかを使用して、手法パスに適用されます。 たとえば、上で説明した BlendState オブジェクトを適用するには、次のコードを使用します。
SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
関連トピック