Предыдущая Следующая
□ закрашивание объектов и полигонов цветом;
□ установка освещения;
□ работа с матричными преобразованиями;
□ любые виды объектной анимации;
□ текстурная анимация;
□ наложение текстур;
□ смешивание текстур;
□ текстурирование ландшафтов;
□ любые размытые и искаженные изображения;
□ любимый некоторыми компаниями эффект черно-белых изображений;
□ пиксельные взрывы и эффекты;
□ пар, туман, огонь, вода, облака, зеркала, отражение и т. п.;
□ все виды bump mapping и многое, многое, многое другое.
16.8. Графический конвейер
Все то, что мы изучили в этой главе, в компьютерной графике известно под названием графический конвейер. Если представить схематично все стадии представления графики на экране монитора, то можно получить схему, изображенную на рис. 16.6.
Когда графический процессор получает задание нарисовать на экране трехмерную модель, то от программы он получает так называемый вершинный поток данных. Эти данные содержат позиции вершин в пространстве, цвет каждой вер-
Рис. 16.6. Графический конвейер
268 Основы программирования трехмерной графики
шины, нормали, текстурные координаты. Набор этих данных передается на обработку в вершинный шейдер. В этот момент в работу включается исходный код шейдера, а именно блок кода, отведенный для работы с вершинным шейдером.
Операции, проводимые вершинным шейдером, зависят от тех задач, которые ставит сам программист, написавший шейдерную программу на языке ИЬБЬ, но как минимум происходят все матричные преобразования (мировые, видовые и проекционные), нормализация и установка освещения. На выходе вершинного шейдера поток имеющихся данных проходит этап растеризации и интерполяции.
Растеризация содержит несколько правил представления примитивов на экране монитора, суть которых заключается в точном заполнении всех примитивов своими пикселями. В свою очередь, интерполяция цвета позволяет добиться плавного перехода из одной цветовой компоненты в другую. Например, две вершины имеют разный цвет. Между двумя этими вершинами пространство должно быть заполнено плавно переходящей из одного цвета в другой цветовой компонентой. Задача интерполяции как раз и заключается в заглаживании, или плавном переходе от одного цвета к другому.
Далее все данные поступают в пиксельный шейдер. На этом этапе ведется работа попиксельно, на уровне каждого отдельно взятого пикселя. Для каждого пикселя вычисляются цвет и другие эффекты, и затем данные выходят из пиксельного шейдера и проходят так называемый Ъ-буфер. Этот буфер еще известен как буфер глубины. Предыдущая Следующая
|