Partager via


Sample(S,float,int,float,uint) function (référence HLSL)

Échantillonne un Texture2D avec une valeur facultative pour limiter les valeurs de niveau de détail (LOD) à et retourne status de l’opération.

Notes

Nécessite le modèle de nuanceur 5 ou supérieur.

 

Syntaxe

DXGI_FORMAT Sample(
  in  SamplerState S,
  in  float Location,
  in  int Offset,
  in  float Clamp,
  out uint Status
);

Paramètres

S [in]

État de l’échantillonneur. Il s’agit d’un objet déclaré dans un fichier d’effet qui contient des affectations d’état.

Emplacement [in]

Coordonnées de texture. Le type d’argument dépend du type d’objet de texture.

Texture-Object Type Type de paramètre
Texture1D float
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4

 

Offset [in]

Décalage de coordonnées de texture facultatif, qui peut être utilisé pour n’importe quel type d’objet de texture ; le décalage est appliqué à l’emplacement avant l’échantillonnage. Les décalages de texture doivent être statiques. Le type d’argument dépend du type d’objet de texture. Pour plus d’informations, consultez Application de décalages de coordonnées de texture.

Texture-Object Type Type de paramètre
Texture1D, Texture1DArray int
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray non pris en charge

 

Clamp [in]

Valeur facultative à laquelle limiter les exemples de valeurs LOD. Par exemple, si vous passez 2,0f pour la valeur de clamp, vous vous assurez qu’aucun échantillon individuel n’accède à un niveau mip inférieur à 2,0f.

État [out]

L’état de l’opération. Vous ne pouvez pas accéder directement à l’status ; au lieu de cela, transmettez le status à la fonction intrinsèque CheckAccessFullyMapped. CheckAccessFullyMapped retourne TRUE si toutes les valeurs de l’opération Sample, Gather ou Load correspondante ont accédé à des vignettes mappées dans une ressource en mosaïque. Si des valeurs ont été extraites d’une vignette non mappée, CheckAccessFullyMapped renvoie FALSE.

Valeur retournée

Format de texture, qui est l’une des valeurs typées répertoriées dans DXGI_FORMAT.

Notes

L’échantillonnage de texture utilise la position texel pour rechercher une valeur de texel. Un décalage peut être appliqué à la position avant la recherche. L’état de l’échantillonneur contient les options d’échantillonnage et de filtrage. Cette méthode peut être appelée dans un nuanceur de pixels, mais elle n’est pas prise en charge dans un nuanceur de vertex ou un nuanceur de géométrie.

Utiliser un décalage uniquement à un miplevel entier ; sinon, vous pouvez obtenir des résultats différents en fonction de l’implémentation matérielle ou des paramètres de pilote.

Calcul des positions Texel

Les coordonnées de texture sont des valeurs à virgule flottante qui référencent des données de texture, également appelées espace de texture normalisé. Les modes d’habillage d’adresses sont appliqués dans cet ordre (coordonnées de texture + décalages + mode habillage) pour modifier les coordonnées de texture en dehors de la plage [0...1].

Pour les tableaux de textures, une valeur supplémentaire dans le paramètre location spécifie un index dans un tableau de textures. Cet index est traité comme une valeur float mise à l’échelle (au lieu de l’espace normalisé pour les coordonnées de texture standard). La conversion en index entier s’effectue dans l’ordre suivant (float + entier arrondi à proche le plus proche + clamp dans la plage de tableau).

Application de décalages de coordonnées de texture

Le paramètre offset modifie les coordonnées de texture, dans l’espace texel. Même si les coordonnées de texture sont des nombres à virgule flottante normalisées, le décalage applique un décalage entier. Notez également que les décalages de texture doivent être statiques.

Le format de données retourné est déterminé par le format de texture. Par exemple, si la ressource de texture a été définie avec le format DXGI_FORMAT_A8B8G8R8_UNORM_SRGB, l’opération d’échantillonnage convertit les texels échantillonnés de gamma 2.0 en 1.0, filtre et écrit le résultat sous la forme d’une valeur à virgule flottante dans la plage [0..1].

Voir aussi

Exemples de méthodes

Texture-Object