SampleGrad (objet de texture HLSL DirectX)
Échantillonne une texture à l’aide d’un dégradé pour influencer la façon dont l’emplacement de l’exemple est calculé.
<Type de> modèle Object.SampleGrad( sampler_state S, float Location, float DDX, float DDY [, int Offset] );
Paramètres
Élément | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Objet |
N’importe quel type d’objet de texture (à l’exception de Texture2DMS et Texture2DMSArray). |
||||||||||||
S |
[in] État Sampler. Il s’agit d’un objet déclaré dans un fichier d’effet qui contient des attributions d’état. |
||||||||||||
Emplacement |
[in] Coordonnées de texture. Le type d’argument dépend du type texture-objet.
|
||||||||||||
DDX |
[in] Taux de modification de la géométrie de surface dans la direction x. Le type d’argument dépend du type texture-objet.
|
||||||||||||
DDY |
[in] Taux de modification de la géométrie de surface dans le sens y. Le type d’argument dépend du type texture-objet.
|
||||||||||||
Compenser |
[in] Décalage de coordonnées de texture facultatif, qui peut être utilisé pour tous les types d’objets de texture. Le décalage est appliqué à l’emplacement avant l’échantillonnage. Utilisez un décalage uniquement à un miplevel entier ; sinon, vous pouvez obtenir des résultats qui ne se traduisent pas bien en matériel. Le type d’argument dépend du type texture-objet. Pour plus d’informations, consultezApplication de décalages d’entiers.
|
Valeur renvoyée
Type de modèle de la texture, qui peut être un vecteur monocomposant ou multicomposant. Le format est basé sur la DXGI_FORMAT de la texture.
Modèle de nuanceur minimal
Cette fonction est prise en charge dans les modèles de nuanceur suivants.
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 est disponible dans le modèle de nuanceur 4.1 ou version ultérieure.
- Le modèle de nuanceur 4.1 est disponible dans Direct3D 10.1 ou version ultérieure.
Exemple
Cet exemple de code partiel provient du fichier MotionBlur.fx dans l’exemple 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);
...
}