Array ( )
Вход:




Главная | OpenGL | GLSL | AI | Сеть | Примеры | Библиотека

GLSL: Основы шейдеров: Varying-переменные






Как упоминалось прежде, у нас есть два типа шейдеров: вершинные и пикселные. Для рассчета
данных для пиксела часто необходим доступ к интерполированным данным вершин. Например,
вычисляя влияние освещения на пиксел, нам нужна информация о нормали этого пиксела. Однако
в OpenGL нормали указываются только для вершин. И эти нормали доступны вершинному шейдеру,
а не пикселному, так как передаются OpenGL как attribute-переменные.

После того, как вершины и все данные вершин обработаны, они двигаются к следующей стадии
графического конвейера (которая всё ещё обрабатывается фиксированным функционалом), где
доступна информация об обьединении вершин. На этой стадии все примитивы собраны и пикселы
вычислены. Для каждого пиксела есть ряд переменных, которые автоматически интерполированы
и переданы пикселному шейдеру. Например, цвет пиксела. Цвет, принадлежащий пикселу, - это
интерполяция цветов вершин, составляющих примитив.

Этот тип переменных, с которыми шейдер получает интерполированные данные предыдущих этапов,
и есть - "Varying-переменные". В GLSL есть несколько зарезервированных varying-переменных,
таких, как приведённый для примера цвет. Также GLSL позволяет обьявление пользовательских
varying-переменных. Они должны быть обьявлены и в вершинном и в пикселном шейдере, например:

varying float intensity;



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








Комментарии:

Войдите, чтобы оставить комментарий:












Яндекс.Метрика
 Яндекс цитирования.