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