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的成員 |
如需範例 ,請參閱 Sampler type (DirectX HLSL) 。
效果物件狀態
這個效果物件 | 對應至 |
---|---|
RASTERIZERSTATE | 點陣化狀態物件。 |
DEPTHSTENCILSTATE | 深度和樣板狀態物件。 |
BLENDSTATE | Blend State狀態物件。 |
VERTEXSHADER | 編譯的頂點著色器物件。 |
PIXELHADER | 已編譯的圖元著色器物件。 |
GEOMETRYSHADER | 編譯的幾何著色器物件。 |
DS_STENCILREF AB_BLENDFACTOR AB_SAMPLEMASK | D3D10_PASS_DESC的成員。 |
定義和使用狀態物件
狀態物件會以下列格式以 FX 檔案宣告。 StateObjectType 是上述其中一個狀態, 而 MemberName 是任何將具有非預設值的成員名稱。
StateObjectType ObjectName {
MemberName = value;
...
MemberName = value;
};
例如,若要使用 AlphaToCoverageEnable 和 BlendEnable[0] 設定混合狀態 物件,請使用下列程式碼。
BlendState NoBlend {
AlphaToCoverageEnable = FALSE;
BlendEnable[0] = FALSE;
};
狀態物件會套用至使用 效果技術語法 (Direct3D 10 ) 中所述的 SetStateGroup 函式傳遞。 例如,若要套用上述 BlendState 物件,則會使用下列程式碼。
SetBlendState( NoBlend, float4( 0.0f, 0.0f, 0.0f, 0.0f ), 0xFFFFFFFF );
如需描述狀態使用方式的教學課程,請參閱 狀態管理。