SampleLevel (объект текстуры DirectX HLSL)

Образцы текстуры с помощью смещения уровня MIP-карты.

<Тип> шаблона Object.SampleLevel( sampler_state S, float Location, float LOD [, int Offset] );

Эта функция похожа на Sample , за исключением того, что она использует уровень LOD (в последнем компоненте параметра location) для выбора уровня MIP-карты. Например, двумерная текстура использует первые два компонента для уф-координат и третий компонент для уровня MIP-карты.

Параметры

Элемент Описание
Объекта
Любой тип объекта текстуры (кроме Texture2DMS и Texture2DMSArray).
S
[in] Состояние sampler. Это объект, объявленный в файле эффектов, который содержит назначения состояний.
Расположение
[in] Координаты текстуры. Тип аргумента зависит от типа объекта текстуры.
Тип Texture-Object Тип параметра
Texture1D FLOAT
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4

Если объект текстуры является массивом, последним компонентом является индекс массива.

ЛОД

[in] Число, задающее уровень MIP-карты. Если значение равно 0, используется нулевой (самая большая карта). Дробное значение (если указано) используется для интерполяции между двумя уровнями MIP-карты.

Смещение

[in] Необязательное смещение координат текстуры, которое можно использовать для любого типа объекта текстуры; смещение применяется к расположению перед выборкой. Смещения текстуры должны быть статическими. Тип аргумента зависит от типа объекта текстуры. Дополнительные сведения см. в разделе Применение смещения координат текстуры.

Тип Texture-Object Тип параметра
Texture1D, Texture1DArray INT
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray не поддерживается

Возвращаемое значение

Тип шаблона текстуры, который может быть однокомпонентным или многокомпонентным вектором. Формат основан на 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 или более поздней версии.

Пример

Этот частичный пример кода из файла Instancing.fx в примере Instancing10.

// Object Declarations
Texture1D g_txRandom;

SamplerState g_samPoint
{
    Filter = MIN_MAG_MIP_POINT;
    AddressU = Wrap;
    AddressV = Wrap;
};

    
// Shader body calling the intrinsic function
float3 RandomDir(float fOffset)
{   
    float tCoord = (fOffset) / 300.0;
    return g_txRandom.SampleLevel( g_samPoint, tCoord, 0 );
   ...

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