|
GPU (Graphics Proccesing Unit) - это графический процессор, частично
формирующий трехмерное изображение (3D) и позволяющий существенно разгрузить
центральный процессор (CPU ) от выполнения операций, связанных с расчетами
геометрических трансформаций, моделей освещения и т.п.
Современные графические процессоры по сложности выполнения
не уступают центральным процессорам. Разница графических процессоров
заключается только в их функциональном назначении. Характеристики графических
процессоров зависят от таких параметров, как: микроархитектура, тактовая частота
работы графического ядра и технология их производства.
Так выглядят графические процессоры GeForce NVIDIA :
Специфическими характеристиками являются: число вершинных и
пиксельных конвейеров, соответственно – Vertex Pipelines и Pixel Pipelines.
Для построения 3D-изображения GPU должен выполнить ряд операций:
принять решение, какие объекты должны присутствовать в сцене, определить
местоположение вершин, которые задают каждый из этих объектов; построить по
этим вершинам грани, заполнить
получившиеся области текстурами, соответствующими освещению, степени
детализации, требуемым перспективным искажениям и т.д.
Повысить производительность этих операций позволяет их
разбивка на стадии, а также распараллеливание операций. С указанной целью
данные, полученные от CPU, обрабатываются в вершинном процессоре или блоке
Vertex Pipelines, являющемся частью общего конвейера обработки. Здесь рассчитывается общая геометрия сцены,
положение вершин, образующих каркасную модель трехмерного изображения, ее
освещение, а также производятся другие операции, связанные с общей геометрией
модели изображения.
На следующем этапе конвейера происходит сборка модели в
полигоны. При этом вершины соединяются между собой линиями, образую каркасную
модель. Соединенные друг с другом вершины образуются полигоны. При помощи специальных программ – вершинных
шейдеров (Vertex Shader) вершинный процессор может выполнять операции
деформации и анимации объектов, имитацию ткани и многие другие операции.
После сборки данные поступают в пиксельный процессор Pixel
Pipeline, работающий под управлением специальной программы – пиксельного
шейдера (Pixel Shader), которая определяет значения пикселов, заполняющих
каркасную модель (т.е., растрирует ее), включая определение их цвета, яркости
(освещения), прозрачности и т.д.
Пиксельные шейдеры реализуют также такие функции, как
мультитекстурирование (наложение нескольких слоев текстуры), попиксельное
освещение, создание процедурных текстур, постобработку кадров и т.д. После
обработки данных в пиксельном процессоре они поступают в блок растровых
операций – ROP (Raster Operation). На данном этапе с использованием буфера
глубины (Z-буфера) определяются и отбрасываются пикселы, которые будут не видны
пользователю, т.е. отсекаются невидимые поверхности трехмерного изображения, а
также реализуются эффекты полупрозрачности.
|