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.
|
||||||||||||
DDX |
[in] Die Änderungsrate der Oberflächengeometrie in x-Richtung. Der Argumenttyp ist vom Texturobjekttyp abhängig.
|
||||||||||||
DDY |
[in] Die Änderungsrate der Oberflächengeometrie in y-Richtung. Der Argumenttyp ist vom Texturobjekttyp abhängig.
|
||||||||||||
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.
|
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 |
- TextureCubeArray ist im Shadermodell 4.1 oder höher verfügbar.
- 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);
...
}