共用方式為


SampleGrad (DirectX HLSL 紋理物件)

使用漸層取樣紋理,以影響取樣位置的計算方式。

<範本類型 > Object.SampleGrad ( sampler_state S, float Location, float DDX, float DDY [, int Offset] ) ;

參數

項目 描述
物件
Texture2DMS 和 Texture2DMSArray 以外的任何 紋理物件 類型 () 。
S
[in] 取樣器狀態。 這是在包含狀態指派的效果檔案中宣告的物件。
位置
[in]紋理座標。 引數類型相依于紋理物件類型。
Texture-Object類型 參數類型
Texture1D FLOAT
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4
Texture2DMS、Texture2DMSArray 不支援

DDX

[in]以 x 方向變更表面幾何的速率。 引數類型相依于紋理物件類型。

Texture-Object類型 參數類型
Texture1D、Texture1DArray FLOAT
Texture2D、Texture2DArray float2
Texture3D、TextureCube、TextureCubeArray float3
Texture2DMS、Texture2DMSArray 不支援

DDY

[in]以 Y 方向變更表面幾何的速率。 引數類型相依于紋理物件類型。

Texture-Object類型 參數類型
Texture1D、Texture1DArray FLOAT
Texture2D、Texture2DArray float2
Texture3D、TextureCube、TextureCubeArray float3
Texture2DMS、Texture2DMSArray 不支援

抵消

[in]選擇性紋理座標位移,可用於任何紋理物件類型。 位移會套用至取樣之前的位置。 只在整數位移處使用位移;否則,您可能會得到無法正確轉譯為硬體的結果。 引數類型相依于紋理物件類型。 如需詳細資訊,請參閱套用整數位移

Texture-Object類型 參數類型
Texture1D、Texture1DArray int
Texture2D、Texture2DArray int2
Texture3D int3
TextureCube、TextureCubeArray 不支援
Texture2DMS、Texture2DMSArray 不支援

傳回值

紋理的範本類型,可能是單一或多元件向量。 格式是以紋理 的DXGI_FORMAT為基礎。

最小著色器模型

下列著色器模型中支援此函式。

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 可在著色器模型 4.1 或更高版本中使用。
  2. 著色器模型 4.1 可在 Direct3D 10.1 或更高版本中使用。

範例

此部分程式碼範例來自 MotionBlur10 範例中的 MotionBlur.fx檔案。

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

Texture-Object