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] Необязательное смещение координат текстуры, которое можно использовать для любых типов объектов текстуры. Смещение применяется к расположению перед выборкой. Использовать смещение только при целочисленном miplevel; В противном случае вы можете получить результаты, которые не будут хорошо преобразованы в оборудование. Тип аргумента зависит от типа объекта текстуры. Дополнительные сведения см.в разделе Применение целочисленных смещения.

Тип 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 или более поздней версии.

Пример

Этот пример частичного кода получен из файла MotionBlur.fx в примере 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);
    
    ...
}

Объект текстуры