Partager via


Groupes d’états d’effet (Direct3D 10)

Les états d’effet sont des paires nom-valeur sous la forme d’une expression.

État de fusion

État de l’effet Groupe
ALPHATOCOVERAGEENABLE, BLENDENABLE, SRCBLEND, DESTBLEND, BLENDOP, SRCBLENDALPHA, DESTBLENDALPHA, BLENDOPALPHA, RENDERTARGETWRITEMASK Membres de D3D10_BLEND_DESC

Profondeur et état du gabarit

État de l’effet Groupe
DEPTHENABLE, DEPTHWRITEMASK, DEPTHFUNC, STENCILENABLE, STENCILREADMASK, STENCILWRITEMASK Membres de D3D10_DEPTH_STENCIL_DESC
FRONTFACESTENCILFAIL, FRONTFACESTENCILZFAIL, FRONTFACESTENCILPASS, FRONTFACESTENCILFUNC, BACKFACESTENCILFAIL, BACKFACESTENCILZFAIL, BACKFACESTENCILPASS, BACKFACESTENCILFUNC Membre de D3D10_DEPTH_STENCILOP_DESC

État du rastériseur

État de l’effet Groupe
FILLMODE D3D10_FILL_MODE
CULLMODE D3D10_CULL_MODE
FRONTCOUNTERCLOCKWISE, DEPTHBIAS, DEPTHBIASCLAMP, SLOPESCALEDDEPTHBIAS, ZCLIPENABLE, CISSORENABLE, MULTISAMPLEENABLE, ANTIALIASEDLINEENABLE Membres de D3D10_RASTERIZER_DESC

État de l’échantillonneur

État de l’effet Groupe
Filter, AddressU, AddressV, AddressW, MipLODBias, MaxAnisotropy, ComparisonFunc, BorderColor, MinLOD, MaxLOD Membres de D3D10_SAMPLER_DESC

Pour obtenir des exemples, consultez Type d’échantillonneur (DirectX HLSL).

État de l’objet d’effet

Cet objet d’effet Correspond à
RASTERIZERSTATE Objet d’état État de rastériseur .
DEPTHSTENCILSTATE Objet d’état Depth et Stencil.
BLENDSTATE Objet d’état Blend State .
VERTEXSHADER Objet de nuanceur de vertex compilé.
PIXELSHADER Objet de nuanceur de pixels compilé.
GEOMETRYSHADER Objet de nuanceur de géométrie compilé.
DS_STENCILREF AB_BLENDFACTOR AB_SAMPLEMASK Membres de D3D10_PASS_DESC.

Définition et utilisation d’objets d’état

Les objets d’état sont déclarés dans les fichiers FX au format suivant. StateObjectType est l’un des états répertoriés ci-dessus, et MemberName est le nom de tout membre qui aura une valeur autre que celle par défaut.

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

Par exemple, pour configurer un objet d’état de fusion avec AlphaToCoverageEnable et BlendEnable[0] défini sur FALSE, le code suivant est utilisé.

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

L’objet state est appliqué à une passe technique à l’aide de l’une des fonctions SetStateGroup décrites dans Syntaxe de la technique d’effet (Direct3D 10). Par exemple, pour appliquer l’objet BlendState décrit ci-dessus, le code suivant est utilisé.

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

Pour obtenir un tutoriel décrivant l’utilisation des états, consultez Gestion des états.