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

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

Имя Описание Минимальная модель шейдера
Прервать Завершает текущий вызов рисования или диспетчеризации, выполняемый. 4
Abs Абсолютное значение (для каждого компонента). 1no
acos Возвращает арккосинус каждого компонента x. 1no
Все Проверьте, не являются ли все компоненты x ненулевыми. 1no
AllMemoryBarrier Блокирует выполнение всех потоков в группе, пока не будут завершены все операции доступа к памяти. 5
AllMemoryBarrierWithGroupSync Блокирует выполнение всех потоков в группе до тех пор, пока не будут завершены все операции доступа к памяти и все потоки в группе достигли этого вызова. 5
any Проверьте, является ли какой-либо компонент x ненулевым. 1no
asdouble Повторно интерпретирует приведение значения в двойную. 5
asfloat Преобразуйте тип входных данных в число с плавающей запятой. 4
Asin Возвращает арксинус каждого компонента x. 1no
asint Преобразуйте тип входных данных в целое число. 4
asuint Повторно интерпретирует битовый шаблон 64-разрядного типа в uint. 5
asuint Преобразуйте входной тип в целое число без знака. 4
Atan Возвращает арктангенс x. 1no
atan2 Возвращает арктангенс из двух значений (x,y). 1no
ceil Возвращает наименьшее целое число, которое больше или равно x. 1no
CheckAccessFullyMapped Определяет, будут ли все значения из примера илиоперации загрузки обращаться к сопоставленным плиткам в мозаичном ресурсе. 5
Зажим Прижимает x к диапазону [min, max]. 1no
Клип Удаляет текущий пиксель, если какой-либо компонент x меньше нуля. 1no
Потому что Возвращает косинус x. 1no
cosh Возвращает гиперболический косинус x. 1no
countbits Подсчитывает количество битов (на компонент) во входном целочислении. 5
Крест Возвращает перекрестное произведение двух трехмерных векторов. 1no
D3DCOLORtoUBYTE4 Swizzles и масштабируемые компоненты 4D-вектора xto компенсируют отсутствие поддержки UBYTE4 в некотором оборудовании. 1no
Ddx Возвращает частичную производную от x относительно координаты x экранного пространства.
ddx_coarse Вычисляет частичную производную от низкой точности относительно координаты x экранного пространства. 5
ddx_fine Вычисляет частичную производную с высокой точностью относительно координаты x экранного пространства. 5
Ddy Возвращает частичную производную от x относительно координаты y экранного пространства.
ddy_coarse Вычисляет частичную производную от низкой точности относительно координаты y экранного пространства. 5
ddy_fine Вычисляет частичную производную с высокой точностью относительно координаты y экранного пространства. 5
Градусов Преобразует 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, в float. 5
f32tof16 Преобразует входные данные в тип float16. 5
faceforward Возвращает -n * sign(dot(i, ng)).
firstbithigh Возвращает расположение первого установленного бита, начиная с бита с наивысшего порядка и снизу по каждому компоненту. 5
firstbitlow Возвращает расположение первого установленного бита, начиная с самого низкого порядка, и работает вверх для каждого компонента. 5
Этаже Возвращает наибольшее целое число, которое меньше или равно x.
Fma Возвращает двойной точности сплавленное умножение сложения a * 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 Выполняет гарантированное атомарное добавление значения в переменную ресурса dest. 5
InterlockedAnd Выполняет гарантированную атомарную и. 5
InterlockedCompareExchange Атомарным образом сравнивает входные данные со значением сравнения и обменивается результатом. 5
InterlockedCompareStore Атомарным образом сравнивает входные данные со значением сравнения. 5
InterlockedExchange Присваивает значение dest и возвращает исходное значение. 5
InterlockedMax Выполняет гарантированное атомарное максимальное значение. 5
InterlockedMin Выполняет гарантированную атомарную минуту. 5
InterlockedOr Выполняет гарантированную атомарную или. 5
InterlockedXor Выполняет гарантированный атомарный xor. 5
isfinite Возвращает значение true, если x является конечным, false в противном случае. 1no
isinf Возвращает значение true, если x имеет значение +INF или -INF, в противном случае — значение false. 1no
isnan Возвращает значение true, если x — NAN или QNAN, в противном случае — значение false. 1no
ldexp Возвращает x * 2exp 1no
Длина Возвращает длину вектора v. 1no
lerp Возвращает x + s(y - x). 1no
Освещенной Возвращает вектор освещения (внешний, диффузный, зеркальный, 1) 1no
Журнала Возвращает логарифм base-e x. 1no
log10 Возвращает логарифм базового-10 x. 1no
log2 Возвращает логарифм base-2 x. 1no
Сумасшедший Выполняет арифметическую операцию умножения или добавления для трех значений. 5
Макс Выбирает больше x и y. 1no
мин Выбирает меньше x и y. 1no
modf Разбивает значение x на дробные и целые части. 1no
msad4 Сравнивает 4-байтовое значение ссылки и 8-байтовое исходное значение и накапливает вектор из 4 сумм. 5
mul Выполняет умножение матрицы с помощью x и y. 1
Шум Создает случайное значение с помощью алгоритма perlin-noise. 1no
normalize Возвращает нормализованный вектор. 1no
Trs Возвращает xy. 1no
printf Отправляет пользовательское сообщение шейдера в очередь сведений. 4
Process2DQuadTesFactorsAvg Создает исправленные факторы тесселяции для четырех исправлений. 5
Process2DQuadTesFactorsMax Создает исправленные факторы тесселяции для четырех исправлений. 5
Process2DQuadTesFactorsMin Создает исправленные факторы тесселяции для четырех исправлений. 5
ProcessIsolineTessFactors Создает округленные факторы тесселяции для isoline. 5
ProcessQuadTesFactorsAvg Создает исправленные факторы тесселяции для четырех исправлений. 5
ProcessQuadTesFactorsMax Создает исправленные факторы тесселяции для четырех исправлений. 5
ProcessQuadTesFactorsMin Создает исправленные факторы тесселяции для четырех исправлений. 5
ProcessTriTesSFactorsAvg Создает исправленные факторы тесселяции для три исправления. 5
ProcessTriTessFactorsMax Создает исправленные факторы тесселяции для три исправления. 5
ProcessTriTessFactorsMin Создает исправленные факторы тесселяции для три исправления. 5
Радианах Преобразует x из градусов в радианы. 1
rcp Вычисляет быструю, приблизительную, обратную для каждого компонента. 5
reflect Возвращает вектор отражения. 1
перефракт Возвращает вектор рефракций. 1no
обратные биты Изменяет порядок битов для каждого компонента. 5
round Округляет x до ближайшего целого числа 1no
rsqrt Возвращает значение 1 / sqrt(x) 1no
Насытить Зажимает x к диапазону [0, 1] 1
Знак Вычисляет знак x. 1no
Грех Возвращает синус x. 1no
sincos Возвращает синус и косинус x. 1no
sinh Возвращает гиперболический синус x 1no
smoothstep Возвращает гладкую интерполяцию Эрмит от 0 до 1. 1no
Sqrt Квадратный корень (для каждого компонента) 1no
Шаг Возвращает (x >= a) ? 1 : 0 1no
Загар Возвращает тангенс x 1no
tanh Возвращает гиперболический тангенс x 1no
tex1D(s, t) 1D-поиск текстуры. 1
tex1D(s, t, ddx, ddy) 1D-поиск текстуры.
tex1Dbias 1D-поиск текстуры с смещением.
tex1Dgrad 1D-поиск текстуры с градиентом.
tex1Dlod 1D-поиск текстуры с loD. 3no
tex1Dproj 1D-поиск текстуры с проецивным разделением.
tex2D(s, t) 2D-поиск текстуры. 1no
tex2D(s, t, ddx, ddy) 2D-поиск текстуры.
tex2Dbias 2D-поиск текстуры с смещением.
tex2Dgrad 2D-поиск текстуры с градиентом.
tex2Dlod 2D-поиск текстуры с loD. 3
tex2Dproj 2D-поиск текстуры с проецивным разделением.
tex3D(s, t) Поиск трехмерной текстуры. 1no
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 используют типы компонентов и типы шаблонов для аргументов входных параметров и возвращаемых значений. Доступные типы перечислены в следующей таблице.

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

 

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

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