Partager via


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

Échantillonne une Texture2D avec une valeur facultative pour fixer des exemples de valeurs de niveau de détail (LOD).

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
);

Paramètres

S [in]

État Sampler. Il s’agit d’un objet déclaré dans un fichier d’effet qui contient des attributions d’état.

Emplacement [in]

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

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

 

Décalage [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 texture-objet. Pour plus d’informations, consultez Application de décalages de coordonnées de texture.

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

 

Pince [in]

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

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 du 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.

Utilisez 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 du 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 d’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 d’arrondi à proche le plus proche + pince à 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 au 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 forme de valeur à virgule flottante dans la plage [0..1].

Utilisez un décalage uniquement à un miplevel entier ; sinon, vous pouvez obtenir des résultats qui ne se traduisent pas bien en matériel.

Voir aussi

Exemples de méthodes

Texture-Objet