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

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

Имя Описание Минимальная модель шейдера
рвал Завершает текущий выполняемый вызов Draw или Dispatch. 4
просто Абсолютное значение (на компонент). 1 ¹
ACOS Возвращает арккосинус каждого компонента x. 1 ¹
каждого Проверьте, являются ли все компоненты x ненулевыми. 1 ¹
аллмеморибарриер Блокирует выполнение всех потоков в группе до тех пор, пока не завершится доступ к памяти. 5
аллмеморибарриервисграупсинк Блокирует выполнение всех потоков в группе до тех пор, пока не будут завершены все доступ к памяти и все потоки в группе достигли этого вызова. 5
всеми Протестируйте, если какой-либо компонент x не равен нулю. 1 ¹
асдаубле Переинтерпретирует значение приведения в Double. 5
асфлоат Преобразование входного типа в тип float. 4
ASIN Возвращает арксинус каждого компонента x. 1 ¹
ASIN Преобразуйте входной тип в целое число. 4
асуинт Повторно интерпретирует битовый шаблон 64-разрядного типа в uint. 5
асуинт Преобразование входного типа в целое число без знака. 4
Atan Возвращает арктангенс x. 1 ¹
atan2 Возвращает арктангенс двух значений (x, y). 1 ¹
ceil Возвращает наименьшее целое число, которое больше или равно x. 1 ¹
чеккакцессфуллимаппед Определяет, являются ли все значения из операции выборки или загрузки доступными сопоставленными плитками в мозаичном ресурсе. 5
фиксаци Фиксации x в диапазоне [ min, Max ] . 1 ¹
clip Отменяет текущий пиксель, если какой-либо компонент x имеет значение меньше нуля. 1 ¹
COS Возвращает косинус x. 1 ¹
cosh Возвращает гиперболический косинус для x. 1 ¹
каунтбитс Подсчитывает количество битов (на компонент) во входном числе. 5
осью Возвращает перекрестное произведение двух трехмерных векторов. 1 ¹
D3DCOLORtoUBYTE4 Свиззлес и масштабирует компоненты вектора 4D КСТО компенсировать отсутствие поддержки UBYTE4 в определенном оборудовании. 1 ¹
DDX Возвращает частичный производный от x относительно координаты x пространства экрана. 2 ¹
DDX _ грубая Выполняет частичное производные от низкой точности относительно координаты x на экране. 5
DDX _ прекрасно Выполняет частичное производные от высокой точности относительно координаты x пространства экрана. 5
дди Возвращает частичный производный от x относительно координаты y экранного пространства. 2 ¹
ДДИ _ грубое Выполняет частичное производные от низкой точности относительно координаты y экранного пространства. 5
ДДИ _ Выполняет частичное производные от высокой точности относительно координаты y экранного пространства. 5
угол Преобразует значение x из радиан в градусы. 1 ¹
определяющих Возвращает определитель квадратной матрицы m. 1 ¹
девицемеморибарриер Блокирует выполнение всех потоков в группе до тех пор, пока не будут завершены все доступ к памяти устройства. 5
девицемеморибарриервисграупсинк Блокирует выполнение всех потоков в группе до тех пор, пока не будут завершены все доступ к памяти устройства и все потоки в группе достигли этого вызова. 5
друг Возвращает расстояние между двумя точками. 1 ¹
Оператор Возвращает скалярное произведение двух векторов. 1
кон Вычисляет вектор расстояний. 5
еррорф Отправляет сообщение об ошибке в информационную очередь. 4
евалуатеаттрибутеатцентроид Вычисляется на центроид пикселей. 5
евалуатеаттрибутеатсампле Вычисляется в расположении с индексированным образцом. 5
евалуатеаттрибутеснаппед Вычисляет на пиксельном центроид со смещением. 5
расширением Возвращает экспоненту base-e. 1 ¹
EXP2 Базовый показатель степени 2 (на каждый компонент). 1 ¹
f16tof32 Преобразует float16, хранящийся в нижней половине uint, в тип float. 5
f32tof16 Преобразует входные данные в тип float16. 5
фацефорвард Возвращает-n * знак (точка (i, NG)). 1 ¹
фирстбисигх Возвращает расположение первого набора битов, начиная с самого высокого бита и заканчивая его обработкой вниз, на каждый компонент. 5
фирстбитлов Возвращает расположение первого набора битов, начиная с наименьшего бита и работая над каждым компонентом. 5
фабрич Возвращает наибольшее целое число, которое меньше или равно x. 1 ¹
FMA Возвращает предохранитель с двойной точностью, умноженный на " * b + c". 5
FMOD Возвращает остаток числа с плавающей запятой x/y. 1 ¹
фрак Возвращает дробную часть x. 1 ¹
frexp Возвращает мантисса и экспоненту x. 2 ¹
фвидс Возвращает ABS (DDX (x)) + ABS (ДДИ (x)) 2 ¹
жетрендертаржетсамплекаунт Возвращает число выборок для подготовки к просмотру. 4
жетрендертаржетсамплепоситион Возвращает образец позиции (x, y) для данного образца индекса. 4
граупмеморибарриер Блокирует выполнение всех потоков в группе до тех пор, пока не завершится общий доступ к группе. 5
граупмеморибарриервисграупсинк Блокирует выполнение всех потоков в группе до тех пор, пока все общие группы доступа не будут завершены и все потоки в группе достигли этого вызова. 5
интерлоккедадд Выполняет гарантированное атомарное Добавление значения в переменную ресурса-приемника. 5
интерлоккеданд Выполняет гарантированный атомарный и. 5
интерлоккедкомпариксчанже Атомарно сравнивает входные данные со значением сравнения и обменивается результатами. 5
интерлоккедкомпаресторе Атомарно сравнивает входные данные со значением сравнения. 5
интерлоккедексчанже Присваивает значение dest и возвращает исходное значение. 5
интерлоккедмакс Выполняет гарантированно атомарный максимум. 5
интерлоккедмин Выполняет гарантированную атомарную минуту. 5
Взаимоблокировка Выполняет гарантированный атомарный или. 5
интерлоккедксор Выполняет гарантированный атомарный XOR. 5
isFinite Возвращает значение true, если x является конечным, и false в противном случае. 1 ¹
исинф Возвращает true, если x имеет значение + INF или-INF, и false в противном случае. 1 ¹
IsNaN Возвращает значение true, если x — NAN или КНАН, и false в противном случае. 1 ¹
ldexp Возвращает x * 2exp 1 ¹
length Возвращает длину вектора v. 1 ¹
лерп Возвращает x + s (y-x). 1 ¹
индикатор Возвращает вектор освещения (внешний, рассеянный, отражающий, 1) 1 ¹
Журналь Возвращает логарифм по оси x (Base-e). 1 ¹
LOG10 Возвращает десятичный логарифм x. 1 ¹
log2 Возвращает логарифм x по основанию 2. 1 ¹
отслеживания Выполняет арифметическую операцию умножения или добавления для трех значений. 5
max Выбор большего числа x и y. 1 ¹
мин Выбирает меньшее из значений x и y. 1 ¹
modf Разделяет значение x на дробные и целые части. 1 ¹
msad4 Сравнивает 4-байтное ссылочное значение и 8-байтовое исходное значение и накапливает вектор с 4 суммами. 5
mul Выполняет умножение матрицы с помощью x и y. 1
учитываем Создает случайное значение с помощью алгоритма Perl-Noise. 1 ¹
normalize Возвращает нормализованный вектор. 1 ¹
Pow Возвращает xy. 1 ¹
printf Отправляет настраиваемое сообщение шейдера в информационную очередь. 4
Process2DQuadTessFactorsAvg Создает исправленные факторы тесселяции для четырех исправлений. 5
Process2DQuadTessFactorsMax Создает исправленные факторы тесселяции для четырех исправлений. 5
Process2DQuadTessFactorsMin Создает исправленные факторы тесселяции для четырех исправлений. 5
процессисолинетессфакторс Создает округленные факторы тесселяции для исолине. 5
процесскуадтессфакторсавг Создает исправленные факторы тесселяции для четырех исправлений. 5
процесскуадтессфакторсмакс Создает исправленные факторы тесселяции для четырех исправлений. 5
процесскуадтессфакторсмин Создает исправленные факторы тесселяции для четырех исправлений. 5
процесстритессфакторсавг Создает исправленные коэффициенты тесселяции для более трехуровневого обновления. 5
процесстритессфакторсмакс Создает исправленные коэффициенты тесселяции для более трехуровневого обновления. 5
процесстритессфакторсмин Создает исправленные коэффициенты тесселяции для более трехуровневого обновления. 5
радианах Преобразует x из градусов в радианы. 1
rcp Вычисляет быстрое и приближенное обратное значение для каждого компонента. 5
характеризу Возвращает вектор отражения. 1
рефракт Возвращает вектор дробной части. 1 ¹
реверсебитс Изменяет порядок битов на каждый компонент на обратный. 5
округло Округляет значение x до ближайшего целого числа 1 ¹
рскрт Возвращает 1/корень (x) 1 ¹
насытить Фиксации x в диапазоне [ 0, 1] 1
писать Вычисление знака x. 1 ¹
Sin Возвращает синус x 1 ¹
синкос Возвращает синус и косинус x. 1 ¹
sinh Возвращает гиперболический синус x 1 ¹
смусстеп Возвращает гладкую Хермите интерполяцию между 0 и 1. 1 ¹
МНИМ Квадратный корень (на компонент) 1 ¹
первом Возвращает (x >= a)? 1 : 0 1 ¹
тангенс Возвращает тангенс x 1 ¹
tanh Возвращает гиперболический тангенс x 1 ¹
tex1D (s, t) Поиск по одномерной текстуре. 1
tex1D (s, t, DDX, дди) Поиск по одномерной текстуре. 2 ¹
tex1Dbias Поиск текстуры 1D с сдвигом. 2 ¹
tex1Dgrad Поиск текстуры 1D с градиентом. 2 ¹
tex1Dlod Поиск текстуры 1D с помощью Лод. 3 ¹
tex1Dproj Поиск текстуры по одномерному разделению с помощью проецирования. 2 ¹
tex2D (s, t) Поиск двухмерной текстуры. 1 ¹
tex2D (s, t, DDX, дди) Поиск двухмерной текстуры. 2 ¹
tex2Dbias Поиск двухмерной текстуры с сдвигом. 2 ¹
tex2Dgrad Поиск двухмерной текстуры с помощью градиента. 2 ¹
tex2Dlod Поиск двухмерной текстуры с помощью Лод. 3
tex2Dproj Поиск двухмерной текстуры с помощью проектного деления. 2 ¹
tex3D (s, t) Поиск трехмерной текстуры. 1 ¹
tex3D (s, t, DDX, дди) Поиск трехмерной текстуры. 2 ¹
tex3Dbias Поиск трехмерной текстуры с сдвигом. 2 ¹
tex3Dgrad Поиск трехмерной текстуры с градиентом. 2 ¹
tex3Dlod Поиск трехмерной текстуры с помощью Лод. 3 ¹
tex3Dproj Поиск трехмерной текстуры с помощью проектного деления. 2 ¹
Текскубе (s, t) Поиск текстуры в Кубе. 1 ¹
Текскубе (s, t, DDX, дди) Поиск текстуры в Кубе. 2 ¹
текскубебиас Поиск текстуры в Кубе с сдвигом. 2 ¹
текскубеград Поиск текстуры в Кубе с градиентом. 2 ¹
текскубелод Поиск текстуры в Кубе с помощью Лод. 3 ¹
текскубепрож Поиск текстуры в Кубе с помощью проектного деления. 2 ¹
переставить Возвращает перестановку матрицы m. 1
TRUNC Усекает значения с плавающей запятой до целочисленных значений 1

¹ см. на странице справочника по ограничениям.

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

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

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

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

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