Поделиться через


Узлы конструктора шейдеров

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

Узлы и типы узлов

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

Структура узлов

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

Hh873112.collapse_all(ru-ru,VS.110).gifПовышение входов

Поскольку конструктор шейдеров должен в конечном счете создавать исходный код HLSL таким образом, чтобы результат можно было использовать в игре или приложении, узлы конструктора шейдеров подчиняются правилам повышения типа, используемым HLSL.Так как оборудование графики работает в основном для значений с плавающей запятой, повышение типов между отличающимся типами, например от int до float или от float до double— является редким.Вместо этого, так как оборудование графики использует одну операцию для нескольких объектов информации одновременно, может произойти другой тип продвижения, где самый короткий ввод удлиняется, чтобы соответствовать размеру самого длинного ввода.Способ удлинения это зависит от типа ввода, а также от самой операции.

  • Если меньший тип является скалярным значением:

    Значение скаляра реплицировано в вектор, который равен размером с большим вводом.Например, скалярный ввод 5.0 становится вектором (5.0, 5.0, 5.0), когда наибольший ввод операции является 3-элементным вектором, независимо от того, какая операция выполняется.

  • Если меньший тип является вектором и операция является мультипликативной (+, - и т. д.):

    Значение вектора копируется в ведущие элементы вектора, который равен по размеру большему входу, а конечные элементы устанавливаются в значение 1,0.Например, вход вектора (5.0, 5.0) становится вектором (5.0, 5.0, 1.0, 1.0), когда он умножается на четырехэлементный вектор.Это сохраняет третье и четвертое элементы выхода с помощью мультипликативного идентификатора, 1,0.

  • Если меньший тип является вектором и операция является аддитивной (+, - и т. д.):

    Значение вектора копируется в ведущие элементы вектора, который равен по размеру большему входу, а конечные элементы устанавливаются в значение 0,0.Например, вход вектора (5.0, 5.0) становится вектором (5.0, 5.0, 0.0, 0.0), когда он добавляется к четырехэлементному вектору.Это сохраняет третье и четвертое элементы выхода с помощью аддитивного идентификатора, 0,0.

См. также

Заголовок

Описание

Постоянные узлы

Описывает узлы, которые можно использовать для представления значений литералов и сведений о состоянии интерполированных вершин в расчетах шейдера.Так как состояние вершины интерполировано и поэтому различно для каждого пикселя, каждый экземпляр построителя текстуры получает разную версию константы.

Узлы параметров

Описывает узлы, которые можно использовать для представления положения камеры, свойств материала, параметров освещения, времени и других данных о состоянии приложения в расчетах шейдера.

Узлы текстуры

Описывает узлы, которые можно использовать для получения образцов различных типов и геометрий текстур и для создания или преобразования координат текстуры распространенными способами.

Математические узлы

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

Служебные узлы

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

Фильтрация узлов

Описывает узлы, которые можно использовать для выполнения фильтрации текстур и фильтрации цветов.