Предыдущая Следующая
16.7.3. Вершинные и пиксельные шейдеры
Шейдерная программа - это исходный код, который располагается в одном файле. Несмотря на это, шейдерная программа незримо делится на две различные по своим направленностям части, которые выполняются строго друг за другом. Первая часть программы работает исключительно с вершинами объектов, поэтому и носит название вершинный шейдер. После того как определенные операции над
266 Основы программирования трехмерной графики
Графический конвейер 267
вершинами были сделаны, в работу включается часть программы, отвечающая за работу с пикселями, или пиксельный шейдер.
В юрисдикцию вершинного шейдера входит проход через мировую матрицу, видовую матрицу и матрицу проекции, любые матричные преобразования вершин объектов, нормализация, установка освещения, цвета, текстурных координат. Как только все перечисленные действия выполнены, итоговые данные передаются пиксельному шейдеру.
Пиксельный шейдер на основании полученных данных рассчитывает и устанавливает цвет для каждого пикселя поверхности дисплея. Дополнительно в пиксельном шрейдере выполняются действия по добавлению в игру различных эффектов на пиксельном уровне. Например, туман, вода, огонь и т. д. Все эти эффекты исполняются непосредственно пиксельным шейдером. Никаких других операций над вершинами объектов в пиксельном шейдере быть не может. Этот шейдер работает исключительно с пикселями!
Оба шейдера связаны друг с другом неразрывно, и очередность их выполнения одна: сначала в работу включается вершинный шейдер, а затем пиксельный. Это как стряпанье пирогов. Сначала вы замешиваете тесто и придаете форму пирогу, а затем ставите этот пирог в духовку. Не замешав тесто, вам соответственно и в духовку нечего будет поставить, как, впрочем, замешав тесто, но не поставив его в духовку, вы не сможете испечь сам пирог.
16.7.4. Подводя итоги шейдерной технологии
Подводя итоги вышеописанного материала, можно констатировать следующее. С помощью шейдеров происходит выполнение различных операций над вершинами и пикселями графической составляющей. Это означает, что посредством регистров графического процессора и кода шейдерной программы вы можете управлять как вершинами, так и пикселями графических компонентов игры.
На практике такая методика работы с данными позволяет создавать потрясающие по качеству спецэффекты. Вот лишь небольшой перечень всего того, что можно сделать с графикой, используя шейдерные программы: Предыдущая Следующая
|