Type d’échantillonneur

Utilisez la syntaxe suivante pour déclarer l’état de l’échantillonneur ainsi que l’état de comparaison de l’échantillonneur.

Différences entre Direct3D 9 et Direct3D 10 et versions ultérieures :
Voici la syntaxe d’un échantillonneur dans Direct3D 9.
nomde l’échantillonneur = SamplerType{texture = <texture_variable > ; [state_name = state_value ;] ... };

La syntaxe d’un échantillonneur dans Direct3D 10 et les versions ultérieures est légèrement modifiée pour prendre en charge les objets texture et les tableaux d’échantillonneurs.

SamplerType nom [index]{[state_name = state_value ;] ... };

Paramètres

échantillonneur

Direct3D 9 uniquement. Mot clé requis.

Nomme

Chaîne ASCII qui identifie de façon unique le nom de la variable d’échantillonneur.

[Évaluer]

Direct3D 10 et versions ultérieures uniquement. Taille de tableau facultative ; entier positif supérieur ou égal à 1.

SamplerType

[dans ] le type d’échantillonneur, qui est l’un des suivants : échantillonner, sampler1D, sampler2D, sampler3D, samplerCUBE, état de l' échantillonneur _, SamplerState.

Différences entre Direct3D 9 et Direct3D 10 et versions ultérieures :

  • Direct3D 10 et versions ultérieures prennent en charge un type d’échantillonneur supplémentaire : SamplerComparisonState.

Texture = <> _ variable de texture ;

Direct3D 9 uniquement. Variable de texture. Le mot clé de texture est obligatoire sur le côté gauche ; le nom de la variable appartient sur le côté droit de l’expression entre crochets pointus.

State _ name = valeur d’état _

[dans le ] ou les affectations d’État facultatives. La partie gauche d’une assignation est un nom d’État, la partie droite est la valeur d’État. Toutes les attributions d’État doivent apparaître dans un bloc d’instructions (entre accolades). Chaque instruction est séparée par un point-virgule. Le tableau suivant répertorie les noms d’État possibles.

// sampler state
AddressU
AddressV
AddressW
BorderColor
Filter
MaxAnisotropy
MaxLOD
MinLOD
MipLODBias

// sampler-comparison state
ComparisonFunc

La partie droite de chaque expression correspond à la valeur affectée à chaque État. Consultez la structure DESC de l' _ _ échantillonneur d3d11 pour connaître les valeurs d’État possibles pour Direct3D 11. Il y a une relation 1 à 1 entre les noms d’État et les membres de la structure. Consultez l’exemple qui suit.

Notes

Lorsque vous implémentez un effet, l’état de l’échantillonneur est l’un des différents types d’État que vous devrez peut-être configurer dans le pipeline pour le rendu. Pour obtenir la liste de tous les États possibles que vous pouvez définir dans un effet, consultez :

Exemple

Différences entre Direct3D 9 et Direct3D 10 :
Voici un exemple partiel d’un échantillonneur Direct3D 9 issu de l’exemple BasicHLSL.
sampler MeshTextureSampler = 
sampler_state
{
    Texture = <g_MeshTexture>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
};

Voici un exemple partiel d’un échantillonneur Direct3D 10 à partir de l' exemple BasicHLSL10.

SamplerState MeshTextureSampler
{
    Filter = MIN_MAG_MIP_LINEAR;
    AddressU = Wrap;
    AddressV = Wrap;
};

Voici un exemple partiel de la déclaration de l’état de comparaison de l’échantillonneur et de l’appel d’un échantillonneur de comparaison dans Direct3D 10.

SamplerComparisonState ShadowSampler
{
   // sampler state
   Filter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT;
   AddressU = MIRROR;
   AddressV = MIRROR;

   // sampler comparison state
   ComparisonFunc = LESS;
};
        
float3 vModProjUV;
  ...
float fShadow = g_ShadowMap.SampleCmpLevelZero( ShadowSampler, vModProjUV.xy, vModProjUV.z);

Voir aussi

Types de données (DirectX HLSL)