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.