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.
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’échantillonneur.
|
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 de tableau facultative ; entier positif supérieur ou égal à 1.
-
SamplerType
-
[in] Type sampler, qui est l’un des 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. L’mot clé texture est obligatoire sur le côté gauche ; le nom de la variable appartient sur le côté droit de l’expression dans les crochets.
-
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’instruction (entre crochets). 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 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 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 :
- Direct3D 10 utilise des groupes d’états.
- Direct3D 9 utilise des états individuels.
Exemple
Différences entre Direct3D 9 et Direct3D 10 : Voici un exemple partiel d’échantillonneur Direct3D 9 de l’exemple BasicHLSL.
Voici un exemple partiel d’échantillonneur Direct3D 10 de l’exemple BasicHLSL10.
|
Voici un exemple partiel de déclaration d’état de comparaison d’échantillonneur 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);