Встроенные функции

В следующей таблице перечислены встроенные функции, доступные в HLSL. Каждая функция содержит краткое описание и ссылку на эталонную страницу, которая содержит дополнительные сведения о входном аргументе и типе возвращаемого значения.

Имя Описание Минимальная модель шейдера
abort Завершает текущий вызов рисования или отправки. 4
abs Абсолютное значение (на компонент).
acos Возвращает arccosine каждого компонента x.
all Проверьте, являются ли все компоненты x ненулевой.
AllMemoryBarrier Блокирует выполнение всех потоков в группе, пока не будут завершены все доступы к памяти. 5
AllMemoryBarrierWithGroupSync Блокирует выполнение всех потоков в группе до тех пор, пока все доступы к памяти не будут завершены, и все потоки в группе достигли этого вызова. 5
любой Проверьте, не является ли какой-либо компонент x ненулевой.
asdouble Переинтерпретирует значение приведения в двойник. 5
asfloat Преобразуйте входной тип в float. 4
asin Возвращает арксину каждого компонента x.
asint Преобразуйте входной тип в целое число. 4
asuint Повторно интерпретирует битовый шаблон 64-разрядного типа в uint. 5
asuint Преобразуйте входной тип в целое число без знака. 4
atan Возвращает арктангент x.
atan2 Возвращает арктангент двух значений (x,y).
ceil Возвращает наименьшее целое число, которое больше или равно x.
CheckAccessFullyMapped Определяет, обращаются ли все значения из операции "Образец" или "Загрузка", к сопоставленным плиткам в ресурсе с плитками. 5
Зажим Зажимает x к диапазону [min, max].
clip Дис карта отображает текущий пиксель, если любой компонент x меньше нуля.
cos Возвращает косинус x.
cosh Возвращает гиперболический косинус x.
countbits Подсчитывает количество битов (на компонент) во входном целочисленном значении. 5
Крест Возвращает кросс-продукт двух трехмерных векторов.
D3DCOLORtoUBYTE4 Swizzles и масштабируемые компоненты 4D-вектора xto компенсируют отсутствие поддержки UBYTE4 в некоторых оборудованиях.
Ddx Возвращает частичное производное x относительно координаты x-пробела экрана.
ddx_coarse Вычисляет частичное производное с низкой точностью относительно координаты x-пространства экрана. 5
ddx_fine Вычисляет частичное производное с высокой точностью относительно координаты x-пространства экрана. 5
Ddy Возвращает частичное производное x относительно координаты y-пространства экрана.
ddy_coarse Вычисляет частичное производное с низкой точностью относительно координаты y-пространства экрана. 5
ddy_fine Вычисляет частичное производное с высокой точностью относительно координаты y-пространства экрана. 5
degrees Преобразует x из радианов в градусы.
Определитель Возвращает детерминант квадратной матрицы m.
DeviceMemoryBarrier Блокирует выполнение всех потоков в группе, пока не будут завершены все доступы к памяти устройства. 5
DeviceMemoryBarrierWithGroupSync Блокирует выполнение всех потоков в группе до тех пор, пока не будет завершен доступ ко всем потокам памяти устройства, и все потоки в группе достигли этого вызова. 5
distance Возвращает расстояние между двумя точками.
Точка Возвращает скалярное произведение двух векторов. 1
dst Вычисляет вектор расстояния. 5
errorf Отправляет сообщение об ошибке в очередь сведений. 4
EvaluateAttributeCentroid Оценивается в центроиде пикселей. 5
EvaluateAttributeAtSample Оценивается в индексированного расположении образца. 5
EvaluateAttributeSnapped Вычисляется в центроиде пикселей с смещением. 5
exp Возвращает экспонент base-e.
exp2 Базовый 2 экспонент (для каждого компонента).
f16tof32 Преобразует float16, хранящийся в низкой половине uint, в плавающую. 5
f32tof16 Преобразует входные данные в тип float16. 5
faceforward Возвращает -n * sign(dot(i, ng)).
firstbithigh Возвращает расположение первого набора бита, начиная с бита с самого высокого порядка и работы вниз на каждый компонент. 5
firstbitlow Возвращает расположение первого набора бита, начиная с наименьшего порядка, и работает вверх на каждый компонент. 5
floor Возвращает наибольшее целое число, которое меньше или равно x.
fma Возвращает двойной точности умножение умножения * b + c. 5
fmod Возвращает оставшуюся часть с плавающей запятой x/y.
Грп Возвращает дробную часть x.
frexp Возвращает мантиссу и экспонент x.
fwidth Возвращает abs(ddx(x)) + abs(ddy(x))
GetRenderTargetSampleCount Возвращает количество примеров, предназначенных для отрисовки. 4
GetRenderTargetSamplePosition Возвращает позицию образца (x,y) для заданного индекса образца. 4
GroupMemoryBarrier Блокирует выполнение всех потоков в группе до тех пор, пока все общие доступы к группе не будут завершены. 5
GroupMemoryBarrierWithGroupSync Блокирует выполнение всех потоков в группе до тех пор, пока все общие доступы к группе не будут завершены, и все потоки в группе достигли этого вызова. 5
InterlockedAdd Выполняет гарантированное атомарное добавление значения в дест-переменную ресурса. 5
InterlockedAnd Выполняет гарантированную атомарную и. 5
InterlockedCompareExchange Атомарно сравнивает входные данные со значением сравнения и обменивается результатом. 5
InterlockedCompareStore Атомарно сравнивает входные данные со значением сравнения. 5
InterlockedExchange Присваивает значение деста и возвращает исходное значение. 5
InterlockedMax Выполняет гарантированное атомарное максимальное значение. 5
InterlockedMin Выполняет гарантированную атомарную минуту. 5
InterlockedOr Выполняет гарантированную атомарную или. 5
InterlockedXor Выполняет гарантированный атомарный xor. 5
isfinite Возвращает значение true, если x является конечным, значение false в противном случае.
isinf Возвращает значение true, если x имеет значение +INF или -INF, в противном случае — значение false.
isnan Возвращает значение true, если x имеет значение NAN или QNAN, в противном случае — значение false.
ldexp Возвращает x * 2exp
length Возвращает длину вектора v.
lerp Возвращает x +s(y - x).
Освещенной Возвращает вектор освещения (внешний, диффузный, зеркальный, 1)
log Возвращает логарифм базового e x.
log10 Возвращает логарифм base-10 x.
log2 Возвращает логарифм base-2 x.
Сумасшедший Выполняет арифметическую операцию умножения и добавления трех значений. 5
max Выбирает больше x и y.
min Выбирает меньшее значение x и y.
modf Разбивает значение x на дробные и целые части.
msad4 Сравнивает 4-байтовое значение ссылки и 8-байтовое исходное значение и накапливает вектор 4 суммы. 5
mul Выполняет умножение матрицы с помощью x и y. 1
Шум Создает случайное значение с помощью алгоритма perlin-noise.
normalize Возвращает нормализованный вектор.
pow Возвращает xy.
printf Отправляет пользовательское сообщение шейдера в очередь сведений. 4
Process2DQuadTesFactorsAvg Создает исправленные факторы тесселяции для четырех исправлений. 5
Process2DQuadTesFactorsMax Создает исправленные факторы тесселяции для четырех исправлений. 5
Process2DQuadTesFactorsMin Создает исправленные факторы тесселяции для четырех исправлений. 5
ProcessIsolineTessFactors Создает округленные факторы тесселяции для isoline. 5
ProcessQuadTesFactorsAvg Создает исправленные факторы тесселяции для четырех исправлений. 5
ProcessQuadTesFactorsMax Создает исправленные факторы тесселяции для четырех исправлений. 5
ProcessQuadTesFactorsMin Создает исправленные факторы тесселяции для четырех исправлений. 5
ProcessTriTesFactorsAvg Создает исправленные факторы тесселяции для три исправления. 5
ProcessTriTessFactorsMax Создает исправленные факторы тесселяции для три исправления. 5
ProcessTriTesFactorsMin Создает исправленные факторы тесселяции для три исправления. 5
radians Преобразует x из градусов в радианы. 1
rcp Вычисляет быстрый, приблизительный, взаимное значение для каждого компонента. 5
Отражают Возвращает вектор отражения. 1
refract Возвращает вектор рефракта.
обратные биты Изменяет порядок битов для каждого компонента. 5
round Округляет x до ближайшего целого числа
rsqrt Возвращает значение 1 / sqrt(x)
Насытить Зажимает x к диапазону [0, 1] 1
sign Вычисляет знак x.
sin Возвращает синус x
sincos Возвращает синус и косинус x.
sinh Возвращает гиперболический синус x
smoothstep Возвращает гладкую интерполяцию от 0 до 1.
sqrt Квадратный корень (на компонент)
Шаг Возвращает (x >= a) ? 1 : 0
tan Возвращает тангенс x
tanh Возвращает гиперболический тангенс x
tex1D(s, t) Поиск текстуры 1D. 1
tex1D(s, t, ddx, ddy) Поиск текстуры 1D.
tex1Dbias Поиск текстуры 1D с предвзятостью.
tex1Dgrad Поиск текстуры 1D с градиентом.
tex1Dlod Поиск текстуры 1D с loD.
tex1Dproj Поиск текстуры 1D с проецивным разделом.
tex2D(s, t) Подстановка текстуры 2D.
tex2D(s, t, ddx, ddy) Подстановка текстуры 2D.
tex2Dbias Подстановка текстуры 2D с предвзятостью.
tex2Dgrad Подстановка текстуры 2D с градиентом.
tex2Dlod Подстановка текстуры 2D с loD. 3
tex2Dproj Подстановка текстуры 2D с проецивным разделом.
tex3D(s, t) Поиск трехмерной текстуры.
tex3D(s, t, ddx, ddy) Поиск трехмерной текстуры.
tex3Dbias Поиск трехмерной текстуры с предвзятостью.
tex3Dgrad Поиск трехмерной текстуры с градиентом.
tex3Dlod Поиск трехмерной текстуры с loD.
tex3Dproj Подстановка трехмерной текстуры с проецивным разделом.
texCUBE(s, t) Поиск текстур куба.
texCUBE(s, t, ddx, ddy) Поиск текстур куба.
texCUBEbias Поиск текстур куба с предвзятостью.
texCUBEgrad Поиск текстур куба с градиентом.
texCUBElod Поиск текстур куба с loD.
texCUBEproj Поиск текстур куба с проективным разделом.
Перенести Возвращает транспонирование матрицы m. 1
trunc Усечение значений с плавающей запятой до целочисленных значений 1

 

¹ см. справочную страницу ограничений.

Типы компонентов и шаблонов

Объявления встроенных функций HLSL используют типы компонентов и типы шаблонов для аргументов входных параметров и возвращаемых значений. Доступные типы перечислены в следующей таблице.

Эти типы шаблонов Description Поддержка этих типов данных
матрицы до 16 компонентов в зависимости от объявления Базовые типы HLSL
объект объект sampler sampler, sampler1D, sampler2D, sampler3D, samplerCUBE
скаляр 1 компонент Базовые типы HLSL
vector Минимум 1 компонента, 4 компонента максимум (включительно) Базовые типы HLSL

 

См. также

Справочник по HLSL