Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Графические процессоры общего - Павлив.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
411.14 Кб
Скачать

1.2 Устройство графического конвейера

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

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

Группа 13

Рисунок 1 - Упрощенная схема графического конвейера

В большинстве графических систем, работающих в режиме реального времени, предполагается, что изображения состоят из треугольников. Поэтому в первую очередь необходимо разбить все возможные формы — многоугольники, сложные поверхности и прочие фигуры — на элементарные треугольники. С помощью базовой библиотеки компьютерной графики (чаще всего OpenGL или Direct3D) разработчик последовательно передает на вход конвейера по одной вершине треугольника. А графический процессор по мере необходимости собирает из этих вершин треугольники. [2]

1.2.1 Преобразование вершин

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

Обработка данных в вершинном процессоре происходит под управлением специализированной программы, называемой вершинным шейдером. Вершинные шейдеры производят математические операции с вершинами, то есть предоставляют возможность выполнять программируемые алгоритмы по изменению параметров вершин и их освещению. Каждая вершина в 3D-модели определяется тремя координатами — X, Y и Z. Вершины также могут быть описаны характеристиками цвета, текстурными координатами и т.п. Вершинные шейдеры, в зависимости от алгоритмов, изменяют эти данные в процессе своей работы, например вычисляя и записывая новые координаты и цвет. Входными данными вершинного процессора являются данные об одной вершине геометрической модели, которая в данный момент обрабатывается. Это могут быть координаты в пространстве, нормаль, компоненты цвета и текстурные координаты.

При помощи вершинных шейдеров вершинный процессор может выполнять такие операции, как, например, деформация и анимация объектов, имитация ткани и многое другое [1].