Partager via


SampleLevel (objet de texture HLSL DirectX)

Échantillonne une texture à l’aide d’un décalage de niveau mipmap.

<Template Type> Object.SampleLevel( sampler_state S, float Location, float LOD [, int Offset] );

Cette fonction est similaire à Sample , sauf qu’elle utilise le niveau LOD (dans le dernier composant du paramètre d’emplacement) pour choisir le niveau mipmap. Par exemple, une texture 2D utilise les deux premiers composants pour les coordonnées uv et le troisième composant pour le niveau mipmap.

Paramètres

Élément Description
Objet
Tout type d’objet de texture (à l’exception de Texture2DMS et Texture2DMSArray).
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

Si l’objet de texture est un tableau, le dernier composant est l’index du tableau.

LOD

[in] Nombre qui spécifie le niveau mipmap. Si la valeur est = 0, le zéro 'th (plus grande carte) est utilisé. La valeur fractionnaire (si elle est fournie) est utilisée pour interpoler entre deux niveaux mipmap.

Compenser

[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

Valeur renvoyée

Type de modèle de la texture, qui peut être un vecteur à composant unique ou multicomposant. Le format est basé sur la DXGI_FORMAT de la texture.

Modèle de nuanceur minimal

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

vs_4_0 vs_4_1 ps_4_0 ps_4_1 gs_4_0 gs_4_1
x x x x x x
  1. TextureCubeArray est disponible dans le modèle nuanceur 4.1 ou ultérieur.
  2. Shader Model 4.1 est disponible dans Direct3D 10.1 ou version ultérieure.

Exemple

Cet exemple de code partiel provient du fichier Instancing.fx dans l’exemple Instancing10.

// Object Declarations
Texture1D g_txRandom;

SamplerState g_samPoint
{
    Filter = MIN_MAG_MIP_POINT;
    AddressU = Wrap;
    AddressV = Wrap;
};

    
// Shader body calling the intrinsic function
float3 RandomDir(float fOffset)
{   
    float tCoord = (fOffset) / 300.0;
    return g_txRandom.SampleLevel( g_samPoint, tCoord, 0 );
   ...

Texture-Object