SampleGrad (DirectX HLSL-Texturobjekt)
Probieren Sie eine Textur mithilfe eines Farbverlaufs aus, um die Art und Weise zu beeinflussen, wie die Stichprobenposition berechnet wird.
<Vorlagentyp > Object.SampleGrad( sampler _ state S, float Location, float DDX, float DDY [ , int Offset ] );
Parameter
| Element | Beschreibung | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Objekt |
Jeder Texturobjekttyp (mit Ausnahme von Texture2DMS und Texture2DMSArray). |
||||||||||||
| S |
[in] Ein Samplerzustand. Dies ist ein Objekt, das in einer Effektdatei deklariert ist, die 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 jeden Texturobjekttyp verwendet werden kann. Der Offset wird vor der Stichprobenentnahme auf die Position angewendet. Verwenden Sie einen Offset nur auf einem ganzzahligen miplevel. Andernfalls erhalten Sie möglicherweise Ergebnisse, die sich nicht gut in die Hardware übersetzen lassen. Der Argumenttyp ist vom Texturobjekttyp abhängig. Weitere Informationen finden Sie unterAnwenden von ganzzahligen Offsets.
|
Rückgabewert
Der Vorlagentyp der Textur, bei dem es sich um einen Ein- oder Mehrkomponentenvektor aussetzen kann. Das Format basiert auf dem DXGI _ FORMATder Textur.
Shader-Mindestmodell
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 Teilcodebeispiel 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);
...
}