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.