Ускорители (акселераторы)
Для перекладывания части типовых операций по работе с
изображением на встроенный процессор адаптера видеокарты стали дополняться
набором аппаратных возможностей, называемых ускорителем или акселератором. Существуют
ускорители графики, ускорители анимации, ускорители трехмерной графики
(3D-aKce.4epaTopbi) с поддержкой многослойного изображения, теней И пр.
Ускорители 2П-графики производят выполнение некоторых
графических функций на аппаратном уровне, и их возможности обычно
используются для ускорения работы графического интерфейса пользователя (GUI)
л операционных системах (например, Windows, OS/2, X-Windows и т. п.). К числу
этих функций относятся перемещение оольших блоков изображения из одного
участка экрана в другой (например, при перемещении окна), заливка участков изээражения,
рисование линий, дуг, масочных шрифтов, поддеркка аппаратного курсора и т. п.
Ускорители анимации обычно разгружают центральный
процессор от заключительных стадий вывод;| видеоизображения на экран
монитора, например, они могут переводить цвета из одного представления в
другое, осуществлять масштабирование изображения и т. п.
Ускорители ЗИ-графики используются для ускорения операций
при построении трехмерных пространств и помогают при визуализации сложных
трехмерных объектов, в современных ЗБ-играх и других областях, например в
системах автоматического проектирования.
Хотя функции ускорителей используются только на
заключительных стадиях построения изображения и могут весьма успешно
выполняться и центральным процессором, но практически всегда это наиболее
ресурсоемкие опеэации и применение ускорителя может привести к очень сутпественнгжу
приросту производительности компьютера.
ЗО- акселерация
Посмотрим, что делается в компьютере при отрисопке
трехмерной сцены, например в компьютерной игре. Каждая сцена рисуется в
несколько этапов:
1. Определениесостоянияобъектов. Эта часть програм
мы не имеет прямого отношения к компьютерной графике, онл
моделирует тот мир, который будет отображаться в дальней
шем. Например, в случае компьютерной игры э го правила
игры
и физические законы перемещения игрока, искусственный
интеллект монстров и т. д.
2. Определение соответствующих текущему состоя -
нию геометрических моделей. Этот этап создает геометри
ческое представление текущего момента этого маленького
«виртуального мира».
3. Разбиение геометрических моделей на примитивы.
На этом этапе создается внешний вид объектоЕ в виде набора
определенных примитивов, разумеется, на основе информа
ции из предыдущего шага. Наиболее распространенным при
митивом в наше время является треугольник, и большинство
современных программ и ускорителей работают именно с тре
угольниками. На треугольники всегда можно разбить любой
плоский многоугольник, и именно тремя точками можно од
нозначно задать плоскость в пространстве.
4. Привязка текстур и освещения. На этой стадии опре
деляется, как будут освещены геометрические примитивы (тре
угольники), а также какие и как на них в дальнейшем будут
наложены текстуры (изображения, передающие внешний вил
материала объекта, т. е. негеометрическую визуальную инфор
мацию; пример текстуры — песок на абсолютнэ ровном пля
же). Как правило, на этой стадии информация вычисляется
только для вершин примитива.
5. Видовые геометрические преобразования. Здесь оп
ределяются новые координаты для всех вершш примитивов
исходя из положения наблюдателя и направления его взгля
да. Сцена как бы проецируется на поверхность монитора, пре
вращаясь в двухмерную, хотя информация о расстоянии от
наблюдателя до вершин сохраняется для последующей обрл
ботки.
6. Отбрасывание невидимых примитивов. На этой ста
дии из списка примитивов исключаются полностью невиди
мые (оставшиеся позади или сбоку от зоны видимости).
7. Установка примитивов. Здесь информация о при
митивах (координаты вершин, наложение текстур, освеще
ние и т. д.) прообразуется в вид, пригодный для последую
щей стадии.
8. Закраска примитивов. На этой стадии,
собственно, и
происходит построение в буфере кадра (памяти, отведенной
под результирующее изображение) картинки на основе ин
формации о примитивах, сформированной предыдущей ста
дией, и прочих данных, таких, как текстуры, таблицы тумана
и
прозрачности и пр. Как правило, на этой стадии для каждой
точки закрашиваемого примитива определяется ее видимость,
например, с помощью буфера глубин (Z-буфера) и, если она
не
заслонена более близкой к наблюдателю точкой (другого при
митива), вычисляется ее цвет. Цвет определяется на основе
информации об освещении и наложении текстур, определен
ной ранее для вершин этого примитива.
9. Финальная обработка — обработка всей результиру
ющей картинки как единого целого какими-либо двухмерны
ми эффектами.
Ускоритель состоит из геометрического процессора,
механизма установки (ответственного за реализацию этапа 7) и механизма отрисовки
примитивов — закраски (этапы 8 и 9), который является комбинацией двух блоков
— обработки текстур и обработки буфера кадра. Когда говорят о
производительности ускорителя, как правило, приводятся два числа — максимальная
пропускная способность (треугольников в секунду) и максимальная производи гельность
закраски (точек в секунду).
Закраска происходит следующим образом: блок обработки
буфера кадра определяет, видна ли закрашиваемая точка, например, с помощью буфера
глубин (Z-буфер). Если она видна, блок обработки текстур вычисляет цвет
текстуры, соответствующий этой точке примитива. Затем вычисленный цвет
текстуры помещается в буфер кадра, заменяя находившееся там ранее значение,
либо комбинируется с ним по какому-либо правилу. Ускоритель должен уметь
реализовать цветное освещение, эффекты типа металла или отражения и другие
эффекты.
Как правило, для каждой точки текстуры, кроме цвета, можно
задать степень ее прозрачности. Подобным образом накрашиваются, например,
полупрозрачные по краям взрывы и ореолы вокруг источников света в
компьютерных играх.
Последнее действие блока обработки буфера кадра —
наложение глобальных эффектов на готовую картинку. Например, туман, дымка или
темнота — с точки зрения ускорителя одно и то же. Устраняются резкие границы
между треугольниками, изображению придается приятный «монолитный» вид.
Ранее ускорители брали на себя лишь два-три последних
этапа. Однако современные ускорители поддерживают геометрические
преобразования (этапы 5, 6) и способны значительно увеличить скорость
построения изображения.
|