Partager via


sample_d (sm4 - asm)

Échantillonne les données de l’élément/texture spécifié à l’aide de l’adresse spécifiée et du mode de filtrage identifié par l’échantillonneur donné.

sample_d[_aoffimmi(u,v,w)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler, srcXDerivatives[.swizzle], srcYDerivatives[.swizzle]
Élément Description
Dest
[in] Adresse des résultats de l’opération.
srcAddress
[in] Ensemble de coordonnées de texture. Pour plus d’informations, consultez l’exemple d’instruction .
srcResource
[in] Registre de textures. Pour plus d’informations, consultez l’exemple d’instruction .
srcSampler
[in] Registre de l’échantillonneur. Pour plus d’informations, consultez l’exemple d’instruction .
srcXDerivatives
[in] Dérivés de l’adresse source dans la direction x. Pour plus d’informations, consultez la section Remarques.
srcYDerivatives
[in] Dérivés de l’adresse source dans la direction y. Pour plus d’informations, consultez la section Remarques.

Remarques

Cette instruction se comporte comme l’exemple d’instruction, sauf que les dérivées de l’adresse source dans la direction x et la direction y sont fournies par des paramètres supplémentaires, respectivement srcXDerivatives et srcYDerivatives. Ces dérivés se trouvent dans un espace de coordonnées de texture normalisé.

Les composants r, g et b de srcXDerivatives (POS-swizzle) fournissent du/dx, dv/dx et dw/dx. Le composant « a » (POS-swizzle) est ignoré.

Les composants r, g et b de srcYDerivatives (POS-swizzle) fournissent du/dy, dv/dy et dw/dy. Le composant « a » (POS-swizzle) est ignoré.

Contrairement à l’exemple d’instruction, qui est autorisé à partager un seul calcul LOD sur un tampon 2x2, sample_d devez calculer le LOD de manière complètement indépendante, par pixel lorsqu’il est utilisé dans le nuanceur de pixels.

Si les entrées dérivées de sample_d proviennent d’instructions de calcul dérivées dans le nuanceur de pixels et que les valeurs incluent INF/NaN, le comportement de sample_d peut ne pas correspondre à l’exemple d’instruction , qui calcule implicitement la dérivée. Les valeurs INF/NaN peuvent affecter le calcul LOD différemment.

L’extraction à partir d’un emplacement d’entrée qui n’a rien de lié retourne 0 pour tous les composants.

Restrictions

  • sample_d hérite des mêmes restrictions que l’exemple d’instruction , ainsi qu’une restriction supplémentaire ci-dessous pour ses paramètres supplémentaires.
  • srcXDerivatives et srcYDerivatives doivent être temp (r#/x#), constantBuffer (cb#), input (v#) ou des valeurs immédiates.

Cette instruction s’applique aux étapes suivantes du nuanceur :

Nuanceur de sommets Nuanceur de géométrie Nuanceur de pixels
X X x

Modèle de nuanceur minimal

Cette fonction est prise en charge dans les modèles de nuanceur suivants.

Modèle de nuanceur Pris en charge
Modèle de nuanceur 5 Oui
Modèle de nuanceur 4.1 Oui
Modèle de nuanceur 4 Oui
Modèle de nuanceur 3 (DirectX HLSL) Non
Shader Model 2 (DirectX HLSL) Non
Modèle de nuanceur 1 (DirectX HLSL) Non

Shader Model 4 Assembly (DirectX HLSL)