SampleGrad (DirectX HLSL-Texturobjekt)

Stichproben einer Textur mithilfe eines Farbverlaufs, um die Berechnung des Beispielstandorts zu beeinflussen.

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

Parameter

Element BESCHREIBUNG
Objekt
Beliebige Texturobjekttypen (außer Texture2DMS und Texture2DMSArray).
S
[in] Ein Samplerzustand. Dies ist ein In einer Effektdatei deklariertes Objekt, das Zustandszuweisungen enthält.
Lage
[in] Die Texturkoordinaten. Der Argumenttyp ist vom Texturobjekttyp abhängig.
Texture-Object Typ Parametertyp
Texture1D float
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4
Texture2DMS, Texture2DMSArray Nicht unterstützt

DDX

[in] Die Änderungsrate der Oberflächengeometrie in x-Richtung. Der Argumenttyp ist vom Texturobjekttyp abhängig.

Texture-Object Typ Parametertyp
Texture1D, Texture1DArray float
Texture2D, Texture2DArray float2
Texture3D, TextureCube, TextureCubeArray float3
Texture2DMS, Texture2DMSArray Nicht unterstützt

DDY

[in] Die Änderungsrate der Oberflächengeometrie in y-Richtung. Der Argumenttyp ist vom Texturobjekttyp abhängig.

Texture-Object Typ Parametertyp
Texture1D, Texture1DArray float
Texture2D, Texture2DArray float2
Texture3D, TextureCube, TextureCubeArray float3
Texture2DMS, Texture2DMSArray Nicht unterstützt

Offset

[in] Ein optionaler Texturkoordinatenoffset, der für beliebige Texturobjekttypen verwendet werden kann. Der Offset wird vor der Stichprobenentnahme auf die Position angewendet. Verwenden Sie einen Offset nur auf einer ganzzahligen MIP-Ebene. andernfalls erhalten Sie möglicherweise Ergebnisse, die sich nicht gut auf die Hardware übersetzen lassen. Der Argumenttyp ist vom Texturobjekttyp abhängig. Weitere Informationen finden Sie unterAnwenden ganzzahliger Offsets.

Texture-Object Typ Parametertyp
Texture1D, Texture1DArray INT
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray Nicht unterstützt
Texture2DMS, Texture2DMSArray Nicht unterstützt

Rückgabewert

Der Vorlagentyp der Textur, bei dem es sich um einen ein- oder mehrteiligen Vektor handeln kann. Das Format basiert auf der DXGI_FORMAT der Textur.

Minimales Shadermodell

Diese Funktion wird in den folgenden Shadermodellen unterstützt.

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 ist im Shadermodell 4.1 oder höher verfügbar.
  2. Shadermodell 4.1 ist in Direct3D 10.1 oder höher verfügbar.

Beispiel

Dieses partielle Codebeispiel stammt aus der Datei MotionBlur.fx im MotionBlur10-Beispiel.

// 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);
    
    ...
}

Textur-Objekt