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.
|
||||||||||||
DDX |
[in] Frequenza di modifica della geometria della superficie nella direzione x. Il tipo di argomento dipende dal tipo di oggetto trama.
|
||||||||||||
DDY |
[in] Frequenza di modifica della geometria della superficie nella direzione y. Il tipo di argomento dipende dal tipo di oggetto trama.
|
||||||||||||
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.
|
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 |
- TextureCubeArray è disponibile nel modello shader 4.1 o versione successiva.
- 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);
...
}