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


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

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

Интерполяция атрибута вершины

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

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

Справочная информация по узлам констант

Узел

Подробные сведения

Свойства

Вектор камеры

Вектор, построенный из текущего пикселя к камере в абсолютном пространстве.

Этот вектор можно использовать для вычисления отражения в абсолютном пространстве.

Output

Output: float3

Вектор из текущего пикселя к камере.

Нет

Константа цвета

Значение постоянного цвета.

Output

Output: float4

Значение цвета.

Output

Значение цвета.

Константа

Постоянное скалярное значение.

Output

Output: float

Скалярное значение.

Output

Скалярное значение.

2D-константа

Двухкомпонентная константа вектора.

Output

Output: float2

Векторное значение.

Output

Векторное значение.

3D-константа

Трехкомпонентная константа вектора.

Output

Output: float3

Векторное значение.

Output

Векторное значение.

4D-константа

Четырехкомпонентная константа вектора.

Output

Output: float4

Значение цвета.

Output

Векторное значение.

Нормализованное положение

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

Координата х и координата y имеют значения в диапазоне [1, 1], координата z содержат значение в диапазоне [0, 1], а компонент w содержит значение глубины точки в пространстве представления; w не нормализовано.

Output

Output: float4

Позиция текущего пикселя.

Нет

Цвет точки

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

Output

Output: float4

Диффузный цвет текущего пикселя.

Нет

Глубина точки

Глубина текущего пикселя в пространстве представления.

Output

Output: float

Глубина текущего пикселя.

Нет

Нормализованная глубина точки

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

Результирующее значение лежит в диапазоне [0, 1].

Output

Output: float

Глубина текущего пикселя.

Нет

Положение на экране

Позиция текущего пикселя, выраженная в координатах экрана.

Координаты экрана основаны на текущем окне просмотра. Компоненты x и y содержит координаты экрана, компонент z содержит глубину, нормализованную с диапазоном [0, 1], а компонент w содержит значение глубины в пространстве представления.

Output

Output: float4

Позиция текущего пикселя.

Нет

Нормаль к поверхности

Нормаль к поверхности, построенная из текущего пикселя в пространстве объекта.

Эту нормаль можно использовать для вычисления добавочного освещения и отражения в пространстве объекта.

Output

Output: float3

Нормаль к поверхности, построенная из текущего пикселя.

Нет

Вектор камеры в пространстве касательных

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

Этот вектор можно использовать для вычисления отражения в пространстве касательных.

Output

Output: float3

Вектор из текущего пикселя к камере.

Нет

Направление света в пространстве касательных

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

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

Выходные данные:

Output: float3

Вектор из текущего пикселя к источнику света.

Нет

Абсолютная нормаль

Нормаль к поверхности, построенная из текущего пикселя в абсолютном пространстве.

Эту нормаль можно использовать для вычисления добавочного освещения и отражения в абсолютном объекта.

Output

Output: float3

Нормаль к поверхности, построенная из текущего пикселя.

Нет

Положение в абсолютных координатах

Позиция текущего пикселя в абсолютном пространстве.

Output

Output: float4

Позиция текущего пикселя.

Нет