logo
Лекция10 графика

Общие сведения

До появления процессора ATI Radeon HD 2900 в графическом процессоре существовали специализированные конвейеры, называемые также процессорами, которые отвечали за вполне определенные действия. Так, на первом этапе графический процессор получал от центрального процессора данные об объекте, который необходимо построить. Эти данные обрабатывались в вершинном процессоре (Vertex Pipeline), который являлся частью общего конвейера обработки данных.

Обработка данных в вершинном процессоре происходила под управлением специализированной программы, называемой вершинным шейдером (Vertex Shader). На основании полученных данных вершинный процессор занимался расчетом геометрии сцены и определял положение вершин, которые при соединении образуют каркасную модель трехмерного объекта. Кроме того, в вершинном процессоре производились дополнительные операции над вершинами — преобразование и освещение (Transform & Lighting).При помощи вершинных шейдеров вершинный процессор мог выполнять такие операции, как деформация и анимация объектов, имитация ткани, и многое другое.

На следующем этапе конвейера (Triangle) происходила сборка (Setup) трехмерной модели в полигоны. При этом вершины соединялись между собой линиями, образуя каркасную модель. При соединении вершин друг с другом образовывались полигоны (треугольники).

После сборки данные поступали в пиксельный процессор (Pixel Pipeline), который определял конечные пикселы, которые будут выведены в кадровый буфер. Пиксельный процессор в итоге своей работы выдавал конечное значение цвета пиксела и Z-значение для последующего этапа конвейера. Пиксельный процессор функционировал под управлением специальной программы, называемой пиксельным шейдером (Pixel Shader). Пиксельные шейдеры — это программы, выполняемые пиксельными процессорами во время растеризации для каждого пиксела изображения. Пиксельные шейдеры реализуют такие функции, как мультитекстурирование (наложение нескольких слоев текстуры), попиксельное освещение, создание процедурных текстур, постобработка кадра и т.д.

После обработки данных в пиксельном процессоре с использованием пиксельных шейдеров данные обрабатываются блоком растровых операций ROP (Raster Operations). На данном этапе с помощью буфера глубины (Z-буфера) определялись и отбрасывались те пикселы, которые не видны пользователю.

Кроме буфера глубины, позволяющего отсекать невидимые поверхности, при создании реалистичных трехмерных изображений необходимо учитывать, что объекты могут быть полупрозрачными. Эффект полупрозрачности создается путем объединения цвета исходного пиксела с пикселом, уже находящимся в буфере. В результате цвет точки представляет собой комбинацию цветов переднего и заднего плана. Для учета прозрачности объектов используется так называемый alpha-коэффициент прозрачности, который имеет значение от 0 до 1 (для каждого цветового пиксела).

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