Condividi tramite


Gruppi di stato degli effetti (Direct3D 10)

Gli stati di effetto sono coppie nome-valore sotto forma di espressione.

Stato di blend

Stato effetto Gruppo
ALPHATOCOVERAGEENABLE, BLENDENABLE, SRCBLEND, DESTBLEND, BLENDOP, SRCBLENDALPHA, DESTBLENDALPHA, BLENDOPALPHA, RENDERTARGETWRITEMASK Membri di D3D10_BLEND_DESC

Stato profondità e stencil

Stato effetto Gruppo
DEPTHENABLE, DEPTHWRITEMASK, DEPTHFUNC, STENCILENABLE, STENCILREADMASK, STENCILWRITEMASK Membri di D3D10_DEPTH_STENCIL_DESC
FRONTFACESTENCILFAIL, FRONTFACESTENCILZFAIL, FRONTFACESTENCILPASS, FRONTFACESTENCILFUNC, BACKFACESTENCILFAIL, BACKFACESTENCILZFAIL, BACKFACESTENCILPASS, BACKFACESTENCILPASS, BACKFACESTENCILFUNC Membro di D3D10_DEPTH_STENCILOP_DESC

Stato rasterizer

Stato effetto Gruppo
FILLMODE D3D10_FILL_MODE
CULLMODE D3D10_CULL_MODE
FRONTCOUNTERCLOCKWISE, DEPTHBIAS, DEPTHBIASCLAMP, SLOPESCALEDDEPTHBIAS, ZCLIPENABLE, SCISSORENABLE, MULTISAMPLEENABLE, ANTIALIASEDLINEENABLE Membri di D3D10_RASTERIZER_DESC

Stato dell'esempio

Stato effetto Gruppo
Filter, AddressU, AddressV, AddressW, MipLODBias, MaxAnisotropy, ComparisonFunc, BorderColor, MinLOD, MaxLOD Membri di D3D10_SAMPLER_DESC

Per esempi, vedere Tipo di sampler (DirectX HLSL).

Stato dell'oggetto Effetto

Questo oggetto effetto Mapping a
RASTERIZERSTATE Oggetto Stato Rasterizer .
DEPTHSTENCILSTATE Oggetto State Depth e Stencil State .
BLENDSTATE Oggetto Stato Blend .
VERTEXSHADER Oggetto vertex shader compilato.
PIXELSHADER Oggetto pixel shader compilato.
GEOMETRYSHADER Oggetto geometry shader compilato.
DS_STENCILREF AB_BLENDFACTOR AB_SAMPLEMASK Membri di D3D10_PASS_DESC.

Definizione e uso di oggetti di stato

Gli oggetti stato vengono dichiarati nei file FX nel formato seguente. StateObjectType è uno degli stati elencati in precedenza e MemberName è il nome di qualsiasi membro che avrà un valore non predefinito.

StateObjectType ObjectName {
 MemberName = value;
 ...
 MemberName = value;
};

Ad esempio, per configurare un oggetto state blend con AlphaToCoverageEnable e BlendEnable[0] impostato su FALSE, verrà usato il codice seguente.

BlendState NoBlend {
 AlphaToCoverageEnable = FALSE;
 BlendEnable[0] = FALSE;
};

L'oggetto state viene applicato a una tecnica passata usando una delle funzioni SetStateGroup descritte in Sintassi di effetto (Direct3D 10). Ad esempio, per applicare l'oggetto BlendState descritto sopra il codice seguente verrà usato.

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

Per un'esercitazione che descrive l'uso degli stati, vedere Gestione dello stato.