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.
sampler NameSamplerType = { Texture = <texture_variable>; [state_name = state_value;] ... };

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

SamplerType Name[Index]{ [state_name = state_value;] ... };

Paramètres

Sampler

Direct3D 9 uniquement. Mot clé obligatoire.

Nom

Chaîne ASCII qui identifie de manière unique le nom de la variable sampler.

[Index]

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

SamplerType

[in] Type d’échantillonneur, qui est l’un des éléments suivants : sampler, sampler1D, sampler2D, sampler3D, samplerCUBE, sampler_state, SamplerState.

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

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

Texture = <texture_variable>;

Direct3D 9 uniquement. Variable de texture. Le mot clé Texture est requis sur le côté gauche ; le nom de la variable appartient à droite de l’expression entre crochets d’angle.

state_name = state_value

[in] Attributions d’état facultatives. Le côté gauche d’une affectation est un nom d’état, le côté droit est la valeur d’état. Toutes les attributions d’état doivent apparaître dans un bloc d’instructions (entre crochets curly). 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

Le côté droit de chaque expression est la valeur affectée à chaque état. Consultez la structure D3D11_SAMPLER_DESC pour connaître les valeurs d’état possibles pour Direct3D 11. Il existe une relation de 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 plusieurs 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’échantillonneur Direct3D 9 à partir de BasicHLSL Sample.
sampler MeshTextureSampler = 
sampler_state
{
    Texture = <g_MeshTexture>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
};

Voici un exemple partiel d’un échantillonneur Direct3D 10 de BasicHLSL10.

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

Voici un exemple partiel de déclaration d’état de comparaison d’sampler et d’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)