Функция Sample(S,float,int,float,uint) (справочник по HLSL)

Образцы Texture2D с необязательным значением для закрепления значений уровня детализации (LOD) и возвращают состояние операции.

Примечание

Требуется модель шейдера 5 или выше.

 

Синтаксис

DXGI_FORMAT Sample(
  in  SamplerState S,
  in  float Location,
  in  int Offset,
  in  float Clamp,
  out uint Status
);

Параметры

S [in]

Состояние sampler. Это объект, объявленный в файле эффектов, который содержит назначения состояний.

Расположение [в]

Координаты текстуры. Тип аргумента зависит от типа объекта текстуры.

Тип Texture-Object Тип параметра
Texture1D FLOAT
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4

 

Смещение [в]

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

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

 

Зажим [in]

Необязательное значение для закрепления примеров значений LOD. Например, если передать значение 2.0f для значения clamp, убедитесь, что ни один отдельный образец не обращается к уровню MIP меньше 2,0f.

Состояние [out]

Состояние операции. Вы не можете получить доступ к состоянию напрямую; Вместо этого передайте состояние встроенной функции CheckAccessFullyMapped . CheckAccessFullyMapped возвращает значение TRUE , если все значения из соответствующей операции Sample, Gather или Load обращались к сопоставленным плиткам в ресурсе с плитками. Если какие-либо значения были взяты из несопоставленной плитки, Функция CheckAccessFullyMapped возвращает значение FALSE.

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

Формат текстуры, который является одним из типизированных значений, перечисленных в DXGI_FORMAT.

Комментарии

Выборка текстур использует положение текселя для поиска значения текселя. Смещение можно применить к позиции перед поиском. Состояние выборки содержит параметры выборки и фильтрации. Этот метод можно вызвать в пиксельном шейдере, но он не поддерживается в вершинном или геометрическом шейдере.

Использовать смещение только в целочисленном miplevel; В противном случае результаты могут отличаться в зависимости от реализации оборудования или параметров драйвера.

Вычисление позиций Текселя

Координаты текстур — это значения с плавающей запятой, ссылающиеся на данные текстуры, которые также называют нормализованным пространством текстуры. Режимы упаковки адресов применяются в этом порядке (координаты текстуры + смещения + режим переноса) для изменения координат текстуры за пределами диапазона [0...1].

Для массивов текстур дополнительное значение в параметре location указывает индекс в массиве текстур. Этот индекс рассматривается как масштабируемое значение с плавающей точкой (вместо нормализованного пространства для стандартных координат текстур). Преобразование в целочисленный индекс выполняется в следующем порядке (float + round-to-ближайшее-четное целое число + закрепление в диапазоне массива).

Применение смещения координат текстуры

Параметр offset изменяет координаты текстуры в пространстве текселя. Несмотря на то, что координаты текстуры являются нормализованными числами с плавающей запятой, смещение применяет целочисленное смещение. Также обратите внимание, что смещения текстуры должны быть статическими.

Возвращаемый формат данных определяется форматом текстуры. Например, если ресурс текстуры был определен в формате DXGI_FORMAT_A8B8G8R8_UNORM_SRGB, операция выборки преобразует выборки тексели из гаммы 2.0 в 1.0, фильтрует и записывает результат в виде значения с плавающей запятой в диапазоне [0..1].

См. также раздел

Примеры методов

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