Condividi tramite


SampleGrad (oggetto Trama DirectX HLSL)

Campiona una trama usando una sfumatura per influenzare il modo in cui viene calcolata la posizione del campione.

<Template Type> Object.SampleGrad( sampler_state S, float Location, float DDX, float DDY [, int Offset] );

Parametri

Elemento Descrizione
Oggetto
Qualsiasi tipo di oggetto trama (ad eccezione di Texture2DMS e Texture2DMSArray).
S
[in] Stato sampler. Si tratta di un oggetto dichiarato in un file di effetto che contiene assegnazioni di stato.
Posizione
[in] Coordinate della trama. Il tipo di argomento dipende dal tipo di oggetto trama.
tipo Texture-Object Tipo di parametro
Texture1D float
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4
Texture2DMS, Texture2DMSArray non supportato

DDX

[in] Frequenza di modifica della geometria della superficie nella direzione x. Il tipo di argomento dipende dal tipo di oggetto trama.

tipo Texture-Object Tipo di parametro
Texture1D, Texture1DArray float
Texture2D, Texture2DArray float2
Texture3D, TextureCube, TextureCubeArray float3
Texture2DMS, Texture2DMSArray non supportato

DDY

[in] Frequenza di modifica della geometria della superficie nella direzione y. Il tipo di argomento dipende dal tipo di oggetto trama.

tipo Texture-Object Tipo di parametro
Texture1D, Texture1DArray float
Texture2D, Texture2DArray float2
Texture3D, TextureCube, TextureCubeArray float3
Texture2DMS, Texture2DMSArray non supportato

Compensare

[in] Offset di coordinate di trama facoltativo, che può essere usato per qualsiasi tipo di oggetto trama. L'offset viene applicato alla posizione prima del campionamento. Usa un offset solo in corrispondenza di un miplevel intero; in caso contrario, è possibile ottenere risultati che non si traducono correttamente nell'hardware. Il tipo di argomento dipende dal tipo di oggetto trama. Per altre informazioni, vediApplicazione di offset integer.

tipo Texture-Object Tipo di parametro
Texture1D, Texture1DArray INT
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray non supportato
Texture2DMS, Texture2DMSArray non supportato

Valore restituito

Tipo di modello della trama, che può essere un vettore a singolo o multi-componente. Il formato si basa sulla DXGI_FORMAT della trama.

Modello minimo shader

Questa funzione è supportata nei modelli di shader seguenti.

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 è disponibile nel modello shader 4.1 o versione successiva.
  2. Il modello shader 4.1 è disponibile in Direct3D 10.1 o versione successiva.

Esempio

Questo esempio di codice parziale proviene dal file MotionBlur.fx nell'esempio MotionBlur10.

// Object Declarations
Texture2D g_txDiffuse;

SamplerState g_samLinear
{
    Filter = ANISOTROPIC;
    MaxAnisotropy = 8;
    AddressU = Wrap;
    AddressV = Wrap;
};

struct VSSceneOut
{
    float4 Pos : SV_POSITION;
    float4 Color : COLOR0;
    float2 Tex : TEXCOORD;
    float2 Aniso : ANISOTROPY;
};

float4 PSSceneMain( VSSceneOut Input ) : SV_TARGET
{
    float2 ddx = Input.Aniso;
    float2 ddy = Input.Aniso;
    
    // Shader body calling the intrinsic function
    float4 diff = g_txDiffuse.SampleGrad( g_samLinear, Input.Tex, ddx, ddy);
    
    ...
}

Texture-Object