Глава 15

Видеоадаптеры

 

 

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

Интерфейс между компьютером и устройством отображения — было един­ственным назначением первых видеоадаптеров (MDA, CGA, HGC, EGA, VGA). Однако по мере развития PC на видеоадаптер стали возлагаться до­полнительные обязанности: аппаратное ускорение 2D- и ЗD -графики, обра­ботка видеосигналов, прием телевизионных сигналов и многое другое. Для решения этих задач в состав видеоадаптера начали включать дополнитель­ные элементы, в результате чего современный видеоадаптер, часто именуе­мый Super VGA или SVGA, превратился в мощное универсальное графиче­ское устройство. Однако по сложившейся традиции такие интегрированные изделия по-прежнему называются видеоадаптерами.

Видеоадаптер является исключительно важным элементом видеосистемы, поскольку определяет следующие ее характеристики:

□  максимальное разрешение и частоты разверток (совместно с монитором);

□  максимальное количество отображаемых оттенков цветов;

□  скорость обработки и передачи видеоинформации, определяющую производительность видеосистемы и PC в целом.

 

В самом общем случае видеоадаптер включает в себя следующие основные элементы:

 

видеопамять, предназначенную для хранения цифрового изображения;

□ набор микросхем {Chipset), реализующий все необходимые функции об­работки цифрового изображения и преобразования его в видеосигнал, подаваемый на монитор;

схемы интерфейса с шиной ввода/вывода PC;

ROM Video BIOS, в котором хранится расширение BIOS, предназначен­ное для управления видеосистемой PC (для видеоадаптеров EGA, VGA, SVGA);

□ цифро-аналоговый преобразователь, выполняющий преобразование циф­ровых данных, хранящихся в видеопамяти, в аналоговый видеосигнал (для видеоадаптеров VGA и SVGA);

□ тактовые генераторы.

 

Помимо видеосигнала, видеоадаптер формирует сигналы горизонтальной и вертикальной синхронизации, используемые при формировании растра на экране монитора, — сигналы H-Sync и V-Sync. Параметры этих сигналов должны соответствовать возможностям монитора, используемого совместно с видеоадаптером.

Кратко логику работы видеоадаптера можно изложить следующим образом.

CPU формирует цифровое изображение в виде матрицы NxM п-разрядных чисел и записывает его в видеопамять. Участок видеопамяти, отведенный для хранения цифрового образа текущего изображения (кадра), называется кадро­вым буфером, или фрейм-буфером (от англ. frame bufferкадровый буфер). Ви­деоадаптер последовательно считывает (сканирует) содержимое ячеек кадро­вого буфера и формирует на выходе видеосигнал, уровень которого в каждый момент времени пропорционален значению, хранящемуся в отдельной ячей­ке. Сканирование видеопамяти осуществляется синхронно с перемещением электронного луча по экрану ЭЛТ. В результате яркость каждого пиксела на экране монитора оказывается пропорциональной содержимому соответст­вующей ячейки памяти видеоадаптера. По окончании просмотра ячеек, соот­ветствующих одной строке растра, видеоадаптер формирует импульсы строчной синхронизации H-Sync, инициирующие обратный ход луча по горизонтали, а по окончании сканирования кадрового буфера — сигнал V-Sync, вызывающий движение луча снизу вверх. Таким образом, частоты строчной и кадровой раз­вертки монитора определяются скоростью сканирования содержимого видеопа­мяти, т. е. видеоадаптером. Очевидно', что блок разверток монитора должен поддерживать эти частоты. В противном случае изображение на экране монито­ра будет нестабильным или вовсе отсутствовать.

 

Режимы работы

 

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

 

       Примечание       

 

Если указаны только некоторые параметры, например разрешение, то будем говорить просто о режиме работы, не уточняя значение опущенных парамет­ров. При таком подходе под термином "режим" может подразумеваться не­сколько различных видеорежимов, имеющих один общий параметр.

 

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

 

Графический режим

 

В графическом режиме содержимое каждой ячейки кадрового буфера (матрицы NxM n-разрядных чисел) является кодом цвета соответствующего пиксела экрана. Разрешение экрана при этом также равно NxM. Адресуе­мым элементом экрана является минимальный элемент изображения — пиксел. По этой причине графический режим называют также режимом АРА (All Point Addressable — Все точки адресуемы). Иногда число п называют глу­биной цвета. При этом количество одновременно отображаемых цветов рав­но 2n, а размер кадрового буфера, необходимый для хранения цветного изо­бражения с разрешением NxM я глубиной цвета п, составит NxMxn бит.

Графический режим является основным режимом работы видеосистемы со­временного PC, поскольку в этом режиме на экран монитора можно вывести текст, рисунок, фотографию, анимацию или видеосюжет. В частности, в та­ком режиме работает видеосистема PC под управлением Windows. Однако для эффективной работы в графическом режиме требуется значительный объем видеопамяти и высокопроизводительный компьютер, поэтому данный режим стал основным только с появлением PC на базе CPU Intel 80386 и 80486.

 

Текстовый режим

 

В текстовом (символьном) режиме, как и в графическом, изображение на экране монитора представляет собой множество пикселов и характеризуется разрешением NxM. Однако все пикселы разбиты на группы, называемые знакоместами, или символьными позициями (Character positions, или Character boxes, — Символьные ячейки) размером pxq. В каждом из знакомест может быть отображен один из 256-и символов. Таким образом, на экране умеща­ется M/q = М/ символьных строк по N/p = Nt символов в каждой. Типичным текстовым режимом является режим 80x25 символов.

Изображение символа в пределах каждого знакоместа задается точечной матрицей (dot matrix). Размер матрицы зависит от типа видеоадаптера и те­кущего видеорежима. Чем больше точек используется для отображения сим­вола, тем выше качество изображения и лучше читается текст. Точки матри­цы, формирующие изображение символа, называют передним планом (foreground), остальные — задним планом, или фоном (background). В качестве примера на рис. 15.1 показана символьная матрица 9x16 пикселов.

Если считать, что темной клетке соответствует логическая единица, а свет­лой — логический ноль, то каждую строку символьной матрицы можно представить в виде двоичного числа. Следовательно, графическое изображе­ние символа можно хранить в виде набора двоичных чисел. Для этой цели используется специальное ПЗУ, размещенное на плате видеоадаптера. Такое ПЗУ называют аппаратным знакогенератором {Hardware character generator). Совокупность изображений 256 символов называется шрифтом. Аппаратный знакогенератор хранит шрифт, который автоматически используется видео­адаптером сразу же после включения компьютера (обычно это буквы анг­лийского алфавита и набор специальных символов). Адресом ячейки зна­когенератора является порядковый номер символа.

Рис. 15.1. Схема представления символа "А" в текстовом режиме в матрице 9x16 и ячейка знакогенератора

Для кодирования изображения символа на экране используется два байта: один — для задания номера символа, второй — для указания атрибутов сим­вола (цвета символа и фона, подчеркивания, мигания, отображения курсо­ра). Если на экране имеется Nt x Mt знакомест, то объем видеопамяти, необ­ходимый для хранения изображения, составит NtxMtx2 байт. Эту область видеопамяти называют видеостраницей {video page). Видеостраница является аналогом кадрового буфера в графическом режиме, но имеет значительно меньший объем. В наиболее распространенном текстовом режиме (80x25 символов) размер видеостраницы составляет 4000 байт, в режиме 40x25 — 2000 байт. На практике для удобства адресации под видеостраницу отводят 4 Кбайт = 4096 байт и 2 Кбайт = 2048 байт соответственно, при этом "лишние" байты (96 и 48) не используются.

Главная особенность текстового режима заключается в том, что адресуемым элементом экрана является не пиксел, а знакоместо. Иными словами, в тек­стовом режиме нельзя сформировать произвольное изображение в любом месте экрана — можно лишь отобразить символы из заданного набора, при­чем только в отведенных символьных позициях. Другим существенным ог­раничением текстово т» режима является узкая цветовая палитра — в данном режиме может быть t гображено не более 16-и цветов.

Как следует из сказанного выше, в текстовом режиме предоставляется гораздо меньше возможностей для отображения информации, нежели в графическом. Тем не менее, он имеет одно важное преимущество —  незначительные затра-ты ресурсов PC на его реализацию. Благодаря этому обеспечивается приемле­мая скорость работы в текстовом режиме даже на самых медленных PC. Именно по этой причине видеосистема первого персонального компьютера IBM PC работала только в текстовом режиме. Легендарная программная обо­лочка Norton Commander для MS DOS также работает в текстовом режиме, поэтому затраты ресурсов PC на ее функционирование минимальны.

Качество изображения, формируемого на экране монитора, зависит не толь­ко от характеристик последнего, но и от характеристик видеоадаптера.

 

Характеристики видеоадаптеров

 

К важнейшим характеристикам видеоадаптера относятся следующие:

 

□  Перечень и характеристики поддерживаемых видеорежимов

□ Объем видеопамяти, а также ее тип, разрядность и быстродействие

□ Разрядность и быстродействие Chipset видеоадаптера

□  Набор аппаратно ускоряемых графических функций

□  Быстродействие цифро-аналогового преобразователя

□  Тип интерфейса с шиной ввода/вывода

□  Драйверы

 

Коротко рассмотрим эти характеристик (заметим, что четыре последних па­раметра применимы только к современным видеоадаптерам типа SVGA).

Приведение в документации перечня поддерживаемых видеорежимов и их характеристик было важно только для первых видеоадаптеров, поскольку каждый из них поддерживал только несколько видеорежимов. С появлением видеоадаптеров VGA и SVGA это утратило актуальность, т. к. любой видео­адаптер VGA поддерживает стандартный набор видеорежимов, включая ре­жимы, в которых работали их предшественники. Кроме того, современный видеоадаптер SVGA дополнительно обеспечивает работу в видеорежимах высокого разрешения, определяемых спецификацией VESA.

 

Объем видеопамяти

 

Объем видеопамяти является основной характеристикой видеоадаптера, опре­деляющей его возможности с точки зрения разрешения и цветности форми­руемого изображения. Чем больше объем видеопамяти, тем выше разрешение и шире цветовая палитра изображения. Если нужно получить изображение с разрешением NxM и количеством оттенков цветов, равным 2", то необходи­мый объем видеопамяти составит NxMxn бит, или (NxMxn)/% байт. Увеличе­ние объема видеопамяти — основная тенденция развития видеоадаптеров, на­чиная с первых моделей и до настоящего времени.

Заметим, что данный параметр был особенно актуален для первых видео­адаптеров SVGA, поскольку наличие режимов с повышенными разрешени­ем и глубиной цвета было их главным отличием от стандартного видеоадап­тера VGA (табл. 15.1). Например, чтобы максимально использовать воз­можности монитора с экраном 15—17 дюймов по диагонали, видеоадаптер должен был иметь не менее 2—4 Мбайт видеопамяти. В современных видео­адаптерах, предназначенных для работы с трехмерной графикой, объем ви­деопамяти определяется в первую очередь потребностями ЗD-приложений и должен быть не менее 8—16 Мбайт. Заметим также, что объем видеопамяти косвенно влияет на скорость работы видеоадаптера: чем больше видеопамя­ти, тем быстрее работа (эта зависимость в значительной степени проявляет­ся при работе с трехмерной графикой).

Таблица 15.1. Зависимость объема видеопамяти от разрешения и количества цветов

При работе с высоким разрешением (свыше 1024x768) и большой глубиной цвета (от 16 до 32 бит на пиксел) заметное влияние на быстродействие ви­деосистемы и PC в целом оказывает пропускная способность видеопамяти, определяемая как произведение разрядности шины видеопамяти на ее так­товую частоту. Кроме того, быстродействие памяти зависит от ее типа.

 

Разрядность и быстродействие Chipset видеоадаптера

 

Разрядность и быстродействие Chipset видеоадаптера стали важными характе­ристиками только современных видеоадаптеров типа SVGA (особенно при работе с трехмерной графикой), поскольку все предыдущие видеоадаптеры для PC были 8-разрядными и выполнялись на стандартных микросхемах.

 

Набор аппаратно-ускоряемых графических функций

 

Набор аппаратно-ускоряемых графических функций также является харак­теристикой только видеоадаптеров SVGA. Различают функции ускорения двумерной и трехмерной графики.

 

Быстродействие цифро-аналогового преобразователя

 

Быстродействие цифро-аналогового преобразователя (ЦАП) характеризуется его тактовой частотой. Данный параметр определяет ширину спектра видео­сигнала. Его значение должно быть не меньше ширины полосы пропуска­ния видеотракта монитора (приблизительно оно может быть определено в герцах как произведение NmaxxMmaxxFкадр, где NmaxxMmax — максимальное разрешение, a Fкадрмаксимальная частота кадров, которые может обеспе­чить видеоадаптер).

Как правило, тактовая частота ЦАП превышает полосу пропускания монито­ра, поэтому можно не обращать внимания на значение данного параметра. Однако для профессиональной работы в системах автоматизированного про­ектирования и графических редакторах, требующих максимально четкого изо­бражения, следует выбирать видеоадаптеры с высокой частотой ЦАП. Для со­временных видеоадаптеров типичная частота ЦАП составляет 250—300 МГц.

 

Тип интерфейса с шиной ввода/вывода

 

Интерфейс с шиной ввода/вывода определяет скорость обновления кадро­вого буфера, поэтому оказывает существенное влияние на быстродействие видеосистемы и PC в целом. Наиболее медленными являются видеоадапте­ры с интерфейсом ISA, которые на сегодняшний день безнадежно устарели и годятся разве что для работы в текстовом режиме. Для эффективной рабо­ты с двумерной графикой вполне достаточно видеоадаптера с интерфейсом PCI, а для трехмерной графики требуется наличие специального интерфейса AGP (см. главу 5). Все современные видеоадаптеры выпускаются с интер­фейсом AGP.

 

Драйверы

 

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

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

Рис. 15.2. Окно диалога драйвера видеоадаптера Matrox MGA G200

 

Внимание!

 

При покупке видеокарты следует обращать внимание на наличие компакт-диска с драйверами и прежде всего на то, чтобы соответствующий драйвер был предназначен для используемых вами программ. Как правило, в комплект стандартной поставки входят драйверы для DOS и Windows.

 

Основные типы видеоадаптеров

 

С момента появления и до наших дней сменилось несколько типов видеосистем для PC. Рассмотрим основные из них, поскольку именно они оказали наиболь­шее влияние на облик видеосистемы современного мультимедийного PC.

 

MDA

 

Первые модели IBM PC были оснащены монохромным дисплеем с люми­нофором зеленого свечения. Для связи этого дисплея с компьютером ис­пользовался видеоадаптер типа MDA (Monochrome Display AdapterАдаптер монохромного дисплея). Он работал только в текстовом режиме 80x25 сим­волов. Символьная матрица (знакоместо) была размером 9x14 пикселов, по­этому разрешение, поддерживаемое монитором MDA, составляло 720x350 пикселов, а размер самого символа — 7x9 пикселов. Емкость видеопамяти видеоадаптера MDA была минимальной, достаточной для размещения толь­ко одной видеостраницы размером 4 Кбайт. Основу видеоадаптера MDA составляла микросхема МС6845 фирмы Motorola.

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

 

□ Видеосистема формировала только монохромное изображение.

□  Многие приложения требовали вывода на экран не только текстовой, но и графической информации, т. е. работа с этими приложениями должна была  осуществляться   в   графическом  режиме,   который   видеосистема MDA не поддерживала.

 

С целью устранения недостатков видеосистемы MDA буквально через не­сколько месяцев после выпуска IBM PC фирма IBM предложила новую ви­деосистему CGA, обладающую более широкими возможностями, но уже в составе улучшенной модели компьютера — IBM PC XT(eXtended Technology).

 

CGA                  

        

Видеосистема CGA включала в себя цветной TTL-монитор и видеоадаптер CGA (Color Graphics AdapterЦветной графический адаптер). Главные от­личия этой видеосистемы от MDA отражены в ее названии, т. е. она обеспе­чивала:

 

□  Цветное изображение (от 4 до 16 цветов)

□  Несколько графических режимов работы видеоадаптера

 

Максимальное разрешение монитора CGA составляло 640x200. Такое раз­решение использовалось либо в текстовом 80x25 (при размере знакоместа 8x8), либо в монохромном графическом режиме. В последнем случае для хранения цифрового образа экрана требовался кадровый буфер размером 640x480x1 = 128 000 бит = 15,625 Кбайт. Поэтому объем видеопамяти видео­адаптера CGA составлял 16 Кбайт. При работе в графическом режиме с бо­лее низким разрешением (например 320x200) для кодирования цвета каж­дого пиксела использовалось 2 бита, благодаря чему обеспечивалось одновременное отображение 4-х цветов, а при разрешении 200x160 — 16-и цве­тов. В текстовом режиме были доступны все 16 цветов. Видеоадаптер CGA также выполнен на основе микросхемы МС6845.

Меньшая детальность прорисовки символа и малое межсимвольное расстоя­ние, использованные в CGA, настолько ухудшили различимость текста по сравнению с MDA, что длительная работа в текстовом режиме стала крайне утомительна для глаз. Для совмещения главных достоинств CGA (графи­ческого режима и цветного изображения) с возможностью продуктивно рабо­тать в текстовых режимах, в PC могли быть установлены обе видеосистемы одновременно. Чтобы исключить конфликты, были разнесены адреса видео­памяти и управляющих регистров на видеоадаптерах CGA и MDA.

Интересная особенность видеоадаптера CGA — он может использовать обыч­ный телевизор в качестве устройства отображения. Для этого видеоадаптер CGA был оснащен специальным кодирующим устройством, которое из четы­рех двоичных сигналов 7, R, G, В и сигналов синхронизации формирует ком­позитный (совмещенный) полный цветной телевизионный сигнал (ПЦТС).

Как уже отмечалось, для реализации графического режима необходимо, что­бы все подсистемы компьютера имели довольно высокое быстродействие. В то же время IBM PC XT} в составе которого впервые появилась видеосисте­ма CGA, высоким быстродействием не отличался. Центральный процессор не успевал за период кадровой развертки полностью обновить кадровый бу­фер, поэтому некоторые ячейки видеопамяти содержали случайные значе­ния. В результате на изображении появлялась характерная рябь, напоми­навшая снег. Эти искажения назвали снегом CGA (CGA snow).

 

HGC

 

Стандарт HGC (Hercules Graphics Card), разработанный фирмой Hercules в 1982 г., явился логичным решением, позволившим объединить в одном изде­лии возможности MDA, обеспечивающие высококачественное отображение текста, с поддержкой графического режима CGA. Часто видеоадаптеры этого стандарта называют картами Hercules (рис. 15.3). Поскольку в качестве уст­ройства отображения для данного видеоадаптера использовался стандартный монохромный монитор видеосистемы MDA, видеоадаптеры HGC быстро за­воевали популярность и де-факто стали единственным стандартом в области видеосистем для PC, разработанных за пределами фирмы IBM.

По своему разрешению (720x348) видеоадаптер HGC подобен карте MDA. Соответственно, одинаковы у них и размеры символьной матрицы для тек­стового режима — 9x14 пикселов. В качестве видеоконтроллера в HGC ис­пользуется уже известная микросхема МС6845.

Длина первых карт Hercules равнялась примерно 30 см; на их платах раз­мещалось около 100 отдельных корпусов микросхем. Карты, производимые позднее, объединяли все элементы в одном чипе, таком как, например, микросхема контроллера TD3088. Обычно на такой карте находится еще и параллельный порт для подключения принтера.

Рис. 15.3. Внешний вид карты Hercules BT830

 

Однако, несмотря на все перечисленные выше достоинства, видеоадаптеры данного типа имели существенный недостаток — монохромность изображе­ния. По этой причине их широкое использование практически прекратилось с появлением новых видеоадаптеров фирмы IBMEGA и VGA.

 

EGA

 

Новый видеоадаптер EGA (Enhanced Graphics Adapter — Улучшенный графи­ческий адаптер) обеспечивал более высокое разрешение по вертикали, большее количество отображаемых цветов и обладал более высоким быстро­действием. Максимальное разрешение, обеспечиваемое видеосистемой EGA, составило 640x350, что позволило значительно повысить качество изображе­ния в текстовом и графическом режимах работы по сравнению с CGA. Благодаря увеличению размера знакоместа до 8x14 (размер символа соста­вил 7x9) значительно повысилась четкость отображения текста.

По сравнению с CGA в видеоадаптере EGA была усовершенствована схема кодирования цвета пиксела: вместо четырех двоичных сигналов использова­лось шесть, что увеличило размер палитры до 64 оттенков. Однако количе­ство одновременно отображаемых цветов по-прежнему было ограничено шестнадцатью.

Применение 16-цветной палитры при разрешении 640x350 потребовало рез­ко увеличить объем видеопамяти: в первых моделях видеоадаптера EGA бы­ло установлено 64 Кбайт видеопамяти, в дальнейшем размер видеопамяти был увеличен до 128 Кбайт.

Видеоадаптер EGA (рис. 15.4) имел еще одну важную особенность, сущест­венную для неанглоязычных пользователей PC: наряду с аппаратным знакогенератором он позволял использовать и программный, т. е. загружаемые шрифты. Это значительно облегчило поддержку национальных языков.

Рис. 15.4. Видеоадаптер EGA

 

Для видеоадаптера EGA характерно наличие DIP-переключателей на задней панели блока, при помощи которых производится настройка видеоадаптера на конкретный режим работы: выбор цветного или монохромного режима, коли­чества текстовых столбцов (40 или 80), выбор разрешения по вертикали, а также ряд других настроек. Необходимость такой настройки диктовалась воз­можностью использования различных мониторов совместно с видеоадаптером EGA. Поскольку выходной 9-штырьковый разъем видеоадаптера EGA по кон­струкции и назначению контактов аналогичен разъемам CGA и MDA, вместе с EGA могли использоваться три типа мониторов:

 

□ Монохромный монитор MDA

Цветной монитор CGA

□ Цветной монитор EGA(Enhanced Color Display, ECD)

 

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

Многие модели видеоадаптеров EGA унаследовали от CGA возможность вывода композитного видеосигнала на обычный телевизор или композит­ный монитор. Такие модели имеют на задней панели разъем типа RCA.

Хотя видеосистема EGA была намного лучше, чем CGA, качество форми­руемого ею изображения по-прежнему нельзя было считать удовлетвори­тельным по причине ограниченного количества одновременно отображаемых цветов (16). Поэтому судьба видеосистемы EGA была предрешена. Ее не спасло даже появление расширения стандарта EGA — видеосистемы EGA-плюс, которая обеспечивала более высокое разрешение 800x600 и ото­бражение 16-и цветов. Эта новинка просто не успела получить широкого распространения, т. к. вскоре появилась принципиально новая видеосисте­ма VGA, позволившая радикально улучшить качество изображения на экране монитора PC.

 

VGA

 

Размер цветовой палитры в видеосистемах CGA и EGA ограничивался не столько видеоадаптером (объемом видеопамяти), сколько цифровыми мони­торами, не позволявшими использовать более шести двоичных сигналов для кодирования цвета. Понимая это, специалисты фирмы IBM приняли гени­альное и простое решение — вернуться к аналоговому . видеосигналу, ис­пользуемому в обычном телевизоре. В итоге вместо многоразрядного циф­рового сигнала видеоадаптер стал формировать трехкомпонентный аналоговый RGB-сигнал, который после усиления подавался на модуляторы электронных пушек ЭЛТ. Так появилась видеосистема VGA, включающая новый аналоговый цветной монитор и встроенный в материнскую плату ви­деоадаптер VGA. Впервые она была использована в компьютере IBM PS/2 (Personal System). В дальнейшем видеоадаптеры VGA стали выпускать в виде отдельных плат, устанавливаемых в 16-разрядный слот шины ISA (рис. 15.5).

Рис. 15.5. Видеоадаптер VGA

 

Существует несколько вариантов расшифровки аббревиатуры VGA. Перво­начально она обозначала название сверхбольшой интегральной схемы (СБИС), в которой были реализованы основные узлы видеоадаптера (Video Gate Array — Вентильная матрица для формирования видеосигнала). Однако потом нюансы внутреннего устройства таких адаптеров отошли на второй план, а расшифровка этих аббревиатур стала отражать их функциональные особенности. Была также учтена созвучность данных аббревиатур с назва­ниями предыдущих видеоадаптеров (CGA, EGA), в которых сочетание GA {Graphics Adapter) означало графический адаптер. В итоге, VGA стали рас­шифровывать как Video Graphics Adapter — графический адаптер, форми­рующий видеосигнал (т. е. аналоговый сигнал).

Основным конструктивным отличием видеоадаптера VGA от своего предше­ственника (EGA) стало наличие специальной микросхемы — RAMDAC {Random Access Memory Digital-to-Analog Converter — Цифро-аналоговый пре­образователь данных, хранимых в ОЗУ). RAMDAC представлял собой быст­родействующий трехканальный ЦАП, оснащенный 256-ю регистрами цвета, образующими его собственное маленькое ОЗУ — RAM (этим и объясняется название данного элемента — RAMDAC, а не просто DAC). RAMDAC предназначен для преобразования двоичных чисел, содержащихся в ячейках видеопамяти, в три непрерывных RGB-сигнала, уровень которых пропор­ционален яркости каждого из трех основных цветов.

Видеоадаптер VGA имел 256 Кбайт видеопамяти. Это обеспечило поддержку графических режимов 640x480 при 16-и цветах (640x480/16) и 320x200/256. В последнем случае используется 8-битная кодировка цвета пиксела, благода­ря чему размер текущей палитры равен 256 цветовым оттенкам (именно столько регистров цвета имеет RAMDAC). Благодаря использованию видео­режима 320x200/256 впервые стало возможно получить изображение, хоть и немного размытое, но весьма реалистичное по цветовой гамме.

В соответствии с традициями IBM видеоадаптер VGA обеспечивал совмес­тимость со всеми видеорежимами предыдущих видеоадаптеров. Дополни­тельно он поддерживал три новых видеорежима:

 

□  высококачественный текстовый режим 80x25 символов при  16 цветах, разрешение  экрана  720x400,  размер  знакоместа  9x16,  частота  кадров 70 Гц;

□  графический режим 640x480/16;

□  графический режим 3200x200/256.

 

Благодаря высоким характеристикам и совместимости с программным обес­печением для более старых видеоадаптеров VGA быстро стал господствую­щим стандартом. Был разработан список стандартных видеорежимов (табл. 15.2), причем списки видеорежимов видеоадаптеров предыдущих ти­пов являлись подмножествами основного списка. Таким образом, сложилась единая нумерация всех стандартных видеорежимов, что обеспечило хоро­шую совместимость различных моделей видеоадаптера VGA с программным обеспечением.

 

Увеличение разрешения и частоты кадров привело к значительному расши­рению спектра видеосигнала на выходе видеоадаптера VGA. Для того чтобы обеспечить неискаженную передачу широкополосного видеосигнала от ви­деоадаптера к монитору, разработчики использовали новый 15-штырьковый D-образный разъем и высокочастотный соединительный кабель (рис. 15.6, см! табл. 14.3). Для передачи RGB-сигнала в этом кабеле использовались три изолированные друг от друга витые пары, отличающиеся малым затуха­нием высокочастотных сигналов. Высокопотенциальный провод пары на­зван по имени одного из трех основных цветов (например, Red), а низкопо­тенциальный (нулевой) — точно так же, но с добавлением слова Return(возврат), например Red Return. При использовании независимых нулевых проводов для передачи видеосигнала каждого из трех цветов значительно уменьшается их взаимное влияние на высоких частотах.

Рис. 15.6. 15-контактный D-образный VGA-разъем

 

Как следует из табл. 14.3, в новом разъеме появилось 3 контакта, которые не задействованы для передачи видеосигнала и сигналов синхронизации. Эти контакты, названные битами идентификации, первоначально использовались для того, чтобы адаптер мог автоматически определить тип подключенного к нему монитора. В дальнейшем они стали применяться для реализации протокола Plug&Play для мониторов. Благодаря этому отпала необходимость ручной настройки видеоадаптера при помощи DIP-переключателей, как это делалось в видеоадаптере EGA.

Таким образом, стандарт VGA явился качественным скачком в развитии ви­деосистемы PC и определил базовые принципы ее функционирования, ко­торые не изменились до сегодняшнего дня. Вместе с тем, вскоре стали оче­видны ограниченные возможности видеоадаптера VGA: например, системы автоматизированного проектирования требовали более высокого разреше­ния, чем 640x480, а для программ обработки изображения не хватало 256-и цветов. Результатом совершенствования VGA стало появление многочис­ленных расширений данного стандарта, которые постепенно оформились в обобщенный стандарт Super VGA.

 

Super VGA

 

Первоначально совершенствование видеоадаптера VGA шло в основном за счет увеличения объема его видеопамяти: сначала до 512 Кбайт, а затем и до 1 Мбайт. Появились видеоадаптеры, поддерживающие режимы 800x600, 1024x768 при одновременном отображении 256-и оттенков цветов. Для работы с такими видеоадаптерами использовались модернизированные монито­ры, имеющие уменьшенное зерно люминофора экрана, повышенные часто­ты синхронизации и более широкую полосу пропускания видеотракта. Воз­никло понятие видеосистемы Super VGA, под которым поначалу понималось любое расширение возможностей стандарта VGA. Первой фир­мой, изготовившей видеоадаптер, поддерживающий режим 800x600/256, бы­ла фирма NEC, а пионером среди видеоадаптеров, поддерживающих разре­шение 1024x768, стал видеоадаптер 8514/А фирмы IBM.

 

IBM 8514

 

Видеосистема 8514 была разработана фирмой IBM для своих высокопроиз­водительных компьютеров типа PS/2. В ее состав входил аналоговый цвет­ной монитор IBM 8514 с повышенным разрешением и видеоадаптер 8514/А. Помимо стандартных видеорежимов VGA, монитор IBM 8514 дополнитель­но обеспечивал разрешение 800x600 и 1024x768, причем в последнем случае использовалась чересстрочная развертка. Для работы с этим монитором применялся видеоадаптер, имевший 512 Кбайт видеопамяти. Другое отличие 8514/А от стандартного видеоадаптера VGA— дополнительные аппаратные средства, ускорявшие реализацию графических функций, благодаря чему работа 8514/А значительно ускорилась.

 

IBMXGA

 

Видеоадаптеры XGA (eXtended Graphic Array), также предназначенные для мощных серверов типа IBM PS/2 на основе процессоров Intel 80486, яви­лись качественно новыми изделиями, поскольку имели ряд важных отличий от своих предшественников.

Во-первых, эти видеоадаптеры оснащены собственным графическим 32-раз­рядным процессором, который не только ускоряет выполнение графических функций, но и позволяет видеоадаптеру наравне с CPU управлять передачей данных по шине ввода/вывода (эта функция называется Bus Mastering). Реа­лизация Bus Mastering позволяет значительно ускорить обновление кадро­вого буфера.

Во-вторых, данный видеоадаптер поддерживает 16-битное кодирование цве­та пиксела, что позволяет одновременно отобразить 65 536 оттенков цвета. За счет использования встроенного графического процессора и высокоско­ростной двухпортовой видеопамяти видеоадаптер XGA обеспечивал рекорд­но высокую скорость работы при разрешениях 800x600 и 1024x768. Исполь­зовался совместно с монитором IBM 8514.

 

        Примечание       

 

Видеоадаптеры 8514/А и XGA, обладая высокими характеристиками, не полу­чили широкого распространения по одной причине: они были рассчитаны на шину МСА, лицензию на производство которой фирма IBM так никому и не про­дала. Поэтому данные видеоадаптеры используются только в компьютерах ти­па IBM PS/2, построенных на основе шины МСА.

 

VESA Super VGA

 

Появление многочисленных моделей видеоадаптеров SVGA, изготовленных разными фирмами, породило проблему их совместимости с программным обеспечением. Причина ее возникновения заключалась в том, что расши­ренные режимы работы видеоадаптера не поддерживали стандартные спосо­бы инициализации: каждая из фирм-производителей использовала свои но­мера видеорежимов, расширенных относительно VGA, и свои команды инициализации. Например, режим 800x600/256 у видеоадаптеров фирмы Trident Microsystems имеет номер 5Eh, у видеоадаптеров фирмы Realtek — 27h, а у видеоадаптеров фирмы "Iseng Labs — 30h. Следовательно, для уста­новки режима 800x600/256 центральный процессор должен послать каждому из этих видеоадаптеров различные команды, что затрудняет создание уни­версальной программы.

Долгое время нельзя было говорить о Super VGA как о стандарте еще и по­тому, что не был четко определен смысл самого термина SVGA. Часто обыч­ный видеоадаптер VGA преподносился продавцами как SVGA только на том основании, что поддерживал видеорежим 800x600/16. Однако для реализа­ции такого режима необходимо менее 256 Кбайт видеопамяти, поэтому практически любой видеоадаптер VGA, имеющий стандартный объем памя­ти (256 Кбайт), может поддерживать данный режим.

Стремясь исправить это ненормальное положение, Ассоциация стандартов по видеоэлектронике (Video Electronics Standard Association, VESA) предложи­ла свой стандарт на нумерацию и способ инициализации видеорежимов, расширенных относительно VGA (табл. 15.3). Было предложено считать SVGA-режимами только такие, которые требуют для своей реализации не менее 512 Кбайт видеопамяти. Это позволило создавать универсальные программы, предназначенные для работы в режимах с повышенным разре­шением, а также решать вопрос принадлежности видеоадаптера к семейству SVGA. He случайно в течение длительного времени объем видеопамяти был главным критерием качества видеоадаптера SVGA.

Таблица 15.3. Стандартные SVGA-режимы согласно спецификации

VESA версии 1.0

Стандарт VESA имел несколько версий, появление которых отражало эво­люцию возможностей видеосистемы. Данные, приведенные в табл. 15.3, со­ответствует версии 1.0. В настоящее время используется стандарт версии 2.0, в который включены режимы с разрешением до 1600x1200. Кроме того, в адаптерах SVGA начали использоваться 24-разрядные RAMDAC и прямая кодировка цвета пиксела, благодаря чему появились такие режимы, как High Color (16 бит на пиксел, или 65 536 цветов) и True Color (24 бит на пиксел, или 16 777 216 цветов).

Программы, дополняющие Video BIOS видеоадаптера SVGA для обеспечения поддержки спецификации VESA, получили название VBE (VESA BIOS Exten­sion). Первоначально они использовались в виде драйверов и резидентных программ, загружаемых в память по мере необходимости. В настоящее время все современные видеоадаптеры содержат VBE в ROM Video BIOS, благодаря чему совместимость со спецификацией VESA обеспечивается автоматически.

С переходом к более высокому разрешению и большей глубине цвета резко увеличилась загрузка центрального процессора PC и шины ввода/вывода. Чтобы разгрузить центральный процессор, решение ряда задач построения изображения (заполнения кадрового буфера) решили возложить на специали­зированный набор микросхем {Chipset) видеоадаптера, получивший название графического ускорителя {акселератора). Акселератор на аппаратном уровне должен некоторые действия, относящиеся к построению изображения, кото­рые до него CPU был вынужден выполнять программным путем (а это на­много ^медленнее). В результате скорость работы видеосистемы и PC в целом значительно повысилась. Если акселератор допускал гибкое программирова­ние своих функций, его называли графическим, сопроцессором. Примерами та­ких систем стали видеоадаптеры TIGA (Texas Instruments Graphics Architecture) фирмы Texas Instruments на основе специализированных графических сопро­цессоров TMS34010 и TMS34020 производства этой же фирмы.

Другим способом повышения производительности видеосистемы и PC в це­лом стало применение видеоадаптеров с более быстрым интерфейсом, чем ISA. Первоначально для нужд видеосистемы использовалась 32-разрядная локальная шина VLB (VESA Local Bus), которая в дальнейшем была вытес­нена более быстрой и совершенной шиной PCI (Peripheral Component Inter­connect — Соединение периферийных устройств). В настоящее время боль­шинство видеоадаптеров, оснащенных функциями ускорения 2D- и 3D-rpaфики, имеют интерфейс AGP (см. главу 5).

 

Устройство и особенности работы видеоадаптера VGA

 

Несмотря на то, что облик современного видеоадаптера сильно изменился, он сохранил принцип действия и основные узлы, присущие видеоадаптеру VGA. По этой причине краткое знакомство с VGA полезно не только с точ­ки зрения истории видеоадаптеров — оно поможет лучше понять особенно­сти и современных устройств.

Видеоадаптер VGA содержит следующие элементы (рис. 15.7):

□ Видеопамять

□  ROM Video BIOS

□  Контроллер ЭЛТ, или CRTC {Cathode Ray Tube Controller)

  Графический контроллер

□  Контроллер атрибутов

□  Секвенсор (sequencer)

RAMDAC {Random Access Memory Digital-to-Analog Converter)

□  Синхронизатор

□  Тактовые генераторы

□  Интерфейс с шиной ввода/вывода

□   15-контактный D-образный разъем для подключения монитора

 

Большинство перечисленных выше элементов видеоадаптера содержат спе­циальные 8-разрядные регистры, доступные центральному процессору для чтения/записи данных. Модифицируя содержимое этих регистров, CPU управляет работой видеоадаптера.

Помимо регистров, входящих в состав указанных элементов, видеоадаптер VGA имеет несколько общих регистров, указанных ниже.

 

□  Многоцелевой выходной регистр (предназначен для задания адресов портов ввода/вывода элементов видеоадаптера, начального адреса кадрового бу­фера и выбора тактового генератора).

□  Регистр состояния (доступен только для чтения, используется для син­хронизации процесса обновления кадрового буфера с обратным ходом кадровой развертки).

 

Конструктивно основные элементы видеоадаптера VGA, за исключением видеопамяти, ROM Video BIOS, тактовых генераторов и схемы интерфейса с шиной ввода/вывода, реализованы в одной микросхеме.

 

Видеопамять

 

Видеопамять — это специализированное ОЗУ, размещенное на плате видео­адаптера. Оно предназначено для хранения цифрового образа формируемого изображения. Синонимом данного понятия является термин видеобуфер. Со­временные видеоадаптеры с интерфейсом AGP могут использовать для ра­боты не только свою собственную, но и оперативную память PC, поэтому видеопамять таких адаптеров часто называют локальной, подчеркивая тем самым место ее физического размещения. В дальнейшем будем использо­вать термин видеопамять. Объем видеопамяти определяет максимальное разрешение и количество цветовых оттенков формируемого изображения.

Часть видеопамяти, используемая для хранения цифрового изображения, называется кадровым буфером (frame buffer). Как правило, размер кадрового буфера меньше, чем объем видеопамяти. Например, в видеорежиме 640x480/16 кадровый буфер занимает 150 из доступных 256 Кбайт. Помимо кадрового буфера, в видеопамяти хранятся другие данные, например загру­жаемые национальные шрифты.

Важной характеристикой видеопамяти является ее пропускная способность, определяемая как произведение разрядности шины видеопамяти на такто­вую частоту шины. Пропускная способность видеопамяти измеряется коли­чеством мегабайт информации, которую можно передать через шину видео­памяти за 1 с. Иногда вместо этого термина употребляется выражение "полоса пропускания видеопамяти", что совершенно неверно. В видеоадап­тере VGA применялась 8-разрядная внутренняя шина, а в видеоадаптерах SVGA— сначала 16-, затем и 32-разрядная шина. В современных видео-адаптерах используется 64- или 128-разрядная внутренняя шина и тактовые частоты от 100 до 200 МГц, а наиболее совершенные модели видеоадаптеров имеют 256-разрядную шину данных. По этой причине пропускная способ­ность шины видеопамяти таких видеоадаптеров многократно превышает аналогичный параметр любой шины ввода/вывода, включая AGP. и стиму­лирует производителей наращивать объем видеопамяти.

 

Video BIOS

 

Реализация любой графической операции (смена видеорежима, обмен дан­ными с кадровым буфером, управление курсором и т. п.) требует от цен­трального процессора выполнения весьма длинной последовательности низ­коуровневых команд (чтения/записи, перемещения данных в регистрах и др.)- Для того чтобы избавить программиста ют необходимости составлять детальную низкоуровневую программу, а также для обеспечения совмести­мости аппаратного и программного обеспечения все наборы команд (подпрограммы) CPU, реализующие графические функции, помещаются в специальное ПЗУ, расположенное на плате видеоадаптера VGA. Эти под­программы образуют так называемое расширение базовой системы вво­да/вывода (BIOS extension) для решения задач вывода изображения на экран монитора и называются Video BIOS. Кроме того, Video BIOS содержит мно­жество данных (констант), необходимых для работы в различных видеоре­жимах, а также сведения о производителе, модели и возможностях видео­адаптера.

Фактически Video BIOS — это набор подпрограмм, написанных в кодах ко­манд центрального процессора и предназначенных для реализации основ­ных функций видеосистемы. Набор этих функций принято называть видео­сервисом.

Video BIOS хранится в специальном ПЗУ (ROM), размещенном на плате видеоадаптера VGA. Его емкость составляет 32 Кбайт. Память ROM Video BIOS видеоадаптера VGA является 8-разрядной.

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

 

Контроллер ЭЛТ

 

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

Работа контроллера ЭЛТ синхронизируется сигналами одного из двух такто­вых генераторов (Dot Clock или Pixel Clock), установленных на плате видео­адаптера. Их частоты равны 28,322 МГц и 25,175 МГц соответственно. Вы­бор синхросигнала производится программно.

Контроллер ЭЛТ имеет 26 регистров, доступных CPU для чтения и записи. Данные, хранящиеся в регистрах контроллера ЭЛТ, полностью определяют параметры растра на экране монитора: разрешение, частоту кадров, размеры знакоместа и др. Смена видеорежима реализуется путем записи в эти реги­стры новых значений, соответствующих выбранному режиму (решение этой задачи обеспечивает функция 00h прерывания 10h).

 

Графический контроллер

 

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

 

□  запись пиксела (группы пикселов) по заданному адресу;

□ считывание значение пиксела (группы пикселов) по заданному адресу;

□  модификация цвета пиксела (группы пикселов) путем выполнения таких элементарных логических операций,  как "И",  "ИЛИ",  "Исключающее ИЛИ", циклический сдвиг бит в пределах байта и т. п.;

□ считывание из кадрового буфера кода пиксела (считывание со сравнени­ем цвета; фактически реализуется поиск пиксела с заданным цветом).

 

Кроме того, графический контроллер видеоадаптера VGA содержит четыре 8-разрядных регистра-защелки (lathees), которые используются для доступа к цветовым плоскостям (напомним, что в 16-цветных графических режимах кадровый буфер видеоадаптера разделен на четыре области, называемые цветовыми "(или битовыми) плоскостями).

Графический контроллер видеоадаптера VGA можно считать простейшим прообразом графических акселераторов, используемых в современных ви­деоадаптерах SVGA.

 

Секвенсер

 

Секвенсер, или указатель последовательности, предназначен для генерации сигналов, необходимых при сканировании видеопамяти. Другими словами, секвенсер обеспечивает последовательную адресацию и считывание содер­жимого ячеек видеопамяти (отсюда и происходит его название) и передачу их содержимого в контроллер атрибутов и далее — в RAMDAC. Работа секвенсера синхронизируется стробирующими сигналами, формируемыми кон­троллером ЭЛТ.

 

Контроллер атрибутов

 

Контроллер атрибутов видеоадаптера VGA предназначен для управления цветом изображения, выводимого на экран монитора. В текстовом режиме работы видеоадаптера он задает цвет пикселов в пределах символьной мат­рицы на основании содержимого байта атрибутов выводимого символа (отсюда и его название). Кроме того, в этом режиме контроллер атрибутов позволяет создавать такие эффекты, как мигание, инверсия цвета или по­вышенная яркость символа. В графическом 16-цветном режиме контроллер атрибутов преобразует условный 4-разрядный номер цвета пиксела, храня­щийся в видеопамяти, в 8-разрядный номер регистра RAMDAC, содержа­щего 18-разрядный код отображаемого цвета. С выхода контроллера атрибу­тов данные поступают на RAMDAC видеоадаптера.

 

RAMDAC

 

Основная  задача  RAMDAC (цифро-аналогового   преобразователя  данных, хранящихся в его регистрах) — преобразование кода цвета пиксела в ана­логовый сигнал. RAMDAC (рис. 15.8) включает:

 

□ трехканальный 6-разрядный ЦАП;

256 18-разрядных регистров цвета (именно эти регистры и образуют опе­ративную память, аббревиатура которой (RAM) входит в название дан­ного устройства);

□ выходной 18-разрядный регистр цвета, выходы которого соединены с со­ответствующими входами ЦАП;

□ схему адресации.

 

Работа ЦАП синхронизируется сигналом Dot Clock тактового генератора видеоадаптера. Именно этой частотой определяется верхняя граничная час­тота спектра видеосигнала. Разрядность" ЦАП определяет количество оттен­ков цвета, которые потенциально может сформировать видеоадаптер VGA, т. е. размер его палитры. Несложно подсчитать, что палитра составляет (26)3 = =218 = 262 144 оттенков. Оттенок цвета текущего пиксела определяется ходом, записанным в выходной регистр цвета. Однако на практике количество оттенков цвета, которые видеосистема VGA в состоянии отобразить одно­временно, значительно меньше размера его палитры и равно количеству ре­гистров цвета, т. е. 256. Видеоадаптер VGA не позволяет загрузить в выход­ной регистр цвета произвольное значение — туда заносятся данные только из регистров цвета, которых в видеоадаптере VGA насчитывается только 256.

Рис. 15.8. RAMDAC

 

Содержимое регистров цвета ЦАП можно изменять программно, т. е. CPU как считывает данные регистров, так и записывает в них. Благодаря этому прикладная программа изменяет текущую палитру, частично компенсируя ее ограниченность.

Заметим, что в видеоадаптерах SVGA, в отличие от VGA, может использо­ваться прямое кодирование оттенка цвета пиксела, при котором его код в формате RGB хранится в видеопамяти и загружается непосредственно в вы­ходной регистр цвета RAMDAC. Это позволяет кодировать цветовой оттенок пиксела с использованием 15, 16 или 24 бит, т. е. реализовать режимы High Color (216 = 65 536 цветовых оттенков одновременно) и True Color (224 = = 16,7 млн цветовых оттенков). Для обеспечения второго режима разряд­ность ЦАП в каждом из трех каналов должна быть равна 8.

 

Синхронизатор

 

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

Для синхронизации обращения CPU к кадровому буферу используется так­же регистр состояния. Бит 3 этого регистра устанавливается в состояние логической 1, если сигнал V-Sync активен, а бит 0, — если активен сигнал разрешения отображения (Display Enable). Прикладная программа, считывая биты регистра состояния, обращается к кадровому буферу только тогда, ко­гда вывод информации на экран не производится.

 

Тактовые генераторы

 

Работа всех устройств видеоадаптера VGA синхронизируется сигналом Dot Clock или производными от него тактовыми сигналами. Частота сигнала Dot Clock равна верхней граничной частоте выходного видеосигнала. Кроме то­го, при заданном разрешении этой же частотой определяются значения час­тот строчной и кадровой синхронизации.

Синхронизация устройств стандартного видеоадаптера VGA в зависимости от выбранного видеорежима осуществляется тактовым сигналом, формируе­мым одним из двух встроенных генераторов сигналов фиксированных час­тот: 25,175 и 28,322 МГц. Кроме того, предусмотрена возможность исполь­зования внешнего тактового генератора (в первых видеоадаптерах VGA, интегрированных на материнскую плату). Выбор тактового генератора осу­ществляется программно.

 

Интерфейс с шиной ввода/вывода

 

Видеоадаптер VGA вставляется в 16-битный слот шины ввода/вывода ISA, поэтому он снабжен специальным интерфейсом, выполняющим следующие функции:

 

□ согласование разрядности внутренней 8-разрядной шины видеоадаптера VGA и 16-разрядной шины ISA компьютера;

□ согласование частот тактовых сигналов видеоадаптера (Dot Clock) и шины ISA.

 

Современные видеоадаптеры подключаются к высокоскоростным шинам (PCI, AGP).

 

Основные направления совершенствования видеоадаптера VGA

 

Несмотря на то, что видеоадаптер VGA был признан стандартом, его воз­можности очень скоро перестали удовлетворять требованиям многих совре­менных приложений. Укажем наиболее серьезные недостатки стандартного видеоадаптера VGA:

 

□  небольшое количество цветов и недостаточное для многих приложений разрешение экрана;

□ низкое быстродействие видеосистемы;

□ недопустимо высокая загрузка центрального процессора задачами фор­мирования

изображения, отвлекающая его от решения других задач.

 

 Проблема разрешения и цветнорти была довольно быстро решена с появле­нием первых адаптеров SVGA\ у которых объем видеопамяти составил 512 Кбайт и 1 Мбайт. Однако быстродействие этих адаптеров, особенно при высоком разрешении и большой глубине цвета, оставляло желать лучшего. Можно назвать следующие причины низкого быстродействия видеоадаптера VGA и первых видеоадаптеров SVGA:

□  пассивность видеоадаптера VGA при формировании и модификации кад­рового буфера, приводящая к необходимости привлечения центрального процессора для реализации всех графических функций;

□ недостаточная пропускная способность внутренней шины данных видео­адаптера, обусловленная ее малой разрядностью (8 бит) и низким быст­родействием видеопамяти;

□  низкая пропускная способность шины ISA, по которой осуществляется пересылка данных из ОЗУ в видеопамять;

□ отсутствие аппаратной поддержки дополнительных функций, используе­мых в мультимедийных приложениях (воспроизведение видеоданных, прием телевизионных сигналов и т. п.).

 

На устранение этих недостатков были направлены основные усилия разра­ботчиков, в результате чего появились современные видеоадаптеры SVGA.

Наиболее простым и очевидным решением совершенствования видеоадап­тера VGA стало увеличение объема видеопамяти. Пионером в реализации такого технического решения условно считается японская фирма NEC, вы­пустившая видеоадаптер, оборудованный видеопамятью объемом 512 Кбайт, который мог работать в видеорежимах 640x480/256 и 800x600/256. Важным шагом на пути улучшения цветности изображения стал выпуск фирмой Sierra Semiconductors нового 24-разрядного RAMDAC, позволяющего загру­жать в выходной регистр ЦАП данные непосредственно из видеопамяти, минуя регистры цвета ЦАП. Это позволило реализовать новые видеорежимы High Color (32 768 и 65 536 оттенков цвета) и режим True Color (16 777 216 оттенков цвета).

На базе такого RAMDAC стали выпускаться видеоадаптеры (рис. 15.9), обо­рудованные видеопамятью объемом 1 Мбайт и больше (дело в том, что 512 Кбайт видеопамяти не достаточно для реализации режима High Color даже при минимальном разрешении 640x480).

Рис. 15.9. Видеоадаптер VGA с видеопамятью объемом 1 Мбайт

 

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

 

Аппаратное ускорение графических функций

 

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

Между тем, операции по созданию графического интерфейса в большинстве своем достаточно просты и рутинны, просто их необходимо выполнять очень часто. Например, для создания стандартного графического интерфейса пользователя в среде Windows (Graphic User Interface, GUI) необходимо много-кратно проделывать в основном простейшие операции построения графиче­ских примитивов (таких, как линии, прямоугольники, окружности), их за­краски, переноса фрагментов растра (окна) из одной области экрана в дру­гую и т. п. Выполнение этих операций можно значительно ускорить, если поручить их не центральному процессору, а специализированному устройст­ву, специально приспособленному для построения графических примити­вов. Такому устройству можно выдать одну команду высокого уровня вместо множества низкоуровневых, например, команду "Построить окружность". При этом достаточно указать параметры объекта: радиус, цвет, координаты центра. Все промежуточные операции по модификации каждого пиксела, находящегося на окружности, это устройство выполнит самостоятельно, не прибегая к помощи центрального процессора. Устройство, работающее по такому принципу, называют графическим ускорителем {акселератором).

Повышение быстродействия видеосистемы и PC в целом при использова­нии графического ускорителя достигается за счет:

 

□ аппаратной реализации заданного набора графических функций, выпол­нение которых осуществляется всего лишь за несколько тактов работы акселератора;

□  использования акселератором системы команд высокого уровня, что раз­гружает шину ввода/вывода — поток данных значительно уменьшается;

□  освобождения центрального процессора от необходимости выполнения множества элементарных операций с содержимым кадрового буфера.

 

Использование графического ускорителя является отступлением от класси­ческой архитектуры PC, когда всей работой управляет центральный процес­сор, и является шагом на пути создания распределенной вычислительной структуры. Взамен пассивного устройства — графического контроллера — видеоадаптер получил специализированный вычислитель — графический акселератор, который самостоятельно манипулирует содержимым видеопа­мяти точно так же, как центральный процессор — содержимым оперативной памяти PC.

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

 

□  Акселерация необходима только в графическом режиме работы видео­адаптера.

□ Одно из главных отличий графического акселератора от графического контроллера видеоадаптера VGA заключается в том, что он оперирует не пикселами, а объектами более высокого иерархического уровня — графическими примитивами. Примеры графических примитивов — отре­зок прямой, треугольник, прямоугольник, прямоугольник с закруглен­ными краями, многоугольник, дуга, эллипс и т. п. Используя графиче­ские примитивы, можно конструировать достаточно сложные изображения значительно быстрее и проще, чем при модификации отдельных пикселов. Поэтому команды для работы с графическими примитивами, которые центральный процессор посылает акселератору, часто называют высокоуровневыми.

 

Коротко рассмотрим основные графические функции видеоадаптера, тре­бующие аппаратного ускорения.

 

Основные графические функции видеоадаптера

 

1.     Прорисовка графических примитивов

 

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

                                                                              

2.     Перенос блоков изображения

 

Перенос блоков изображения выполняется при перетаскивании окон, ярлы­ков и других элементов графического интерфейса операционной системы и прикладных программ, при выполнении прокрутки {Scrolling) экрана, при редактировании изображений в графических редакторах. Данная функция сводится к перемещению блока битов из одной области видеопамяти в дру­гую, поэтому часто ее обозначают BitBlt {Bit Block Transferring).

 

3.     Аппаратная поддержка окон

 

Суть аппаратной поддержки окон {Hardware Windowing) состоит в следующем. При наличии на экране нескольких раскрытых (особенно перекрывающих­ся) окон и использовании обычного видеоадаптера VGA каждая прикладная программа тратит много времени на то, чтобы постоянно отслеживать коор­динаты ячеек кадрового буфера, соответствующих области "своего" окна. Естественно, это значительно замедляет работу программы. Если же исполь­зуется акселератор с аппаратной поддержкой функции Hardware Windowing, то для окна каждой программы в видеопамяти выделяется отдельная об­ласть: вместо одного кадрового буфера, размеры которого определяются разрешением экрана, акселератор использует несколько "кадровых буферов", размеры которых соответствуют размерам окон соответствующих программ. Акселератор также запоминает порядок, в котором окна накладываются друг на друга. В процессе вывода изображения на экран акселератор сканирует ячейки кадрового буфера не последовательно (как это имеет место в обыч­ном видеоадаптере), а в соответствии с порядком расположения окон, пере­ключаясь при этом с одной области видеопамяти на другую.

 

Примечание       

 

Выигрыш от использования данной графической функции тем значительнее, чем больше объем видеопамяти, установленной на плате видеоадаптера.

 

4.     Аппаратный курсор

 

Центральный процессор считывает через СОМ-порт, к которому подключе­на мышь, координаты курсора и посылает их значения в акселератор. Тот, в свою очередь, формирует изображение курсора мыши в указанном месте экрана. При выполнении манипуляций с мышью акселератор самостоятель­но переносит изображение курсора в нужное место экрана и ликвидирует "следы" его пребывания на первоначальном месте, внося в кадровый буфер необходимые изменения. Таким образом, центральный процессор освобож­дается от необходимости корректировать содержимое кадрового буфера ви­деоадаптера при перемещении указателя мыши — ему достаточно послать акселератору только новые координаты курсора.

 

5.     Масштабирование растровых изображений

 

Масштабирование растровых изображений — очень часто выполняемая процедура, причем весьма трудоемкая для центрального процессора, т. к. требуется интенсивный обмен данными между CPU и видеопамятью. Такая задача возникает при изменении размеров окна программы, работе с рас­тровыми изображениями в графических редакторах, просмотре на PC ви­деофильмов в полноэкранном режиме и в ряде других случаев.

Различают два вида масштабирования: дублирование (репликация) и интерполя­ция (фильтрация, сглаживание). Дублирование сводится к простому увеличе­нию размера пиксела в необходимое количество раз. Оно сопровождается по­явлением характерных дефектов — пикселизации и алиасинга (зазубренности наклонных линий). Для сведения этих искажений к минимуму используется интерполяция. Ее суть заключается в том, что значение каждого пиксела нового, масштабированного изображения определяется как средневзвешенное значений нескольких соседних пикселов. Чем большее количество пикселов обрабатывается при интерполяции, тем лучше результат.

 

6.     Панорамирование

 

Если объем видеопамяти превышает размер кадрового буфера, необходимый при данном разрешении и выбранной палитре, то прикладная программа может синтезировать изображение, размер которого (в пикселах) будет превышать размер видимой области экрана. Такая ситуация возникает, напри­мер, при использовании плоскопанельных ЖК-мониторов, рассчитанных на работу с фиксированным разрешением. В этом случае для просмотра неви­димой в данный момент области экрана используется функция панорамиро­вания (Panning),похожая на упомянутую выше прокрутку экрана. Однако панорамирование не требует выполнения операций типа BitBlt, а сводится лишь к изменению начального адреса той области видеопамяти, в которой записана видимая в данный момент часть изображения.

 

7.     Преобразование цветового пространства

 

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

Как известно, видеоадаптер SVGA в режимах High Color (16 бит на пиксел) и True Color (24 бита на пиксел) хранит изображение р кадровом буфере и передает его в RAMDAC в формате RGB. Однако для хранения изображе­ния в формате RGB требуется память большого объема. Поэтому во многих приложениях, связанных с обработкой и хранением динамических изобра­жений, использование данного формата нецелесообразно. В частности, в телевидении, цифровом видео и других областях широко используются бо­лее экономичные формы представления, основанные на замене трех сигна­лов основных цветов сигналами яркости и цветности. В настоящее время наиболее широко распространен формат YUV (см. главу 16).

Для воспроизведения цифрового изображения в формате YUV на экране монитора PC необходимо преобразовать это изображение в формат RGB. В частности, такая задача возникает при воспроизведении видео, сжатого по методу MPEG. Если преобразование цветового пространства будет выпол­нять центральный процессор, то решение им других задач (например, де­компрессию кадров) будет отложено, в результате чего скорость воспроизве­дения (частота кадров) будет недостаточной для создания у пользователя иллюзии непрерывности движения. Высококачественный графический ус­коритель самостоятельно выполняет это преобразование, причем делает это в реальном масштабе времени.

 

 

 

 

8.     Декомпрессия сжатых видеоданных

 

Цифровые видеофильмы хранятся в упакованном, сжатом формате. Обычно используется метод сжатия MPEG. При воспроизведении необходимо рас­паковать каждый кадр изображения перед его записью в кадровый буфер видеоадаптера. Эта распаковка, или декомпрессия, может выполняться либо программно (центральным процессором), либо аппаратно (графическим уско­рителем). Первый вариант возможен только на PC с процессором Pentium 100 и выше. При наличии аппаратной декомпрессии цифровое видео можно воспроизводить даже на компьютере с процессором 386.

 

Построение трехмерных изображений

 

Перечень функций, используемых для построения трехмерных изображений, весьма обширен. Эти функции реализуются специальным устройством — 3D-акселератором, или ускорителем трехмерной графики. ЗD-акселератор может быть не только интегрированным в видеоадаптер, но и выполнен как от­дельная плата.

Типовой современный графический ускоритель, предназначенный для обра­ботки двумерных графических данных (2D), обычно реализует аппаратное ускорение первых семи функций. С одной стороны, это обеспечивает хоро­шую производительность в традиционных офисных приложениях типа Mi­crosoft Word, Microsoft Excel и т. п. С другой стороны, аппаратная поддерж­ка масштабирования и преобразования цветового пространства позволяет эффективно воспроизводить видеоданные программным путем на PC сред­ней производительности.     

         

2D-акселераторы

 

Первоначально   видеоадаптеры   с   аппаратным   ускорением   графических

функций делились на две группы:

 

□ Видеоадаптеры с графическим ускорителем (акселератором)

□ Видеоадаптеры с графическим сопроцессором

 

Критерием разделения был способ реализации аппаратного ускорения и

степень "интеллектуальности" видеоадаптера.

 

Графический акселератор

 

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

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

 

Графический сопроцессор

 

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

Во-первых, графический сопроцессор — это интеллектуальное устройство, основу которого составляет арифметико-логическое устройство (АЛУ). АЛУ фактически представляет собой специализированный микропроцессор, ра­ботающий по программам, содержащимся в собственном ОЗУ. Таким обра­зом, основное отличие графического сопроцессора от графического акселе­ратора заключается в том, что сопроцессор можно запрограммировать на выполнение различных задач, тогда как ускоритель ориентирован только на конкретные приложения.

Во-вторых, графический сопроцессор, в отличие от графического акселера­тора, является активным устройством. В процессе выполнения своих функ­ций он может наравне с центральным процессором обращаться к системной оперативной памяти и управлять шиной ввода/вывода.

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

 

Chipset для видеоадаптеров SVGA

 

Наиболее известными производителями наборов микросхем с аппаратным ускорением двумерной графики являются S3, ATI Technologies, Matrox, Tseng Labs, Cirrus Logic, Trident, 3Dfx и др. Приведем краткие характеристи­ки некоторых наборов, выпускаемых этими компаниями.

 

S3 868

 

Это один из первых мультимедиа-акселераторов. Микросхема Vision 868 фир­мы S3 представляет собой 64-разрядный графический контроллер. Помимо ускорения обычных графических операций (перенос блока данных BitBit, за­краска прямоугольников, поддержка аппаратного курсора) данный процессор позволяет, в частности, преобразовывать поток данных в формате YUV в со­ответствующий поток в формате RGB с представлением 24 разряда на один пиксел. Данный акселератор позволяет воспроизводить видеоинформацию под Windows, используя популярные форматы кодеков типа Indeo, Cinepak и программный MPEG. Частота смены изображения достигает 30 кадров в се­кунду. Максимальный объем видеопамяти составляет 2 Мбайт.

 

S3 968

 

Дальнейшим развитием мультимедиа-акселераторов является сегодня уже несколько устаревший набор процессоров Vision 968 фирмы S3. В свое вре­мя он являлся одними из самых быстрых акселераторов. Максимальный объем поддерживаемой двухпортовой видеопамяти VRAM составляет 4 Мбайт. Это позволяет достигать разрешающей способности 1600x1200 то­чек при одновременном отображении 65 536 цветов. Акселераторы с этим контроллером при установке дочерней карты Motion Video Player (MVP), на которой установлен MPEG-декодер, отвечающий стандарту ISO 11172, по­зволяют работать с файлами в формате Video CD, CD-I, Karaoke CD. Кроме этого, этот мультистандартный декодер может преобразовывать аналоговый видеосигнал в цифровой (YUV).

 

S3 Trio64V+

 

Превосходит S3 968 по низкоуровневому быстродействию, но уступает по показателям аппаратного ускорения графики. Получил широкое распро­странение, и поэтому совместим с большинством существующих программ. Использует память типа FPM и EDO RAM. По своей производительности стал стандартом для современных PC.

 

S3 Trio64 V2/DX

 

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

 

S3 ViRGE (86C325)

 

Данный набор микросхем одним из первых обеспечил аппаратное ускоре­ние отдельных функций по построению трехмерной графики, хотя для пол­ноценной работы в 3D он все же не пригоден. Он не отличается высоким низкоуровневым быстродействием, но оснащен мощным ускорителем двух­мерной графики, что позволяет ему конкурировать с более дорогими набо­рами. Предусматривает применение памяти типа EDO и FPM RAM.

При разработке S3 ViRGE за основу был взят очень популярный у произво­дителей компьютеров графический процессор S3 Trio64V+. В результате созданный кристалл S3 ViRGE оказалася способным выполнять функции S3 Trio64V+ no аппаратной поддержке ускорения прорисовки двухмерных примитивов и ускорения работы графического интерфейса Wndows с новы­ми функциями (например, поддержкой "живого" видео). По этой причине данные видеоадаптеры целесообразно использовать при воспроизведении на компьютере Video-CD.

 

S3ViRGE/VX

 

Дальнейшее развитие S3 ViRGE реализовалось в графическом контроллере S3 ViRGE/VX, рассчитанном на работу с двухпортовой памятью типа VRAM. Поэтому видеоадаптеры на его базе обычно работают быстрее и лучше приспособлены для режимов с высокими разрешениями.

 

S3 ViRGE GX/DX (86C375)

 

Этот набор — улучшенная версия Chipset 86O325 (в частности, в новом Chipset частота RAMDAC увеличена с 135 до 170 МГц). Chipset S3 ViRGE GX/DX обладает хорошей производительностью в 2D-приложениях, но не обеспечивает значительного ускорения при обработке трехмерной графики, несмотря на первоначальные попытки фирмы S3 объявить свое изделие как совмещенный 2DD-ускоритель и видеоадаптер. Это стало особенно оче­видно после появления акселератора Voodoo Graphics фирмы 3Dfx. Сегодня S3 ViRGE GX/DX является недорогим, но весьма эффективным решением для работы в офисных приложениях.

 

ATI MACH 64

 

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

 

ATI 3D RAGE II

 

Как и S3 ViRGE, представляет собой не слишком удачную попытку создать совмещенный 2DD-ускоритель. При работе в 2D он по всем параметрам превосходит ATI MACH 64 и обладает одним из лучших соотношений це­на/производительность, однако для работы с трехмерной графикой мало­пригоден. Рассчитан на работу с памятью типа SGRAM.

 

ATI 3D Rage PRO

 

Являясь развитием ATI 3D RAGE II, Chipset ATI 3D Rage PRO унаследовал от него высокую производительность в 2D и крайне слабую реализацию функций трехмерной графики.

 

Matrox MGA-2064W

 

Этот уже устаревший, но еще достаточно конкурентоспособный высокопро­изводительный графический акселератор работает с двухпортовой памятью типа WRAM. Имеет средства ЗВ-ускорения, однако фирма-изготовитель не планирует его как основу для использования в ЗD-акселераторах и видео­адаптерах с ускорением трехмерных функций.

 

Matrox MGA-1064SG

 

От MGA-2064W отличается меньшей ценой, использованием памяти типа SGRAM и более развитыми трехмерными возможностями.

 

Matrox MGAG100

 

Первая и неудачная попытка фирмы Matrox сделать графический акселера­тор с 2D- и ЗD-функциями — это Chipset Matrox Productiva G100. Хотя и имеет прекрасные показатели при работе с двумерной графикой и непри­вычно дешево стоит для изделий Matrox, Chipset не обеспечивает приемле­мого качества обработки ЗD-изображений, поэтому не может использовать­ся в области трехмерной графики.

 

Tseng Labs ET6000

 

Является 128-разрядным графическим акселератором, в отличие от ранее рассмотренных 64-разрядных. Имеет хорошее низкоуровневое быстродейст­вие, что позволяет его рекомендовать любителям "думоподобных" игр. Иде­ально подходит при работе с офисными приложениями. Однако в режимах High Color и True Color несколько уступает контроллерам ATI 3D RAGE II, S3ViRGE/VX, Matrox MGA 1064SG и Matrox MGA 2064W. Работает с одно-портовой памятью типа MDRAM (Multibank Dynamic Random Access MemoryМногобанковая память с произвольным доступом) и не имеет средств уско­рения трехмерной графики.

 

Cirrus Logic CL-GD5446

 

Очень дешевый и достаточно быстрый акселератор. По быстродействию не­сколько превосходит S3 Trio64V+. Использует память EDO. Как правило хорошо подходит для компьютерных игр и для проигрывания файлов фор­мата AVI.

 

Видеопамять для видеоадаптеров

 

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

В видеоадаптерах используются однопортовые и двухпортовые элементы ди­намической памяти.

 

Однопортовая видеопамять

 

Однопортовая память — это разновидность динамической памяти, имеющей только один порт, через который осуществляется чтение/запись данных. Та­ким образом, одновременное выполнение операций чтения и записи невоз­можно. Это сильно ограничивает быстродействие видеоадаптера, т. к. про­цессор может начать обновление кадрового буфера лишь после того, как видеоконтроллер завершит чтение данных из буфера. Память типа FPM DRAM, EDO DRAM, BEDO DRAM, SDRAM и SCRAM была рассмотрена в главе 7. Здесь же мы уделим внимание только специализированной памяти, предназначенной для использования исключительно в видеоадаптерах.

 

SGRAM

 

Память типа SGRAM (Synchronous Graphics RAM — Синхронная графическая память) имеет много общего с рассмотренной выше памятью типа SDRAM. Память SGRAM может работать на частотах 66 МГц и выше. По сравнению с DRAM, быстродействие SGRAM возросло более чем в четыре раза. Па­мять SDRAM предназначена для хранения изображений, т. е. для использо­вания в видеоадаптерах.

 

MDRAM

 

MDRAM (Multibank RAMМультибанковая динамическая память), разрабо­танная фирмой MoSys Inc. и предназначенная специально для использова­ния в системах обработки графики и видеоизображений. Главной особенно­стью памяти MDRAM является ее необычная организация. MDRAM представляет собой набор независимых банков обычной динамической па­мяти, емкость каждого из которых составляет 32 Кбайт.

Банком памяти называется совокупность микросхем памяти, суммарная раз­рядность которых равна разрядности шины данных. Например, для органи­зации памяти из 8-разрядных микросхем при 32-разрядной шине данных каждый банк должен содержать 4 микросхемы памяти одинаковой емкости. Обычно используется два банка памяти, чтобы реализовать режим чередова­ния адресов и циклов регенерации.

В результате использования одно- или двухбанковой архитектуры память видеоадаптера может иметь только конкретный объем: 1, 2, 4, 8 или 16 Мбайт. В этом случае видеопамять используется неэффективно. Напри­мер, в режиме 1024x768 и 16,7 млн цветов кадровый буфер должен быть объемом 2,25 Мбайт; установить же придется 4 Мбайт видеопамяти; 1,75 Мбайт использоваться не будут.

Благодаря независимости банков памяти MDRAM стало возможно создавать микросхемы памяти различного номинала и, как следствие, исключить из­быточность объема, свойственную памяти других традиционных типов. В частности, фирмой MoSys выпускаются модули памяти емкостью 0,5, 0,75, 1, 1,125 и 1,25 Мбайт. Кроме того, MDRAM можно организовать таким об­разом, что обращение к каждому банку будет независимым. А это путь к несомненному повышению производительности видеоадаптера в целом по сравнению с моделями, использующими VRAM или WRAM. Память MDRAM применяется пока только в видеоадаптерах фирмы Tseng Labs (ЕТ6000, ЕТ6100).

 

Двухпортовая видеопамять

 

В отличие от однопортовой видеопамяти, ограничивающей быстродействие видеоадаптера, использование двухпортовой видеопамяти позволяет осуще­ствлять одновременное выполнение операций чтения и записи данных, т. е. к ней одновременно могут обращаться два устройства (например, графиче­ский процессор и RAMDAC). Двухпортовая видеопамять, хотя и стоит до­роже однопортовой, но обеспечивает значительное ускорение работы видео­адаптера, особенно в режимах с высокими разрешением и глубиной цвета. В настоящее время существуют две разновидности двухпортовой памяти — VRAM и WRAM.

 

VRAM

 

VRAM (Video RAM) — это динамическая память с двумя портами, через ко­торые могут одновременно выполняться операции чтения и записи. Для ра­боты с такой памятью на плате видеоадаптера устанавливается специальный контроллер. Как следует из ее названия, VRAM была разработана исключи­тельно для видеосистемы PC. Преимущества VRAM особенно заметны при работе в режимах с высоким разрешением (1280x1024 и выше) и 24-битным представлением цвета. Поэтому элементы памяти этого типа используются в основном в профессиональных графических системах, где важны их харак­теристики, отвечающие самым высоким требованиям, а стоимость уже не является серьезным ограничением.

 

WRAM

 

Архитектура WRAM (Window RAM) очень похожа на архитектуру VRAM, но стоимость изготовления WRAM ниже. WRAM может работать на частоте до 50 МГц, благодаря чему быстродействие повышается на 50% по сравнению с VRAM.

Технология изготовления и схемотехника памяти типа WRAM (рис. 15.10) ориентированы на конкретное применение в видеоадаптерах. В этой памяти имеется режим быстрой записи двухцветных блоков для ускорения пересыл­ки текста и закраски областей пикселными шаблонами {Dual-Color Block Write), а также реализована технология двойной буферизации FastBit. В со­ответствии с технологией FastBit для двух смежных кадров предусмотрены два кадровых буфера. Пока первый кадр отображает­ся (считывается в RAMDAC), CPU формирует сле­дующий. В итоге обеспечивается быстрая смена кад­ров, что особенно важно при обработке видео и работе с трехмерной графикой.

Рис. 15.10. Микросхема памяти WRAM

 

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

 

Перспективные типы видеопамяти Direct RDRAM

 

Direct RDRAM (Direct Rambus DRAM) — динамическая память с прямым дос­тупом производства американской фирмы Rambus. Эта память считается сего­дня одной из самых быстродействующих. В настоящее время память этого типа выпускают несколько компаний, в том числе NEC, Fujitsu и Toshiba.

В микросхемах Direct RDRAM сохранились старые принципы чтения/за­писи данных. Изменения относятся лишь к организации доступа к ячейкам памяти. Технология Rambus предусматривает наличие 16-разрядной высоко­скоростной шины Rambus Channel, тактовая частота работы которой состав­ляет 400 МГц, а скорость передачи данных — 1,6 Гбайт/с.

 

3D RAM

 

3D RAMпамять для ускорителей трехмерной графики. Разработана фир­мой Mitsubishi для совместного использования со своим Chipset 3Dpro. Этот Chipset предназначен для работы с трехмерной графикой и основан на ис­пользовании передовой технологии REALImage фирмы Evans&Sutherland. Память 3D RAM является двухпортовой. Она имеет разветвленную архитек­туру, позволяющую осуществлять конвейерную (параллельную) обработку данных. Кроме того, предусмотрено наличие встроенного процессора и ско­ростных видеобуферов.

 

CDRAM

 

CDRAM (Cashed DRAM) — кэшированная динамическая память. Является также разработкой фирмы Mitsubishi. Представляет собой комбинацию ди­намической памяти и небольшого скоростного буфера (с временем доступа 10—15 не), выполненного на элементах статической памяти, традиционно используемой в качестве кэш-памяти. В частности, имеются модули памяти CDRAM, содержащие 4 или 16 Мбит динамической и 16 Кбит статической памяти. Подобно 3D RAM, элементы CDRAM предназначены для исполь­зования в ЗО-ускорителях (память для текстур). Кроме того, CDRAM ис­пользуется в качестве кэш-памяти в скоростных винчестерах с интерфейсом Fibre Channel. CDRAM имеет 128-разрядную внутреннюю шину данных и 16-разрядную внешнюю, благодаря чему данные считываются из памяти со скоростью около 800 Мбайт/с.

 

DDR SDRAM      

 

DDR SDRAM (Double Data Rate SDRAM) — память SDRAM с удвоенной ско­ростью передачи данных. Другое название памяти этого типа — SDRAM П. Разработка компании Samsung. Основное отличие этой памяти от SDRAM заключается в том, что чтение данных осуществляется как по фронту, так и по спаду тактового сигнала, за счет чего выполняется два обращения к па­мяти за время одного обращения к SDRAM.

 

ESDRAM

 

ESDRAM (Enhanced SDRAM) — улучшенная память SDRAM. Разработка фирмы Enhanced Memory Systems. Более высокого быстродействия элемен­тов памяти ESDRAM по сравнению с SDRAM (и даже DDR SDRAM) уда­лось добиться благодаря использованию более совершенной архитектуры и встроенной статической (SRAM) кэш-памяти (подобно тому, как это реали­зовано в элементах памяти CDRAM). Кроме того, за счет реализации алго­ритма "упреждающего чтения" из ячеек SDRAM в более быстрых регистров SRAM, по аналогии с технологией кэширования жестких дисков, значи­тельно повышена скорость считывания информации.

В табл. 15.4 приведены основные характеристики наиболее распространен­ных типов видеопамяти. Пропускная способность указана для 64-разрядной шины данных.

 

Таблица 15.4. Основные характеристики видеопамяти различных типов

 

ЗD-акселераторы

 

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

Совокупность приложений и задач, в рамках которых реализуется эта схема построения трехмерного изображения на экране монитора PC, называется трехмерной графикой, или 3D (З-Dimentional — Трехмерный). Наиболее яр­кими примерами трехмерной графики служат многочисленные компьютер­ные игры, поражающие реалистичностью создаваемых образов (Quake II, Final Realty, Tomb Rider и многие другие). Другой пример 3D-моделирования — отображение на компьютере внешнего вида доисториче­ских животных, позволяющее настолько правдоподобно их "оживить", что создается полная иллюзия, что вы видите результат реальной видеосъемки, а не компьютерной анимации (например, документальный фильм "Прогулки с динозаврами").

Объем вычислений, необходимый для моделирования трехмерного объекта, очень велик. Если эти вычисления возложить на CPU, то производитель­ность системы упадет настолько, что о работе в реальном времени и гово­рить не придется. Чтобы обеспечить возможность видеть на экране проек­цию динамического трехмерного объекта, в состав PC включают устройство,

самостоятельно выполняющее основную часть расчетов трехмерной сцены.

Такое устройство принято называть ускорителем трехмерной графики или

ЗВ-акселератором.

Подчеркнем еще раз, что ЗЭ-акселератор необходим только в том случае,

когда объемное изображение синтезируется  компьютером, т. е. создается

программно.

 

Примечание       

 

Не следует путать ЗD-акселераторы с рассмотренными в главе 14 устройствами формирования трехмерных изображений (VR-шлемами, ЗD-очками и т. п.) — это совершенно разные устройства как по назначению, так и по принципу действия: первые обеспечивают синтез видеосигнала трехмерного изображения, а вто­рые — его отображение с учетом эффекта бинокулярного зрения. Конечно, в идеале они должны использоваться совместно, дополняя друг друга. Однако, поскольку стереоскопические устройства отображения не получили пока в нашей стране широкого распространения (в основном, из-за высокой цены), в подав­ляющем большинстве случаев пользователю приходится наблюдать результат работы ЗD-ускорителя в двумерном виде, т. е. на плоском экране монитора.

 

Первоначально ЗD-акселераторы размещались на платах (отдельно от видео­адаптера), устанавливаемых в слот шины ввода/вывода и соединяемых с ви­деоадаптером специальным кабелем типа Pass-Through. Отсюда и возник тер­мин "ЗD-акселератор" — самостоятельное устройство, используемое только для работы с трехмерной графикой. При работе в обычном режиме 3D-акселератор выступал в роли пассивного элемента, включенного между видео­адаптером и монитором. Таким, в частности, был ЗD-акселератор Voodoo производства фирмы 3Dfx, момент появления которого и считается началом эры 3D. Однако по мере увеличения степени интеграции микросхем ЗD-акселераторы стали размещать непосредственно на карте видеоадаптера. Это позволило не только снизить стоимость видеосистемы, но и устранить необхо­димость в сквозном кабеле, использование которого порождало массу проблем.

Все современные видеоадаптеры содержат один мощный графический про­цессор, в состав которого, помимо ускорителя традиционной 20-графики, входит ЗD-акселератор. Поэтому в настоящее время термин "ЗD-акселератор" практически утратил свой первоначальный смысл: сегодня он означает не специализированную плату, а универсальный видеоадаптер, в состав которого входит ускоритель как двумерной, так и трехмерной графики.

 

Примечание  

    

Мы будем употреблять термин "ЗD-акселератор" в обоих смыслах, заостряя внимание на его конструкции лишь там, где это необходимо.

 

Практически все ЗD-акселераторы для PC, имеющиеся на рынке, в основ­ном ориентированы на ускорение трехмерной графики в игровых приложе­ниях, поэтому их условно называют игровыми ЗD-акселераторами. Кроме них существуют профессиональные графические ускорители, предназначенные для систем автоматизированного проектирования, моделирования и т. п.

 

Синтез трехмерного изображения. ЗD-конвейер

 

Основная цель синтеза ЗD-изображения — аналитический расчет визуальных эффектов, создающих ощущение объемности изображения и, соответственно, иллюзию его реальности. Эти эффекты относятся к группе вторичных факто­ров, определяющих способность человека к объемному восприятию (первич­ным фактором является стереозрение). В основе вторичных факторов лежит способность человека подсознательно анализировать такие особенности изо­бражения, которые обусловлены пространственным положением наблюдае­мых объектов и их частей. К этим факторам относятся:

 

□  оценка расстояния до предмета на основе информации о его размерах (чем меньше объект — тем он дальше);                          

□ оценка порядка наложения предметов друг на друга (кто выше — тот ближе);

□  определение глубины пространства за счет использования эффекта пер­спективы — визуального сближения параллельных линий, уходящих вдаль;

□  анализ световых эффектов на предмете (теней, бликов и т. п.).

 

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

Чтобы корректно рассчитать все эти эффекты, процесс синтеза трехмерного изображения объекта (точнее, его двумерной проекции) строится по опреде­ленной схеме, называемой ЗD-конвейером. В самом общем виде можно вы­делить основные этапы ЗD-конвейера:

 

1.   Построение геометрической модели поверхности объекта путем  задания трехмерных координат опорных (ключевых) точек, а также уравнений со­единяющих их линий. В результате этого возникает так называемая кар­касная модель объекта (wireframe).  На рис. 15.11  изображена каркасная модель тора, заданного координатами центра О (х, у, z), внутренним ра­диусом R1 и радиусом сечения R2.

2.   Разбиение поверхности полученного объекта на элементарные -плоские эле­менты — прямоугольники или треугольники. Этот этап называется также тесселяцией (Tesselationили   триангуляцией.   В  результате  поверхность объекта, обычно имеющая искривленную (овальную) форму, становится "граненой", т. е. представляет собой совокупность плоских многоуголь­ников (треугольников или четырехугольников). Чем больше таких граней и чем меньше они по размеру, тем точнее воспроизводится поверхность объекта (рис. 15.12).

 

Рис. 15.11. Каркасная модель объекта

 

 

 Рис. 15.12. Тесселяция объекта при помощи 420 (слева) и 2668 (справа) треугольников

 

3.   Трансформация {Transformation). На этом этапе моделируется движение объ­екта: его перемещение, вращение и изменение размеров (формы). Она сво­дится к стандартному преобразованию координат вершин граней (вертек­сов) и реализуется путем выполнения множества различных операций мат­ричной (линейной) алгебры и тригонометрических функций (рис. 15.13).

4.   Расчет освещенности {Lighting) и затенения {Shading) объекта. На данном этапе рассчитывается освещенность каждого элементарного треугольника, принимая во внимание его удаленность от источника света и угол падения светового луча (вот для чего элемент поверхности объекта должен быть плоским). Это позволяет имитировать реальную освещенность объекта, подчеркивающую его объемность. Однако, если освещенность всех точек каждого треугольника одинакова, то поверхность объекта будет выглядеть состоящей из множества маленьких плоских граней (рис. 15.14). Чтобы устранить этот дефект, используют различные методы интерполяции зна­чений освещенности, позволяющие плавно изменять освещенность каждой грани и скрыть резкие переходы между гранями. Эти приемы принято на­зывать методами затенения. Наиболее распространенными из них являют­ся метод Typo (Gouraud Shading) и метод Фонга {Phong Shading).

 

Рис. 15.13. Трансформация формы объекта путем изгиба и скручивания

 

Рис. 15.14. Расчет освещенности без использования алгоритмов интерполяции

 

5.   Проецирование полученного трехмерного объекта на плоскость экрана. На данном этапе происходит первое, предварительное преобразование трех­мерного объекта в совокупность двумерных, однако информация о рас­стоянии каждой из вершин элементарного треугольника до плоскости проектирования сохраняется. Это позволяет на последующих этапах кор­ректно определить, какие части объекта окажутся видимыми, а какие — нет. Совокупность данных о глубине каждой из вершин, или значения ее третьей координаты Z называют z-буфером. Использование z-буфера — одно из главных отличий работы с трехмерной графикой от работы с двумерной.

6.   Обработка {настройка) данных о вершинах элементарных треугольников, полученных на предыдущих этапах (Triangle Setup). На этом этапе выпол­няется преобразование формы представления координат вершин: из чи­сел с плавающей точкой (вещественных чисел) формируются целые чис­ла. Кроме того, производится сортировка вершин, отбрасывание задних граней (culling) и ряд других действий.

7.   Удаление скрытых поверхностей —  исключение  из  проецирования тех элементов поверхности  объекта,  которые оказываются  невидимыми с точки наблюдения. Этот этап называется также HSR (Hidden Surface Re­moval). Строго говоря, процесс удаления скрытых поверхностей выполня­ется  последовательно на нескольких этапах:  на предыдущем (Triangle Setup), когда обрабатываются векторные изображения, а также на после­дующих, на которых с помощью алгоритмов z-буферизации или z-сортировки обрабатываются растровые изображения.

8.   Закраска элементарных треугольников, или текстурирование, выполняется путем наложения текстур (Texture mapping) с учетом данных, полученных на    предыдущих этапах (рис. 15.15).   Текстура (Texture) — это элемент обшивки объекта, т. е. изображение участка его поверхности. Оно хра­нится в виде квадратной растровой картинки, состоящей из текселов (TexelTEXture ELement — Элемент текстуры). После наложения тек­стур (рис. 15.15, слева) каркасная модель (см. рис. 15.12) как бы "обрас­тает кожей" и становится похожа на реальный объект.

Рис. 15.15. Текстура (слева) и результат ее наложения на каркасную модель (справа)

 

Наложение текстур — это первый этап конвейера, выполняемый с растровой графикой. В результате каждый треугольник, задававшийся только коорди­натами вершин, заменяется частью текстуры. При этом значение каждого пиксела двумерного изображения вычисляется по значению соответствую­щего тексела текстуры (одному или нескольким). Соответствие между пик­селами и текселами обеспечивается благодаря результатам 5-й стадии 3D-конвейера, т. е. проецированию. Текстурирование — довольно трудоемкий процесс, поскольку обработке подвергается растровая графика. При моди­фикации растрового изображения возникают многочисленные дефекты, по­этому на данном этапе используются разнообразные приемы коррекции изображения: применение текстур с различным разрешением IP-mapping), коррекция перспективы, фильтрация и другие действия.

9. Моделирование эффектов прозрачности и полупрозрачности. Здесь на ос­нове информации о взаимной прозрачности объектов и среды выполня­ется коррекция цвета пикселов — так называемое альфа-смешение {alpha-blending) и затуманивание (fogging).

10.   Коррекция дефектов картинки, вызванных зазубренностью линий на гра­ницах объектов, — так называемый антиалиасинг {anti-aliasing).

11.  Интерполяция недостающих цветов — дизеринг (dithering) — используется в том случае, когда в текущем видеорежиме ЗD-акселератора для коди­рования цвета пиксела используется менее 24 бит (например, в режим High Color при   16-битном  цвете).  Это  приводит  к  незначительному ухудшению разрешения (резкости), но позволяет эффективно имитиро­вать цвета, отсутствующие в палитре.

12.   Окончательное формирование кадрового буфера (frame buffer) — области памяти ЗD-акселератора, в которую помещается спроецированное двумер­ное изображение. Кадровый буфер используется для формирования вы­ходного, аналогового видеосигнала ЗD-ускорителя точно так же, как это делается в обычном видеоадаптере VGA (в совмещенных 2D/3D-KapTax под кадровый буфер отводится часть видеопамяти). Для ускорения про­цесса создания изображения используется механизм двойной буфериза­ции, при котором выделяется память одновременно для двух смежных кадров: построение следующего кадра начинается еще до того, как за­кончится отображение (передача в RAMDAC) предыдущего. В результа­те удается избежать ненужного "простоя" акселератора и обеспечить бо­лее плавную смену кадров.

13.  Пост-обработка (Post-processing). Используется в том случае, когда тре­буется реализовать какие-либо двумерные эффекты над подготовленным кадром как единым целым.

Этапы 1—6 образуют так называемую геометрическую стадию ЗD-конвейера. На этой стадии выполняются интенсивные тригонометрические вычисления (в большинстве случаев центральным процессором PC, т. к. он содержит математический сопроцессор с аппаратной поддержкой необходимых функций: вычисление значений тригонометрических функций, обработка чисел с пла­вающей точкой и др.). Однако в Chipset новейших моделей игровых 3D-акселераторов (например, nVidia GeForce 256, ATI Radeon 256, S3 Savage 2000) уже входит процессор, обеспечивающий аппаратное ускорение выполнения операций геометрической стадии ЗО-конвейера. По всей видимости, в бли­жайшее время его наличие станет стандартом, поскольку уже наметилась тен­денция сближения характеристик игровых и профессиональных ускорителей.

Этапы 7—13 образуют стадию прорисовки объекта, или стадию рендеринга {RenderingИзображение, рисование, визуализация). На этой стадии все действия выполняются уже с растровыми объектами, состоящими из отдель­ных, дискретных элементов — пикселов и текселов.

 

Примечание

 

Иногда термин "рендеринг" употребляют для обозначения всего ЗD-конвейера, а этапы 7—13 называют "растеризацией", подчеркивая тем самым отличие данной стадии конвейера от предыдущей, на которой все операции выполня­лись с векторной графикой. Мы будем придерживаться термина "рендеринг", понимая под этим только этапы 7—13.

 

Стадия рендеринга является наиболее сложной, многоэтапной и трудоем­кой. Выполняемые операции не характерны для центрального процессора (как на геометрической стадии), поэтому именно на этом этапе конвейера необходимо аппаратное ускорение. Большинство современных 3D-ускорителей как раз и предназначены для рендеринга на аппаратном уровне и различаются лишь количеством реализуемых функций.

 

Функции ЗD-акселераторов

 

Для ускорения выполнения этапов ЗD-конвейера ускоритель трехмерной графики должен обладать определенным набором функций, т. е. аппаратно, без участия центрального процессора, производить операции, необходимые для построения ЗD-изображения. Набор этих функций является важнейшей характеристикой ЗD-акселератора, которую нужно учитывать при его выбо­ре. Кратко рассмотрим основные ЗD-функции игровых ускорителей трех­мерной графики.

 

Затенение

 

Для создания ощущения объемности объекта необходимо корректно рассчи­тать освещенность его поверхности. Эта задача решается в процессе затене­ния. Расчет освещенности "точек каждой грани выполняется на основании закона освещенности, согласно которому освещенность точки поверхности прямо пропорциональна силе света и косинусу угла а между направлением паде­ния света и нормалью к поверхности, но обратно пропорциональна квадрату расстояния до источника света.

Освещенность объекта легко рассчитать в том случае, когда он состоит из плоских граней: нормаль к грани имеет постоянную ориентацию, и освещен­ность всех точек грани будет одинакова. Такое затенение называют простым или плоским (Flat Shading). Это самый простой и быстрый метод, однако при его использовании подчеркивается дискретность разбиения (тесселяции), т. е. объект выглядит угловатым (рис. 15.16, слева). Для устранения этого недостат­ка используется метод Гуро, с помощью которого можно придать поверхности объекта гладкую, овальную форму (рис. 15.16, справа).

Рис. 15.16. Плоское затенение (слева) и затенение Гуро (справа)

 

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

В игровых 3D-ускорителях затенение Гуро является наиболее распростра­ненным приемом, позволяющим быстро и легко убрать дефекты тесселяции. Однако по этому методу нельзя корректно рассчитать освещенность грани при близком расположении источника света, а по методу Фонга — можно. Данный метод учитывает изменение угла падения света для различных точек грани (в идеале — для всех точек, как минимум — для вершин грани). Строгая реализация затенения Фонга требует расчета угла падения света для каждой точки грани, что не позволяет его реализовать в реальном масштабе времени. Для ускорения расчетов затенение Фонга применяется с использо­ванием так называемых карт затенения, подготовленных заранее.

 

Выделение глубины

 

Простым, но эффективным способом создания иллюзии объемности объек­та путем изменения освещенности является прием, называемый выделение глубины (Depth Cueing). Его суть очень проста: по мере увеличения значения координаты z освещенность пиксела убывает (рис. 15.17).

 

 

Рис. 15.17. Выделение глубины объекта

 

Удаление скрытых поверхностей

 

При реализации проецирования трехмерного объекта на двумерную плос­кость экрана необходимо корректно определить, какие части, объекта будут видимыми, а какие — нет. Это, во-первых, позволит избежать ошибок при построении изображения и, во-вторых, значительно уменьшить количество граней, которые необходимо текстурировать. Этот процесс называется HSR {Hidden Surface Removal — Удаление скрытых поверхностей). Он носит ком­плексный характер и решается последовательно, на различных этапах 3D-конвейера. В частности, можно выделить несколько этапов в процессе HSR.

1.   Отсечение частей изображения, не попадающих в объем отсечения {clip volume). Объем отсечения представляет собой параллелепипед, задающий границы трехмерной сцены.

2.   Отбрасывание задних, невидимых граней {culling).

3.   z-сортировка.

4.   z-буферизация.

 

Два первых этапа выполняются на геометрической стадии ЗD-конвейера, а два последних — на стадии рендеринга.

Суть первого этапа очевидна — все, что оказывается за пределами объема отсечения, исключается из дальнейшей обработки. Эта процедура реализу­ется всегда.

Отбрасывание задних граней выполняется после проведения тесселяции. Поскольку треугольники ориентированы в пространстве, можно легко опре­делить ориентацию нормали к каждой грани. Если нормаль направлена на наблюдателя, то грань видима, в противном случае она исключается из дальнейшей обработки. За счет отбрасывания задних граней уменьшается общий объем операций по рендерингу примерно в два раза.

Однако может возникнуть ситуация, когда две грани ориентированы на на­блюдателя, но при проецировании они перекрываются. Какую же из них следует текстурировать?

Для ответа на этот вопрос анализируется третья координата (z) каждого элемента поверхности объекта, описывающая его удаление "вглубь" экрана.

Область памяти, отводимая для хранения этих данных для всех точек по­верхности, называется z-буфером. Разрядность z-буфера — важный параметр 3D-акселератора, определяющий число возможных градаций глубины трех­мерной сцены. Современные модели ЗD-акселераторов имеют 24- и 32-раз­рядный z-буфер.

Для удаления невидимых участков могут использоваться 2 метода: z-сортировка и z-буферизация.

Z-сортировка (z-sorting) — наиболее простой метод, при котором целена­правленное удаление скрытых поверхностей как таковое специально не производится. Программа выполняет рендеринг всех элементов трехмерной сцены, но в порядке убывания координаты z. При этом происходит их на­ложение, причем более близкий к зрителю элемент сцены прорисовывается поверх более удаленного. Естественно, что видимым оказывается последний из элементов, т. е. ближний. При z-сортировке не требуется хранить (запоминать) координаты z, (z-буфер не используется), однако нерацио­нально загружается CPU: прорисовывать приходится весь объект, независи­мо от видимости его элементов. Кроме того, при прорисовке близко распо­ложенных или пересекающихся объектов данный метод часто дает ошибочный результат (рис. 15.18, слева)

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

Рис. 15.18. Удаление скрытых поверхностей методом z-сортировки (слева) и методом z-буферизации (справа)

 

Оптимизация наложения текстур

 

Наложение текстур — наиболее трудоемкая и сложная стадия ЗD-конвейера, которая сопровождается появлением многочисленных дефектов изображе­ния. Именно на этом этапе реализуется большая часть разнообразного арсе­нала аппаратных средств ЗD-акселератора, используемого для коррекции изображения.

Для создания реалистичной картины при рендеринге близко расположен­ных и удаленных частей сцены необходимо использовать различное разре­шение. Большинство поклонников первых трехмерных игр хорошо помнят характерный недостаток Wolf 3D и DOOM — гладкая на расстоянии стена или дверь при приближении быстро искажается за счет эффекта пикселизации, превращаясь в набор цветных квадратов. Причина проста: в этих играх для рендеринга удаленных и близких поверхностей используются текстуры с одинаковым (низким) разрешением.

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

 

MIP –текстурирование

 

MIP-текстурирование, или мипмэппинг (MIP-mapping), применяется для устра­нения пикселизации при приближении к ЗD-объекту. Суть М1Р-текстури-рования состоит в том, что в памяти акселератора хранятся несколько копий одной и той же текстуры, но с различным разрешением LOD (Level Of Detali-zation — Уровень детализации). Каждая последующая копия текстуры содер­жит в 4 раза больше пискелов, чем предыдущая. Совокупность всех копий одной и той же текстуры называют MIP-каскадом (рис. 15.19).

Рис. 15.19. MIP-каскад

 

При рендеринге ближних к наблюдателю поверхностей используются более крупные текстуры, а при прорисовке дальних — более мелкие. Это значи­тельно ослабляет эффект пикселизации. Название этой технологии образо­вано аббревиатурой MIP {Multum In Parvo — Много в одном), что отражает основную идею описанных выше действий. Очевидный недостаток данного метода — резкое увеличение памяти акселератора, необходимой для хране­ния текстур. Для того чтобы хранить текстуры не в локальной памяти 3D-акселератора, а в RAM PC и при необходимости быстро их подгружать, ис­пользуется локальная шина AGP с высокой пропускной способностью.

Однако применение технологии MIP-mapping само по себе не решает всех проблем, т. к. разрешение текстур меняется дискретно, вызывая искажения. В частности, возникает целый ряд специфических дефектов:

 

□ появление бэндинга (полос) MIP-текстурирования {Banding Of MIP-mapping) — хорошо различимых границ между текстурами с разным раз­решением;

□  возникновение "шума текстуры" — при движении объекта на его поверх­ности образуется изменяющийся рисунок;

□  размывание мелких деталей та удаленных текстурах и муара (инородного рисунка) на изображении текстуры;

□  нарушение перспективы на рисунке текстуры;

□ нестыковка текстур на краях;

□  "рваные", угловатые края объектов, особенно заметные на наклонных ли­ниях (этот дефект обычно называется алиасингом — aliasing);

□ неправильное отображение глубины отдельных элементов рисунка, назы­ваемое z-алиасингом (z-aliasing).

 

Для устранения этих дефектов используется фильтрация, которая заключает­ся в интерполяции значения тексела по значениям соседних.

 

 

 

Фильтрация

 

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

Линейную (Linear filtering, LF) — для интерполяции тексела используется значение тексела в текстуре ближайшего уровня (LOD).

□  Билинейную (Bi-linear filtering, BLF) — каждый тексел вычисляется как взвешенная сумма четырех соседних пикселов (слева и справа, а также сверху и снизу). Это наиболее распространенный метод, однако он не устраняет полос MIP-текстурирования и приводит к небольшой "размытости" изо­бражения (рис. 15.20).

□   Трилинейную (Tri-linearfiltering, TLF) — каждый тексел текстуры вычисля­ется как усредненный результат билинейной фильтрации по двум сосед­ним уровням детализации (используются две текстуры). Это наиболее ак­куратный    из   используемых   методов,    при    котором    полосы    MIP-текстурирования не образуются.

 

Рис. 15.20. Пример использования билинейной фильтрации: а — билинейная фильтрация выключена; б — билинейная фильтрация включена

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

Рис. 15.21. Пример реализа­ции трилинейной (слева) и анизотропной (справа) фильтрации

 

Примечание       

 

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

 

Мультитекстурирование

 

Важным преимуществом ЗD-акселератора является его способность ускоре­ния процесса наложения текстур. Данной цели можно достичь путем ис­пользования технологии мулыпитекстурирования. Как правило, итоговое значение каждого пиксела кадрового буфера становится известным только после наложения на него нескольких текстур (за счет пересечения и нало­жения объектов). Для этого текстурирование необходимо выполнять не­сколько раз (в несколько этапов). Чтобы решить все задачи за один этап, в архитектуре ЗD-акселератора используется не один, а два блока обработки текстур, работающих параллельно. Наложив на грань одну текстуру, первый блок передает результат работы второму блоку, который накладывает на нее другую текстуру. Первый же блок в это время уже занят обработкой сле­дующей грани и т. д. Другими словами, тектурирование выполняется кон­вейерным методом (рис. 15.22). ,

Рис. 15.22. Механизм мультитекстурирования

 

Как и в случае трилинейной фильтрации, аппаратная поддержка мультитек­стурирования требует наличия в архитектуре ЗD-акселератора двух парал­лельно работающих блоков обработки текстур.

 

Текстурирование с коррекцией перспективы

 

Еще одной важной задачей при наложении текстур является коррекция пер­спективы. Так как различные грани, образующие поверхность объекта, на­клонены под разными углами к линии зрения, наложение текстуры требует выполнения поворота и скоса растра исходной квадратной текстуры. При этом возникают характерные искажения, нарушающие ориентацию рисунка текстура на поверхности объекта и приводящие к искажению зрительной перспективы (рис. 15.23). Для коррекции этих искажений акселератор дол­жен аппаратно выполнять операцию Perspective Corrected Texture Mapping (наложение текстуры с коррекцией перспективы).

Рис. 15.23. Пример текстурирования с коррекцией перспективы (слева) и без, нее (справа)

 

Моделирование рельефа при наложении текстур

 

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

Оказывается, эту задачу можно решить на этапе наложения текстур, изме­няя соответствующим образом их рисунок. Эта технология получила назва­ние рельефное текстурирование {bump-mapping). Согласно определению авто­ра данной технологии, Джима Блинна, рельефное текстурирование — это метод получения визуальных выпуклостей и вогнутостей на поверхности объекта, находящегося в трехмерном пространстве, без изменения геометри­ческой формы самого объекта.

Основная идея рельефного текстурирования очевидна — наличие неровно­стей на поверхности объекта приводит к образованию участков с разной ос­вещенностью. Вопрос только в том, каким образом задать правило, по кото­рому будет изменяться освещенность различных участков текстуры. Су­ществует несколько разновидностей рельефного текстурирования:

□ текстурирование методом вдавливания (чеканки) — Embossing Bump Map­ping;

□ текстурирование с использованием карт окружающей среды Environ­ment Map Bump Mapping;

□ текстурирование    с    применением    программно-изменяемых   рельефных карт — Procedural Texturing.

 

В результате технология рельефного текстурирования напоминает рассмот­ренные выше методы затенения.

Наиболее простым является первый метод, который реализован в подав­ляющем большинстве игровых ЗD-акселераторов.

 

Управление прозрачностью (цветовой насыщенностью) текстур

 

Важную роль для правильного построения трехмерной сцены играет управ­ление оттенками цветов. Это необходимо при отображении движущихся объектов (например, при удалении) и, особенно, при их наложении. Техни­ка управления оттенками цветов получила название альфа-смешения (Alpha Pixel Blending — Смешение цветов пикселов с учетом коэффициента а). При ее использовании цвет каждого из двух пикселов, участвующих в наложе­нии, определяется не тремя, как обычно, а четырьмя компонентами: R, G, В и а, где а — весовой коэффициент, учитывающий степень прозрачности объ­екта (Object Transparency). Значению а = 1 соответствует прозрачный пик­сел, значению а = 0 — непрозрачный. При таком способе задания цвета по­является возможность корректно управлять процессом смешения цветов при наложении друг на друга полупрозрачных объектов (рис. 15.24).

Рис. 15.24. Пример использования α-смешения полупрозрачных (слева) и непрозрачных (справа) объектов

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

Рис. 15.25. Пример использования затуманивания

 

В зависимости от вида функции a (z) различают несколько типов затумани­вания и правил выбора значения а для конкретного пиксела. Если а линей­но уменьшается с увеличением расстояния до объекта (координаты z), то затуманивание называют линейным {Linear Fog). Если же значение а умень­шается по экспоненциальному закону, то говорят об экспоненциальном тума­не (Exponential Fog).

Туман бывает также полигонный (Vertex Fog) и табличный (Table Fog). При полигонном тумане рассчитывается одно значение коэффициента а для всей грани (полигона, от англ. polygon — многоугольник), заданной коор­динатами вершин (отсюда и название). При табличном тумане использует­ся специальная таблица, в соответствии с которой для каждого пиксела задается свое значение а. Табличный туман обеспечивает более реали­стичную картину, чем полигонный, но для реализации требует больших вычислительных затрат.                                            

 

Антиалиасинг

 

Наиболее объемная и важная часть работы по коррекции изображения объе­диняется понятием антиалиасинг (Anti-aliasing). Основным проявлением алиасинга являются лестничный эффект на наклонных линиях (краях), муар на изображении и т. п.

С учетом особенностей устраняемых дефектов антиалиасинг иногда называ­ют сглаживанием. Различают краевой (Edge Anti-aliasing) и полный (Full-screen Anti-aliasing, FSAA) антиалиасинг. В первых моделях игровых ускорителей использовался только краевой антиалиасинг, для современных 3D-акселераторов обязательным является полный антиалиасинг.

 

Краевой антиалиасинг

 

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

Рис. 15.26. Правило площадей, используемое при краевом антиалиасинге

 

Пример эффекта, получаемого за счет использования краевого антиалиасинга, прведен на рис. 15.27.

 

Рис. 15.27, Краевой антиалиасинг выключен (слева) и включен (справа)

 

Полный антиалиасинг

 

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

Рис. 15.28. Субпикселный антиалиасинг по методу мультисэмплинга с исполь­зованием маски

Благодаря реализации субпикселного антиалиасинга можно получать хоро­шие результаты на достаточно сложных изображениях, содержащих множе­ство резких переходов цвета и яркости (рис. 15.29).

Рис. 15.29. Пример использования полного (субпикселного) антиалиасинга (для срав­нения справа приведено изображение, не обработанное по методу антиалиасинга)

 

Интерполяция недостающих цветов

 

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

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

 

Примечание

 

Иногда в литературе можно встретить перевод термина Color Dithering как "растрирование" или "растеризация". Это неверно, поскольку растрирование и растеризация означают перевод векторных изображений в растровые.

 

Программное обеспечение для ЗD-акселераторов

 

Поскольку ЗD-акселератор имеет собственную систему команд, его эффек­тивное применение возможно лишь в том случае, когда прикладная про­грамма использует эти команды. Но, поскольку различных программ и мо­делей ЗD-акселераторов существует великое множество, возникает проблема совместимости: невозможно написать такую программу, которая бы одина­ково хорошо использовала низкоуровневые команды различных акселерато­ров. Очевидно, что и разработчики прикладного программного обеспечения и производители ЗD-акселераторов нуждаются в некоем "арбитре" или "переводчике", который выполнял бы следующие функции:

эффективное преобразование запросов прикладной программы в оптимизированную последовательность низкоуровневых команд ЗD-акселератора с учетом особенностей его аппаратного построения;

□ программную эмуляцию запрошенных функций, если в используемом акселераторе отсутствует их аппаратная поддержка;

стимулирование производителей акселераторов унифицировать исполь­зуемые системы команд с учетом требований производителей програм­много обеспечения.

 

Роль подобного "арбитра" возлагается на специальный пакет служебных про­грамм,   называемый   интерфейсом  прикладного программирования  (Application

Program Interface, API). API занимает промежуточное положение между высо­коуровневыми прикладными программами и низкоуровневыми командами акселератора, которые генерируются его драйвером. Использование API из­бавляет разработчика прикладной программы от необходимости работать с низкоуровневыми командами акселератора, облегчая процесс создания про­грамм и делая их более универсальными. При этом они по-прежнему в со­стоянии максимально реализовать потенциал аппаратно ускоряемых функций.

В настоящее время в 3D существует несколько API, области применения которых довольно четко разграничены.

□  DirectXразработанный   фирмой   Microsoft,   используемый   в  игровых приложениях,  работающих под управлением  операционной  системы Windows 95/98.

□  OpenGL, используемый в основном в профессиональных приложениях (CAD, системы трехмерного моделирования, симуляторы и т. п.), рабо­тающих под управлением операционной системы Windows NT (хотя есть и игры, ориентированные на OpenGL — легендарный Quake).

Родные (Native) API, создаваемые производителями ЗБ-акселераторов ис­ключительно для своих Chipset с целью наиболее эффективного исполь­зования их возможностей (например, API Glide, разработанный компа­нией 3Dfx для Chipset семейства Voodoo, API MeTAL, разработанный компанией S3 для Chipset семейства Savage).

 

DirectX

 

Подавляющее число игр ориентировано на DirectX, который включает в се­бя несколько узконаправленных API:

□  DirectDraw — обеспечивает использование аппаратных средств ускорения обычной, двумерной графики;

Direct3D — отвечает за работу графической системы в режиме создания трехмерных изображений;

Directlnput — обеспечивает аппаратно независимый ввод информации в PC через клавиатуру, мышь и джойстик;

□  DirectPlay — используется при совместной игре на нескольких компью­терах, объединенных в сеть или соединенных непосредственно, через па­раллельный или последовательный порты;

DirectSound — управляет использованием ресурсов звуковой системы PC.

 

DirectX является жестко регламентированным, закрытым стандартом, кото­рый не допускает изменений до выхода в свет своей очередной, новой вер­сии. Это, с одной стороны, ограничивает возможности разработчиков про­грамм и особенно производителей акселераторов, однако значительно облегчает пользователю настройку программного и аппаратного обеспече­ния для 3D.

Архитектура Direct3D основана на проверке функциональных возможностей установленного аппаратного обеспечения. Согласно этому принципу при­кладная программа сначала запрашивает Direct 3D-совместимой драйвер об аппаратно поддерживаемых данным акселератором ЗD-функциях, а затем, в зависимости от ответа, активизирует поддерживаемые функции. Очевидно, что такой вариант является наилучшим, т. к. избавляет от необходимости вникать в детали и производить ручную настройку.

 

OpenGL

 

В отличие от DirectX, API OpenGL построен на основе концепции откры­того стандарта, имеющего небольшой базовый набор функций и множество расширений, реализующих более сложные функции. Производитель Chipset (карты ЗD-акселератора) обязан создать BIOS и драйверы, выполняющие базовые функции OpenGL, но не обязан обеспечивать поддержку всех рас­ширений. Это порождает ряд проблем, связанных с написанием производи­телями драйверов для своих изделий, которые поставляются как в полном, так и в усеченном виде.

 

ICD

 

Полная версия OpenGL-совместимого драйвера носит название ICD (Installable Client DriverДрайвер приложения-клиента). Он обеспечивает максимальное быстродействие, т. к. содержит низкоуровневые коды, обес­печивающие поддержку не только базового набора функций, но и его рас­ширений. Естественно, что с учетом концепции OpenGL создание подоб­ного драйвера — исключительно сложный и трудоемкий процесс. Это, кстати, во многом объясняет более высокую стоимость профессиональных ЗD-акселераторов по сравнению с игровыми.

 

MCD

 

Усеченная версия OpenGL-совместимого драйвера называется MCD (Mini Client Driver). Он содержит оптимизированный код лишь для некоторых эта­пов ЗD-конвейера, поэтому акселератор под его управлением работает мед­леннее. Как правило, драйверы типа MCD поставляются с первыми версия­ми новых ускорителей, а полноценные ICD появляются позже.

 

Минипорт

 

Помимо ICD и MCD, существуют и специализированные OpenGL-совместимые драйверы, специально разработанные для работы с какой-либо одной программой (игрой). Такая ситуация возникает, например, при жела­нии поиграть в QuakeGL или Quake II на PC с Windows 95 и 3D-акселератором, не рассчитанным на использование OpenGL. Такой драйвер принято называть минипорт.

 

Раппер

 

Минипорт может работать так же, как ICD, путем использования собствен­ного, Native API для установленного в системе акселератора, или за счет перевода инструкций OpenGL в инструкции Direct3D. В последнем случае минипорт называют раппером (WrapperУстройство для оборачивания, за­вертывания, окутывания). Из драйверов всех типов раппер обеспечивает са­мую низкую скорость работы.

 

Game Engine

 

Существует еще одно родственное минипорту понятие — Game Engine, на­зываемый на компьютерном жаргоне "игровой движок". Фактически это драйвер, разработанный для конкретной ЗD-платы и ориентированный на достижение максимальной производительности за счет непосредственного использования низкоуровневых команд акселератора в обход API.

В целом API OpenGL ориентирован на корректность создаваемых изобра­жений, тогда как для DirectX важны скорость прорисовки и естественность изображения.

 

Программная настройка ЗD-акселератора

 

Хотя проблемы API в основном касаются производителей ЗD-акселераторов и разработчиков программного обеспечения, пользователь PC должен также иметь об этом общее представление, чтобы правильно настроить видеосис­тему и добиться от нее максимальной производительности при работе с трехмерной графикой. В частности, необходимо сделать следующее.

 

□  При выборе ЗD-платы четко представлять область ее будущего примене­ния — нет смысла приобретать дорогостоящий профессиональный уско­ритель, если предполагаете использовать его только в играх.

□  Установить в систему требуемый API (с учетом версии).

□  Проконтролировать настройку параметров драйвера и/или прикладной программы,  задействовав  необходимые  функции   ЗD-акселерации.   На­стройка драйвера монитора производится с помощью опций стандарт­ного диалогового окна (например, команды Параметры, Riva TNT диа­логового   окна  Свойства:   Экран).   На  рис. 15.30   в   качестве   примера показано диалоговое окно драйвера ЗD-акселератора Riva TNT.

 

Из рис. 15.30 видно, что с помощью опций этих окон можно управлять большинством рассмотренных функций аппаратного ускорения 3D-графики. Настройки, выполненные в этих окнах, будут использоваться по умолчанию. Кроме этих настроек, существуют настройки самой библиотеки DirectX, которые можно отредактировать при помощи программы DXDIAG.EXE (рис. 15.31).

 

Рис. 15.30. Диалоговые окна настройки опций ЗD-ускорения API DirectX (слева и OpenGL (справа) для ЗD-акселератора Riva TNT

Рис. 15.31. Диалоговое окно проверки и включения/выключения аппаратного ЗD-ускорения для API DirectX

Примечание    

  

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

 

Помимо настроек системного программного обеспечения, к которому отно­сятся драйверы и библиотеки API, необходимо настроить опции прикладной программы, использующей функции ЗD-ускорения (в качестве примера на рис. 15.32 приведен список опций ЗD-акселерации, применяемых в игре Microsoft Combat Flight Simulator).

Рис. 15.32. Диалоговое окно настройки опций ЗD-ускорения игры Microsoft Combat Flight Simulator

Используя тесты и субъективно оценивая качество изображения, подберите такой набор функций, при котором скорость работы и качество изображе­ния будут наилучшими. Если включение каких-либо функций значительно повышает производительность, значит они поддерживаются аппаратно. Если же, напротив, их включение приводит к замедлению работы, то акселерация отсутствует.

Конечно, при работе с программами, ориентированными на DirectX, вам, возможно, вообще не придется выполнять ни одну из перечисленных опе­раций — все будет сделано автоматически. Однако никогда не мешает знать, какие функции реализованы в ЗD-акселераторе, установленном на вашем PC, и как они выполняются, поэтому при возникновении любых проблем вы сможете осознанно искать их решение.

 

Устройство ЗD-акселератора

 

Несмотря на значительные различия в характеристиках и возможностях, все ЗD-акселераторы имеют несколько обязательных, базовых элементов, обеспе­чивающих аппаратное ускорение основных этапов ЗD-конвейера (рис. 15.33):

□ Геометрический процессор (Geometry Processor)

□  Механизм прорисовки (Rendering)

□  Видеопамять

□ Цифро-аналоговый преобразователь (RAMDAC)

□ Дополнительные устройства (в зависимости от набора дополнительных функций)

Рис. 15.33. Обобщенная структурная схема 3D-акселератора

 

Геометрический процессор отвечает за 2—6 этапы ЗD-конвейера. В боль­шинстве недорогих 3D-акселераторов геометрический процессор, предна­значенный для аппаратного ускорения этапов 2—6 геометрической стадии конвейера, отсутствует, и его функции выполняет CPU. В лучшем случае такой акселератор имеет только механизм установки (Setup Engine), выпол­няющий преобразование данных о вершинах граней, сортировку и отбрасы­вание задних граней (стадия Triangle Setup).

Процесс прорисовки (рендеринга, закраски) является наиболее существен­ным и может быть разбит на 2 ступени: обработка элементов текстур (Texel Engine) и обработка элементов итогового кадра (Pixel Engine). На каждой из этих ступеней происходит работа со своим участком локальной памяти, на­зываемым буфером. Кроме буферов кадра и текстур, обычно выделяется па­мять для г-буфера, необходимого для корректного удаления скрытых по­верхностей, а также для а-буфера, необходимого для эффективного выполнения альфа-смешения.

Этой структуре в общих чертах соответствует архитектура ЗD-акселератора на основе Chipset Voodoo Graphics производства фирмы 3Dfx Interactive. Ба­зовая, минимальная конфигурация данного Chipset включает 2 чипа, назы­ваемые PixelFX и TexelFX. Название первого чипа — FBI (Frame Buffer Inter-faceИнтерфейс кадрового буфера), а второго— TMU (Texture Mapping UnitБлок наложения текстур). Каждый чип работает со своим буфером памяти, размер которого может составлять до 4 Мбайт. Максимальная кон­фигурация платы — один чип FBI и три чипа TMU.

Для повышения производительности ЗD-акселераторы фирмы 3Dfx могут использоваться в паре. В этом случае реализуется режим SLI (Scan Lines In­terleave — Чередование обработки строк растра). В данном режиме один 3D-акселератор генерирует четные строки изображения, а второй — нечетные. За счет этого не только увеличивается скорость рендеринга, но и значитель­но повышается разрешение ЗD-изображения.

Размер кадрового буфера, по аналогии с видеопамятью обычного видеоадап­тера VGA, определяет максимально допустимые разрешение изображение и число оттенков цветов. В большинстве акселераторов для ускорения работы используется метод двойной буферизации: кадровый буфер разбивается на передний (Front buffer) и задний (Back buffer) буферы. Пока выполняется отображение (передача в RAMDAC) первого, "переднего" кадра, акселератор приступает к построению следующего кадра в заднем буфере. Благодаря этому обеспечивается более плавная и быстрая смена кадров.

 

Основные характеристики ЗD-акселераторов

 

Каковы же основные технические характеристики, определяющие потенци­альные возможности ЗD-акселератора и ожидаемый эффект от его исполь­зования?

Во-первых, для оценки ЗD-акселераторов используются стандартные харак­теристики видеоадаптеров, рассмотренные выше: разрядность, объем и про­пускная способность видеопамяти, тактовые частоты графического процес­сора (ядра), видеопамяти и RAMDAC, тип интерфейса с шиной ввода/вывода и т. п. Поскольку основной сферой применения рассматри­ваемых акселераторов являются трехмерные игры, очень важен и удобен ин­тегральный показатель производительности — обеспечиваемая частота сме­ны кадров (frame per second fps).

Во-вторых, для описания возможностей ЗD-акселераторов вводится целый ряд специфических показателей:

 

□  максимальная скорость закраски (Fill Rate), измеряемая числом пикселов в секунду;

□  максимальное   число   обрабатываемых   элементарных   многоугольников (треугольников) в секунду (Triangle Throughput);

□ набор аппаратно реализуемых (ускоряемых) ЗD-функций, а также качест­во (корректность) их реализации;

□  наличие расширенных режимов (например, SLI, MAXX, VSA);

□  перечень поддерживаемых API, а также степень поддержки (например, ICD или MCD для OpenGL).

Параметр Triangle Throughput часто называют пропускной способностью 3D-акселератора. Особенностью данного показателя является то, что при отсут­ствии в составе ЗD-акселератора геометрического процессора он описывает не только и даже не столько сам акселератор, сколько производительность центрального процессора, т. к. в этом случае геометрическая стадия 3D-конвейера реализуется программно (ее выполняет CPU). Чем выше скорость его работы, тем больше треугольников в секунду он сможет сгенерировать. Поэтому зависимость производительности ЗD-акселератора от быстродейст­вия CPU называют масштабируемостью.

Значимость показателя Triangle Throughput возрастает для тех плат, которые имеют аппаратно реализованный механизм установки (Setup Engine) или полноценный геометрический процессор (nVidia GeForce 2*6, ATI Radeon 256, S3 Savage 2000).

Помимо чисто аппаратных возможностей, имеет значение качество про­граммного обеспечения 3D-акселератора, т. е. корректность написания драйвера. Как уже неоднократно отмечалось, часто этот фактор является решающим для обеспечения устойчивой и эффективной работы 3D-акселератора.

Важная характеристика ускорителя — это и набор поддерживаемых API. В настоящее время обязательным требованием к ЗD-акселератору считается полноценная поддержка ускорителем, как минимум, двух API: DirectX и OpenGL (на уровне ICD).

 

Особенности ЗD-акселераторов фотореалистичной графики

 

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

 

□ высоким разрешением — до 2048x1536;

□ 32-битным цветом;

□  очень высокой степенью детализации, обусловленной использованием сложных   геометрических   моделей   и   текстур   больших   размеров   (до 2048x2048);

 

Изображение с такими характеристиками (рис. 15.34) настолько похоже на естественное, например, полученное при фотографировании, что возникло новое понятие — фотореалистичная графика.

Рис. 15.34. Пример фотореалистич­ного изображения

Для того чтобы достичь такого, результата, характеристики основных эле­ментов ЗD-акселератора должны быть радикально улучшены. В качестве примера ЗD-акселератора фотореалистичной графики рассмотрим структуру и основные параметры нового изделия канадской фирмы ATI Technolo­gies — видеоадаптера Radeon 256 (рис. 15.35), являющегося, помимо всего прочего, еще и мощным ЗD-акселератором.

Рис. 15.35. Структурная схема видеоадаптера ATI Radeon 256

 

Структура Radeon 256 имеет множество отличий от базовой структуры 3D-акселератора, наиболее существенными из которых являются следующие:

1.   Как и все современные изделия, Radeon 256 представляет собой не специализированный ЗD-акселератор, а мощный многофункциональный ви­деоадаптер,  у которого ускорение  ЗD-графики —  одна  из  множества функций, среди которых: аппаратное ускорение 2Б-графики, ввод/вывод видеосигнала, формирование цифрового видеосигнала для управления плоскопанельными ЖК-мониторами, декодирование цифровых видеопо­токов, сжатых по технологии MPEG-1/2 и др.

2.   Благодаря наличию специального геометрического процессора Charisma Engine обеспечивается аппаратное ускорение функций, выполняемых на геометрической стадии ЗD-конвейера: преобразование координат (при моделировании движения и вращения), расстановка-источников света и расчет освещенности вершин граней (вертексов), Позволяющая использо­вать до 8 источников света, отсечение невидимых граней, коррекция пер­спективы, преобразование формата представления данных о вершинах (замена чисел с плавающей точкой числами с фиксированной точкой), модификация граней в местах резкого изгиба поверхности (функция Ver­tex Skinning), интерполяция промежуточных кадров по ключевым кадрам (KeyFrame Interpolation), позволяющая быстро рассчитать анимационную картинку, основываясь только на начальном и конечном кадрах. Столь внушительный арсенал средств позволяет многократно повысить ско­рость выполнения геометрической стадии ЗD-конвейера — плата обраба­тывает до 30 млн треугольников в секунду (для сравнения ЗD-акселератор Voodoo Graphics — только 500 тыс.).

3.   Значительно увеличены объем и скорость работы видеопамяти; на карте видеоадаптера может быть установлено от 8 до 128 Мбайт быстродейст­вующей видеопамяти типа SDRAM/SGRAM или DDR SDRAM, рабо­тающей на частоте до 200 МГц.

4.   Увеличена разрядность шины памяти до 256.

5.   За счет использования новейшей 0,18-микрометровой технологии изго­товления микросхем тактовая частота графического 256-разрядного ядра, состоящего из двух 128-разрядных блоков, лежит в пределах от 200 до 400 МГц.

6.   Графическое ядро имеет ярко выраженную конвейерную архитектуру: два конвейера рендеринга, каждый из которых содержит по 3 блока (эта тех­нология получила название Pixel Tapestry). Благодаря этому производи­тельность конвейера рендеринга составляет 400 млн пикселов в секунду (у ЗD-акселератора Voodoo Graphics — только 50 млн).

7.   Широко используется кэш-память, ускоряющая построение изображе­ния: текстурная, пикселная и кэш-память вершин (вертексов).

8.  Аппаратная поддержка наиболее эффективных методов текстурирования: рельефное текстурирование, специальные методы наложения и сжатия текстур и др.

9.   Высокоскоростной интерфейс с шиной ввода/вывода (порт AGP, карта поддерживает режимы 4х, DiME, SBA Fast Writes).

Благодаря перечисленным особенностям платы Radeon 256 обеспечивает качественно более высокий, фотореалистический уровень моделирования ЗD-сцены, что позволяет отнести ее к новому поколению ЗD-акселераторов. К этой же группе относятся изделия GeForce 256 (NV10), GeForce 2 GTS (NV15) производства фирмы nVidia, Savage 2000 производства фирмы S3 и ряд других.

 

Chipset для ЗD-акселераторов

 

Несмотря на то, что эпоха 3D началась сравнительно недавно, современный рынок ЗВ-акселераторов различного класса испытывает невероятный бум. Появилось несколько лидеров в этой области, а количество производимых ими продуктов настолько возросло, что разобраться во всем многообразии предлагаемых акселераторов стало очень сложно. Если же учесть крайне аг­рессивную рекламу, которой сопровождается появление каждого нового из­делия, то сделать правильный выбор становится еще труднее.

Кроме того, большинство производителей использует одни и те же микро­схемы (Chipset). Поэтому рассмотрим только Chipset, на основе которого выполнены акселераторы, т. к. именно им определяются возможности пла­ты. Что же касается готовых плат, то их трудно не только описать, но и про­сто перечислить — настолько разнообразен их ассортимент.

 

3Dfx interactive

 

Как уже отмечалось, фирма 3Dfx Interactive выпустила первый по-настоящему удачный ЗD-акселератор — Chipset Voodoo Graphics. Успех 3Dfx не является случайным — прежде она специализировалась на производстве игровых приставок, профессиональных симуляторов и тренажеров. Главное внимание при разработке своих изделий фирма уделяет производительно­сти, поэтому ее главный лозунг: "60 кадров в секунду — любой ценой!". За последние несколько лет фирмой разработаны Chipset Voodoo2, Voodoo Rush, Voodoo Banshee, Voodoo3, недавно анонсированы новейшие модели: Voodoo4 и Voodoo5.

 

Voodoo Graphics

 

Voodoo Graphics является классическим вариантом ЗD-акселератора, выпол­ненного в виде отдельной платы с интерфейсом PCI. Помимо нее, в системе должен быть установлен обычный видеоадаптер. В настоящее время этот пионер 3D безнадежно устарел. Обеспечивая приемлемую скорость работы при разрешении 640x480, он не дает приемлемой частоты кадров при более высо­ких разрешениях. Поэтому на плате редко бывает больше 4 Мбайт видеопамя­ти для кадрового буфера. Основные характеристики Chipset Voodoo Graphics:

 

□  Тактовая частота — до 60 МГц (управляется программно).

□  Максимальная частота RAMDAC — 135 МГц.

□  Тип локальной памяти — EDO (время доступа 30-40 не).

□  Размер кадрового буфера — до 4 Мбайт (обычно 2 Мбайт).

□  Размер буфера текстур — до 8 Мбайт (обычно 2—4 Мбайт).

□  Максимальное разрешение:

•    800x600 с кадровым буфером объемом 4 Мбайт;

•    640x480 с кадровым буфером объемом 2 Мбайт;

•    1024x768 с кадровым буфером объемом 4 Мбайт в режиме SLI (только для платы Obsidian 100SB).

□ Глубина представления цвета — 16 бит (High Color).

□  Максимальное значение Fill Rate — 50 млн пикселов в секунду.

Максимальное значение Throughput — 500 тыс. треугольников в секунду.

□  Типичная производительность в игре Quake: 30—35 fps при разрешении 640x480 и CPU Pentium-166MMX.

Поддерживаемые API: DirectX, Glide (API разработки 3Dfx), частично -OpenGL.

□  Работает только в полноэкранном режиме.

Является специализированной платой, выполняющей только ЗD-функции, поэтому требует наличия обычного видеоадаптера с 2D-ускорителем.

Использует для соединения с видеоадаптером специальный кабель типа Pass-Through, ухудшающий качество изображения при высоких разрешениях.

 

Наиболее известными платами на основе данного Chipset являются: Dia­mond Monster 3D, 3D Canopus Pure3D, 3D Voodoo Biostar Venus, A-Trend Helios, Cardex Dragon 1000, miroM.EDIA miroHISCORE 3D, RealVision Flash3D, Skywell Magic 3D и др.

Проблемы с упомянутым кабелем типа Pass-Through, а также стремление создать интегрированную 2D/3D-oraTy привели к появлению Chipset Voo­doo Rush.

 

Voodoo Rush

 

Chipset Voodoo Rush объединяет в себе возможности 2D- и ЗD-акселерации, а также позволяет создавать трехмерное изображение в оконном режиме.

Обладая аналогичными с Voodoo Graphics характеристиками, Voodoo Rush совместим не со всеми играми и является, по общему признанию, далеко не самой удачной разработкой 3Dfx (в частности, архитектура Voodoo Rush не позволяет одновременно выполнять z-буферизацию и а-смешение, что в значительной степеней замедляет работу).

На основе Chipset Voodoo Rush выпускаются ЗО-акселераторы A-Trend He­lios Voodoo Rush, Biostar Venus 3D Rush, Hercules Stingray 128/3D, Jazz Adrenaline Rush 3D, RealVision Flash AT3D Rush и др.

 

Voodoo2

 

Chipset Voodoo2 явился принципиально новым продуктом, имеющим гораз­до лучшие характеристики, чем у его предшественников. Так же, как и Voo­doo Graphics, он является специализированным ЗD-акселератором с интер­фейсом PCI, построенным на новых чипах: одном Pixelfx2 и двух Texelfx2. Каждый из трех чипов имеет свой модуль памяти: 4 Мбайт для кадрового буфера и 2 или 4 Мбайт — для буфера текстур. В результате возможны две конфигурации памяти: 4+2x2=8 Мбайт или 4+2x4=12 Мбайт.

Наличие второго чипа и буфера памяти для обработки текстур обеспечило данному Chipset аппаратную поддержку мультитекстурирования и трили­нейной фильтрации. Новым явилась также аппаратная поддержка рельеф­ного текстурирования и краевого антиалиасинга. Другим важным улучшени­ем архитектуры Voodoo2 стало наличие аппаратно реализованного механизма преобразования данных о вершинах граней (Triangle Setup), бла­годаря чему значительно ускорилось выполнение операций стадии геомет­рической обработки, и показатель Triangle Throughput вырос по сравнению с Voodoo Graphics в 5 (!) раз. Как и Voodoo Graphics, Chipset Voodoo2 поддер­живает в 3D только 16-битный режим High Color.

В течение довольно длительного времени ЗD-акселераторы на основе Voo­doo2 были явными лидерами по производительности.

Основные отличия Voodoo2 от Voodoo Graphics заключаются в следующем:

 

□ Тактовая частота ядра — до 100 МГц (обычно 92—96 МГц).

□  Максимальное разрешение:

•    800x600 при использовании z-буферизации;

•    1024x768 без z-буферизации;

•    1024x768 с z-буферизацией при наличии второй платы и работе в ре­жиме SLI.

□ Максимальное значение Fill Rate — 90 или 180 млн пикселов в секунду (в зависимости от режима работы).

□  Максимальное значение Throughput — 2,5 млн треугольников в секунду.

□ Типичная производительность в игре Quake — 70 кадров/с при разреше­нии 640x480 и CPU Pentium-II 300 МГц.

 

Примерами ЗD-акселераторов на основе Chipset Voodoo2 являются Canopus Pure3D II, A-Trend Helios 3D Voodoo II, BiostarVenus 3D II, Creative 3D Blaster Voodoo2, Diamond Monster 3D II, STB BlackMagic 3D.

 

Voodoo Banshee

 

Потерпев неудачу с Voodoo Rush, компания 3Dfx, тем не менее, не отказа­лась от самой идеи сделать полнофункциональный 2DD-акселератор на одной плате. Взяв за основу ЗD-ядра элементы Chipset Voodoo2 и разработав с нуля 2D-акселератор, 3Dfx создала весьма удачный Chipset, объединивший в себе все лучшие черты предшественников. Его привлекательность по сравнению с другими изделиями 3Dfx состоит в том, что отпала необходи­мость в кабеле Pass-Through. К тому же данный Chipset явился более эконо­мичным решением, поскольку в нем реализованы все необходимые функ­ции: 2D- и ЗD-акселерация и обработка видео.

ЗD-ядро этого Chipset аналогично Voodoo2 за исключением того, что вместо двух чипов (TMU) Texelfx в Voodoo Banshee используется только один, что не позволяет аппаратно реализовать мультитекстурирование и трилинейную фильтрацию. Кроме того, Chipset Voodoo Banshee не поддерживает режим SLI.

Voodoo Banshee оснащен более современной и быстрой 128-разрядной памя­тью типа SGRAM или более дешевой SDRAM, работающей на частоте 100 МГц. Платы на основе Voodoo Banshee выпускаются в двух вариантах: с интерфейсами PCI/33 МГц и AGP/66 МГц (заявлена поддержка режима SBA, хотя при этом отсутствует режим 2х).

Примечание       

Поддержка AGP в изделиях 3Dfx носит в основном формальный характер, поскольку производительность платы на основе Voodoo Banshee мало зависит от типа интерфейса (сказывается изначальная ориентированность на более бы­струю локальную память и шину PCI).

 

Chipset Voodoo Banshee имеет интегрированный RAMDAC, тактовая частота которого составляет 250 МГц, что значительно выше, чем частота тактового сигнала у RAMDAC предыдущих Chipset данной фирмы.

 

Voodoo3

 

Выпустив Chipset Voodoo3, компания 3Dfx окончательно отказалась от вы­пуска специализированных ЗD-ускорителей и перешла к производству уни­версальных видеоадаптеров, содержащих 2D- и ЗD-ядро в одном чипе. По этой причине Chipset Voodoo3 во многом напоминает Voodoo Banshee, но превосходит его почти по всем показателям (из-за этого некоторые остро­словы именуют Chipset Voodoo3 не иначе как "Voodoo Banshee-2").

Чипсет Voodoo3 имеет три модификации: Voodoo3 2000, Voodoo3 3000 и Voodoo3 3500, различающиеся тактовыми частотами RAMDAC и ядра, а также набором дополнительных функций (поддержка TV-out, плоскопа­нельных мониторов и т. п.). Использование технологии 0,25 мкм позволило получить достаточно высокие тактовые частоты ядра — от 143 до 183 МГц. В качестве локальной используется память типа SDRAM или SGRAM объе­мом 4—16 Мбайт. Chipset имеет интерфейс AGP с поддержкой режима 2х, однако не позволяет обрабатывать текстуры в оперативной памяти (отсутствует поддержка режима DiME) — фирма 3Dfx вновь отличилась не­удачной реализацией интерфейса AGP. Отсутствие AGP-текстурирования в совокупности с небольшим объемом локальной памяти (не более 16 Мбайт) ограничило максимальный размер используемых текстур (не более 256x256).

Производители учли недостатки Voodoo Banshee и добавили в Voodoo3 вто­рой блок текстурирования, благодаря чему у него появилась аппаратная поддержка мультитекстурирования, трилинейной и анизотропной фильтра­ции. Кроме того, Voodoo3 поддерживает краевой и субпикселный антиалиасинг, затенение Гуро, коррекцию перспективы, оптимизированную обработ­ку смежных граней (triangle strips&fans), табличный туман, до 14 форматов текстур, включая сжатые текстуры. Однако данный Chipset сохранил харак­терный недостаток изделий производства компании 3Dfx: в ЗD-графике поддерживает только режим High Color, т. е. 16-битное кодирование цвета. Это частично компенсируется очень высоким разрешением, которое может обеспечить данный Chipset— до 2048x1536 при частоте кадров 75 Гц (частота RAMDAC составляет 300 или 350 МГц).

Чипсет Voodoo3 является, безусловно, неплохим изделием, особенно с точки зрения быстродействия, однако безоговорочным лидером, как в свое время Voodoo2, он не стал — Chipset семейства Riva TNT2 имеет аналогичные (и даже лучшие) показатели при значительно более низкой цене. Нельзя также не отметить еще одну характерную слабость Chipset 3Dfx — неэффективная работа под управлением OpenGL. Правда, этот недостаток частично ком­пенсируется хорошей поддержкой команд 3Dnow!, который используется процессорами AMD K6-II и выше.

 

Intel

 

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

 

i740

 

Chipset i740 является 64-разрядным совмещенным 2D- и ЗD-акселератором, реализующим несколько дополнительных функций: TV-выход, возможность ввода/вывода видеоданных, DVD-декодер. Он оптимизирован для компьютера на основе Pentium II с шиной AGP, хотя имеются и PCI-версии видео­адаптеров на основе i740.

При средней производительности (на уровне Voodoo Graphics) и рекордно низкой для ЗD-акселераторов цене i740 обеспечивает очень высокое качест­во изображения, поэтому некоторое время был лидером среди ЗD-изделий для домашнего компьютера (в настоящее время его производительность уже нельзя считать приемлемой).

Поскольку фирма Intel является автором стандарта AGP, то его реализация в i740 не вызывает нареканий: поддерживаются режимы 2х, SBA, и DiME. Chipset поддерживает от 2 до 8 Мбайт памяти типа SDRAM или SGRAM, работающей на частоте 100 МГц.

i740 имеет встроенный RAMDAC, работающий на частоте 205 МГц при ис­пользовании 256 цветов и с частотой 220 МГц — в режимах High Color и True Color.                                                          

Кроме стандартных ЗD-функций, Chipset поддерживает ряд дополнительных возможностей по обработке видео в формате MPEG-2, т. е. считываемого с DVD-диска, а также по вводу/выводу видеосигналов.

На основе Chipset 1740 выпускаются следующие видеоадаптеры: ReaOD StarFighter SFA3** (AGP) и SFP3*** (PCI), A-Trend Speedy 3DI0740, A-open PA740, Aristo ART4740-G, ASUS 3DexPlorer V2740, Biostar Orion 740, Cardex Cardexpert 1740, Diamond Stealth II G460, ChainTech Desperado, Intel Express 3D, STB Lightspeed 740, Tekram AGP-6000 3D Fire.

 

NVidia

 

Компания nVidia получила широкую известность, изготовив Chipset Riva 128, представляющий собой совмещенный 2D- и ЗD-акселератор. В отличие от всех рассмотренных выше 64-разрядных Chipset, Riva 128 и ее модифика­ции имеют 128-битную шину локальной памяти. В настоящее время фирма является признанным лидером на рынке ЗD-акселераторов, поскольку ее продукцию отличают высокое качество, наилучшая производительность и разумная цена.

Наиболее известными продуктами nVidia являются Chipset Riva 128, Riva 128ZX, Riva TNT, Riva TNT2 (включая их многочисленные модификации), а также новейшие ускорители фотореалистичной графики GeForce 256 (NV10) и GeForce2 GTS (NV15), оборудованные геометрическими процессорами.

 

Riva 128

 

Плата на основе данного Chipset предоставляет полный набор услуг: 2D- и ЗD-ускоритель, ввод/вывод видео. Выпускается в PCI- и AGP-вариантах. Объ­ем локальной памяти постоянный — 4 Мбайт SGRAM для кадрового и z-буферов. Для плат на основе Riva 128 характерна сильная зависимость их производительности от быстродействия CPU и пропускной способности сис­темной шины. Интегрированный RAMDAC работает на частоте 230 МГц. Обеспечивается 16-битный цвет в 3D- и 32-битный — в 2О-графике. Основная особенность платы на основе Riva 128 — высокая производитель­ность при посредственном качестве изображения. Такие дефекты, как не­стыковка текстур, темные полосы и другие, характерные для ускорителей на основе Riva 128, стали классическим примером ошибок в реализации 3D-функций, поэтому в настоящее время данный Chipset не пользуется особым спросом.

Примеры видеоадаптеров на основе Chipset Riva 128: Asus 3DexPlorer 3000, Canopus TotaBD V128, Diamond Viper V330, ELSA Victory Erazor, STB Veloc­ity 128, Tekram AGP 5000.

 

Riva 128ZX

 

Выпуская данный Chipset, nVidia фремилась устранить недостатки преды­дущей модели. Основным отличием Chipset Riva 128ZX является увеличен­ный вдвое объем видеопамяти — 8 Мбайт SGRAM, а также более высокое качество ЗО-изображения, хотя полностью проблема решена не была. Мак­симальное разрешение увеличено до 1280x1024. Тактовая частота RAMDAC повышена до 250 МГц. Улучшено качество обработки видео (в частности, реализована фильтрация телевизионных бликов — TV flicker filtering).

 

Riva 128 TNT (Riva TNT)

 

Chipset Riva 128 TNT стал, пожалуй, первым по-настоящему удачным изде­лием nVidia, позволившим ей отобрать пальму первенства у компании 3Dfx. Не случайно Chipset Riva 128 TNT (в дальнейшем его стали называть просто Riva TNT) отводилась роль "киллера" знаменитого Voodoo2, что отчасти и произошло.

Как следует из его названия, Chipset Riva TNT (TwiN Texel) имеет два процессора для обработки текстур, бла­годаря чему обеспечивается аппаратное ускорение мультитекстурирования, трилинейной и анизотропной фильт­рации. Ядро Chipset выполнено по технологии 0,35 мкм и работает на частоте 90 МГц (рис. 15.36).

Рис. 15.36. Chipset Riva TNT

 

На плате видеоадаптера размещается видеопамять типа SGRAM или SDRAM объемом 8 или 16 Мбайт, работающая на частоте 125 МГц и 110 МГц соответ­ственно. Встроенный RAMDAC работает на частоте 250 МГц. Chipset Riva TNT допускает использование интерфейсов PCI и AGP. Как обычно, реализация AGP — сильная сторона Chipset nVidia, поэтому обес­печиваются все возможности AGP: режимы 2х, SBA, и DiME.

Наряду со стандартными функциями 3D-акселерации, Chipset предоставляет новые возможности:

□  32-битный цвет в ЗD-приложениях;

□ максимальное разрешение в ЗD-приложениях при 32-битном цвете и час­тоте кадров 85 кадр./с — 1600x1200;

□  24-битный z-буфер, допускающий использование чисел с фиксированной и плавающей точкой (большинство 3D-акселераторов имеют 16-битный z-буфер);

□  аппаратную поддержку анизотропной фильтрации;

□ рельефное текстурирование (Bump mapping);

полный антиалиасингFSAA (Full Scene Anti-Aliasing).

Важным преимуществом Chipset Riva TNT по сравнению со своими конку­рентами явилась его высокая производительность:  

□  пиковая пропускная способность до 8 млн треугольников в секунду;

□  максимальная скорость закраски до 250 млн треугольников в секунду и до 125 млн — в режиме мультитекстурирования;

□  производительность в игре Quake II при разрешении 1600x1200 в режиме True Color — 30 кадр./с на PC с процессором Pentium II 400 МГц.

Chipset имеет также дополнительные возможности по обработке видео:

□  аппаратная акселерация воспроизведения видео с использованием коде­ков MPEG-1, Indeo и частично для MPEG-2;

□  наличие выхода TV-out в стандартах NTSC и PAL (в зависимости от ком­плектации платы).

Примеры видеоадаптеров на основе Riva TNT: Diamond Viper V550, STB Velocity 4400.

 

RivaTNT2

 

Riva TNT2 — усовершенствованная версия Chipset Riva TNT. Выпуск Riva TNT2 во многом был ответным шагом на выпуск компанией 3Dfx Chipset Voodoo3.

В основном Chipset Riva TNT2 сохранил архитектуру своего предшествен­ника Riva TNT, поэтому главными отличиями новой модели являются:

□  использование новой технологии 0,25 мкм при изготовлении ядра;

□  увеличение объема видеопамяти с 16 до 32 Мбайт;

□  использование более быстрого RAMDAC, работающего с таковой часто­той 300 МГц;

□ добавление поддержки режима 4х при AGP-текстурировании.

 

Все это позволило значительно повысить тактовые частоты ядра (с 90 до 125 МГц) и памяти (со ПО до 150 МГц). Конвейер рендеринга был также усовершенствован, поэтому при одинаковых тактовых частотах производи­тельность Chipset Riva TNT2 примерно на 10—15% выше, чем у Riva TNT. -Увеличение объема видеопамяти позволило использовать более крупные текстуры, не используя при этом шину ввода/вывода, что обеспечило луч­шую детализацию ЗD-сцены при сохранении высокой производительности.

Видеоадаптеры на основе Chipset Riva TNT2 образуют достаточно большое семейство, различные представители которого значительно различаются по производительности и стоимости. Главными отличительными признаками являются тип, объем и быстродействие установленной на плате видеопамя­ти. В настоящее время на рынке, помимо базовой модели, имеются сле­дующие представители семейства TNT2:

□ RivaTNT2-A                     □ Riva TNpVanta

□ Riva TNT2 Ultra               □ Riva TNT2 M64

Chipset Riva TNT2-A является полным аналогом базовой модели за исклю­чением того, что выполнен по технологии 0,22 мкм вместо 0,25 мкм. Это позволило повысить стандартную тактовую частоту ядра до 143 МГц вместо 125 МГц у Riva TNT2. Практика показывает, что при наличии быстродейст­вующей видеопамяти тактовую частоту и ядра, и видеопамяти можно увели­чить до 180 МГц.

Chipset Riva TNT2 Ultra является наиболее быстрой (и дорогостоящей) мо­делью: стандартная тактовая частота ядра составляет 150 МГц, а памяти — 183 МГц. Ядро Chipset выполнено также по технологии 0,22 мкм. Как пра­вило, видеоадаптер на основе Riva TNT2 Ultra имеет 32 Мбайт видеопамяти типа SDRAM или SGRAM со временем доступа не более 7 не. Наиболее характерная модель видеоадаптера на основе данного ChipsetHercules Dynamite TNT2 Ultra, оборудованная видеопамятью типа SDRAM со време­нем доступа 5,5 не и объемом 32 Мбайт. Благодаря этому тактовая частота ядра составила 175 МГц, а памяти — до 200 МГц.

Видеоадаптеры на основе Chipset Riva TNT2-A и, особенно, Riva TNT2 Ultra являются дорогостоящими (от ПО до 170 USD) и недоступными широкому кругу пользователей изделиями. Поэтому фирма nVidia, стремясь расширить свое господствующее положение на рынке, выпустила упрощенные и гораз­до более дешевые версии Chipset TNT2, имеющие 64-разрядную шину памя­ти. К ним относятся две модели: TNT2 Vanta и TNT2 М64, каждая из кото­рых поддерживает 8, 16 либо 32 Мбайт видеопамяти типа SDRAM.

Наиболее дешевым вариантом является Chipset Riva TNT2 Vanta (рис. 15.37, слева), у которого частота RAMDAC оставлена на уровне Riva TNT, т. е. 250 МГц. Первоначально Chipset TNT2 Vanta предназначался для портатив­ных компьютеров, у которых видеоадаптер интегрирован на материнскую плату, однако низкая цена этого Chipset стимулировала производителей вы­пустить на его основе самостоятельную плату. Довольно часто видеоадаптер на основе TNT2 Vanta оборудован всего 8 Мбайт видеопамяти.

Бодее высокая скорость работы памяти и ядра у TNT2 Vanta (100/125 МГц) по сравнению с Riva TNT (90/110 МГц) компенсируется вдвое меньшей разрядностью (64 вместо 128), поэтому новый Chipset не смог опередить по производительности своего предшественника. Более того, при высоких раз­решениях в 2D- и при работе с ЗО-графикой, когда пропускная способность шины видеопамяти особенно критична, TNT2 Vanta заметно уступает по скорости Chipset Riva TNT (этим объ­ясняется то странное обстоятельство, что новая модель TNT2 Vanta стоит дешевле, чем Riva TNT). He спасает положения и предусмотренная на многих видеоадаптерах на основе TNT2 Vanta поддержка режима AGP 4х.

 

Рис. 15.37. Внешний вид графических процессоров Riva TNT2 Vanta (слева) и Riva TNT2 М64 (справа)

 

Chipset TNT2 М64 (рис. 15.37, справа) представляет собой разогнанный ва­риант TNT2 Vanta: по умолчанию для ядра и памяти используются тактовые частоты 125/150 МГц, однако при наличии внешнего охлаждения они могут быть увеличены до, 1.40/183 МГц. На видеоадаптерах с данным Chipset ис­пользуется более быстрая память, чем на TNT2 Vanta. Частота работы RAMDAC также увеличена до 300 МГц. Благодаря этим мерам производи­тельность Chipset превысила производительность Riva TNT, но не достигла скорости Riva TNT2. Как и в случае с Riva TNT2 Vanta, отставание наиболее сильно проявляется при работе в режимах с высоким разрешением.

 

GeForsce 256

 

Последним достижением компании nVidia в области 3D стало семейство мощных ЗD-акселераторов с геометрическим процессором, обеспечивающим аппаратное ускорение наиболее трудоемких этапов геометрической стадии ЗD-конвейера: преобразование координат и расчет освещенности, особенно при наличии нескольких источников освещения. Набор ускоряемых функций реализован узлом HW T&L (Hardware Transform and LightingАппаратное преобразование координат и расчет освещенности). Часто используется упро­щенное обозначение — T&L. Благодаря его наличию показатель Triangle Throughput у GeForce 256 достигает значения 15 млн треугольников в секунду. Среди других достоинств Chipset этого семейства можно назвать следующие:

 

□ они выполнены по технологии 0,22 мкм и 0,18 мкм, что обеспечивает дальнейший рост тактовой частоты ядра;

□  разрядность ядра и шины памяти увеличена до 256;

□  используются новые типы памяти, например DDR SDRAM, что наряду с увеличенной разрядностью позволяет радикально повысить пропускную способность видеопамяти;

□  объем видеопамяти может достигать 128 Мбайт;

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

 

Все эти особенности позволяют отнести видеоадаптеры на основе GeForce 256 к новому типу ускорителей фотореалистичной графики.

Первой моделью семейства стал GeForce 256, именуемый также NV10 (рис. 15.38, слева). Хотя он выполнен по технологии 0,22 мкм, стандартная тактовая частота ядра невелика — 120 МГц, памяти — до 200 МГц. Интег­рированный RAMDAC работает на частоте 350 МГц, что позволяет получить максимальное разрешение 2048x1536 при 75 кадр./с.

Рис. 15.38. Внешний вид новых графи­ческих процессоров производства фирмы  nVidia:

GeForce 256 (NV10) — слева и GeForce2 GTS (NV15) — справа

 

Следующими моделями данного семейства стали Chipset GeForce 2 GTS (рис. 15.38, справа), называемый также NV15, и его упрощенная версия — NV11. Аббревиатура GTS происходит от GygaTexel Shading, «то говорит о возможности обработки миллиарда текселов в секунду, т. е. об исключи­тельно мощном конвейере рендеринга.

Chipset NV15 и NV11 произведены по технологии 0,18 мкм, поэтому такто­вые частоты ядра и памяти удалось увеличить до 200 МГц. Другое сущест­венное по сравнению с GeForce 256 улучшение — в каждом конвейере рен­деринга у NV15 используется не один, а два блока текстурирования. Благодаря этому не происходит снижения скорости прорисовки в режиме мультитекстурирования: у NV15 она составляет 800 млн пикселов в секунду, при этом обрабатывается 1600 млн текселов (отсюда и название GTS). В Chipset NV11 количество конвейеров рендеринга снижено с четырех до двух.

Модели NV15 и NV11 различаются разрядностью шины локальной памяти. В NV11 в целях удешевления использована 128-разрядная шина.

Как и ее предшественник, NV15 обладает широкими дополнительными воз­можностями обработки сигналов от бытовой видеоаппаратуры (рис. 15.39).

Внешний вид видеоадаптера WinFast GeForce2 GTS фирмы Leadtek, выпол­ненного на основе Chipset GeForce2 GTS, показан на рис. 15.40.

 

Рис. 15.40. Видеоадаптер WinFast GeForce2 GTS фирмы Leadtek, выполненный на основе Chipset GeForce2 GTS

 

 

 

 

Matrox

 

Продукцией фирмы Matrox - традиционно являются высококачественные Chipset и платы для двумерной графики (например, видеоадаптеры Matrox Mystique и Matrox Millennium считаются эталоном качества). В настоящее время фирма активно осваивает рынок ЗD-акселераторов. Первой и неудач­ной попыткой был 2DD-акселератор Matrox Productiva G100. Имея прекрасные показатели в 2D-графике и непривычно низкую для изделий Ma­trox цену, эта карта не обеспечивала приемлемого качества ЗD-изображений. Следующие 2 изделия фирмы — видеоадаптеры Matrox Millennium G200 и Matrox Mystique G200 — выполнены на основе Chipset Matrox MGA G200 и уже имеют встроенный акселератор трехмерной графики. Последней разра­боткой фирмы является Chipset MGA G400.

 

 

Matrox MGA G200

 

 

Chipset Matrox MGA G200 является совмещенным 128-разрядным 2D/3D-ускорителем с интерфейсом AGP (режимы 2х, DiME). Обычно оснащен 8 Мбайт видеопамяти типа SGRAM или SDRAM, причем возможно расши­рение до 16 Мбайт. Отличительной особенностью является высокая разряд­ность г-буфера — 32 бита. Максимальное разрешение в 3D — 1280x1024 при 32-битном цвете (16 Мбайт локальной памяти). При использовании видео­памяти объемом 8 Мбайт максимальное разрешение в режиме True Color составляет 1024x768. Однако при переходе к 32-битному цвету скорость ра­боты падает на 30—40%, что сильно снижает производительность адаптера.

Chipset MGA G200 реализует традиционный набор аппаратно ускоряемых ЗD-функций, включая фирменную особенность Matroxрельефное текстурирование с использованием карт окружающей среды (Environment Map Bump-mapping). Однако качество реализации некоторых функций неудовлетвори­тельное, поэтому данный акселератор имеет специфический недостаток — на изображении появляется "желе", т. е. расплывчатость и подвижность эле­ментов поверхности трехмерного объекта при его медленном движении. Плохо реализована аппаратная поддержка антиалиасинга.

Плата имеет интегрированный RAMDAC, работающий на частоте 230 или 250 МГц (в зависимости от модели). Традиционно имеется разъем для под­ключения дочерней платы, позволяющей реализовать аппаратную поддерж­ку дополнительных функций обработки видеосигнала, хотя некоторые моде­ли плат на основе MGA G200 обеспечивают это за счет встроенных средств.

К недостаткам платы относится отсутствие поддержки API OpenGL, благо­даря чему невозможна, например, полноценная игра в Quake II.

Видеоадаптер на основе MGA G200 не имеет столь очевидной зависимости производительности от быстродействия CPU и шины, как, например, платы на основе Voodoo2 или Riva TNT, что говорит о сравнительно медленном конвейере рендеринга. Это значит, что этот Chipset целесообразнее исполь­зовать на более медленных машинах. Если же в перспективе вы планируете заменить свой процессор на Pentium II, то для работы с ЗD-приложениями стоит подумать о более быстродействующей плате.

В целом Chipset ориентирован самой фирмой Matrox на работу в составе PC нижнего и среднего уровня. Его преимуществом является очень высокое быстродействие и качество 2О-акселерации. Однако по качеству воспроизведения Зd-изображений и особенно по скорости он заметно уступает сво­им ближайшим конкурентам — Voodoo2 и Riva TNT.

 

Matrox MGA G400

 

Невысокая по сравнению с изделиями nVidia и 3Dfx скорость обработки ЗD-изображений Chipset MGA G200 заставили специалистов Matrox улуч­шить его ЗD-ядро. В результате появился новый Matrox MGA G400 (рис. 15.41), на основе которого в настоящее время выпускается три типа видеоадаптеров:

□   Matrox Millennium G400 16Mb AGP

□  Matrox Millennium G400 32Mb AGP

□  Matrox Millennium G400 MAX 32Mb AGP

Рис. 15.41. Внешний вид графического процессора Matrox MGA G400

 

Модели G400 и G400 МАХ различаются тактовыми частотами работы ядра (125 и 150 МГц соответственно), памяти (166 и 200 МГц) и RAMDAC (300 и 360 МГц), а также производительностью конвейера рендеринга (250 и 300 млн пикселов в секунду). Пропускная способность обоих моделей примерно одинакова и составляет около 8 млн треугольников в секунду. Chipset Matrox MGA G400 имеет более высокую производительность, чем Riva TNT(2), но уступает быстрым моделям на основе Riva TNT2 Ultra (модель G400 МАХ практически не отстает от последней).

Стоимость видеоадаптеров на основе Matrox G400 и Riva TNT2 Ultra также находится примерно на одинаковом уровне (первые чуть дороже). Набор аппаратно ускоряемых ЗD-функций является также стандартным для 3D-акселераторов данного уровня, при этом отдельного упоминания заслужива­ет качественная аппаратная реализация рельефного текстурирования с ис­пользованием карт окружающей среды (Environment Map Bump Mapping) — фирменная особенность ЗD-ядра фирмы Matrox. Впрочем, включение дан­ного режима снижает производительность видеосистемы на 30—35%.

Хотя производители отнесли Chipset Matrox G400 к семейству 256-разрядных, это не совсем так: ЗD-ядро очень похоже на ядро MGA G200, т. е. является 128-разрядным, однако в MGA G400 использована двойная 256-разрядная шина между ядром и локальной памятью. Эта шина пред­ставляет собой совокупность двух однонаправленных 128-разрядных шин, по которым одновременно и независимо друг от друга передаются данные из видеопамяти в ЗD-ядро и обратно.

Традиционно сильной стороной видеоадаптеров компании Matrox является исключительно высокое качество двумерного изображения. По этому показателю MGA G400 — безусловный лидер среди всех упомянутых выше Chipset. Особенно это заметно при использовании высококачественных мо­ниторов с экраном большого размера (не менее 17").

Наиболее интересным отличием видеоадаптеров на основе Matrox MGA G400 от рассмотренных выше устройств данного класса является наличие у некоторых моделей двух выходных разъёмов (возможность подключения двух мониторов к одному адаптеру называется Dual Head — Двойная голова) для одновременного подключения двух устройств отображения: либо двух мониторов, либо монитора и телевизора (рис. 15.42, 15.43). В последнем случае используется специальный переходник, позволяющий вывести ви­деосигнал с VGA-разъема на разъем типа S-Video или RCA.

Рис. 15.42. Видеоадаптер Matrox Millennium     MGA G400 с функцией Dual Head

 

 

 

 

Рис. 15.43. Подключение к видеоадаптеру Matrox Millennium MGA G400 двух

Мониторов

 

При подключении двух мониторов можно наблюдать одинаковое изображение на двух экранах, либо растянуть одно изображение на оба экрана (рис. 15.44).

 

рис. 15.44. Изображение, распахнутое на два экрана

 

Такая возможность обеспечивается достаточно редко используемым конст­руктивным решением — наличием двух независимых контроллеров ЭЛТ. Напомним, что контроллер ЭЛТ является одним из главных элементов ви­деоадаптера (2D-ядра) и управляет процессами формирования синхросигна­лов м сканирования видеопамяти. Наличие двух независимых контроллеров ЭЛТ позволяет устанавливать разные разрешение, частоту кадров и глубину представления цвета для каждого монитора.

Традиционным недостатком ЗD-акселераторов производства фирмы Matrox является низкая производительность в приложениях, ориентированных на OpenGL. Этот недостаток присущ и Chipset Matrox MGA G400, хотя в на­стоящее время фирма усиленно работает над созданием эффективных драй­веров уровня ICD.

 

ATI

 

Эта канадская фирма хорошо известна на рынке 2D-акселераторов. Как и Matrox, фирма ATI неудачно дебютировала на рынке 3D с Chipset ATI 3D Rage PRO. При достаточно высокой производительности в двумерной гра­фике, он обладал низкой производительностью и некорректно реализован­ными функциями обработки ЗD-графики.

Первой успешной разработкой фирмы в области 3D явился 128-разрядный Chipset ATI Rage 128, в котором ATI постаралась внедрить много технологи­ческих новшеств (например, текстурную и пикселную кэш-память). Ожида­лось, что Chipset ATI Rage 128 обеспечит высокую производительность сис­темы, а также отличное качество изображения и станет достойным конкурентом лидерам рынка того периода — Chipset Riva TNT и Voodoo2. Отчасти так и получилось, однако ошибки в реализации отдельных 3D-функций, недостаточно отлаженные драйверы (особенно — ICD для OpenGL) и традиционно более высокая цена изделий ATI по сравнению с Chipset nVidia не способствовали успеху ATI Rage 128. Тем более, к моменту его выхода на рынок появились Chipset следующего поколения — Riva TNT2 Ultra и Voodoo3.

Исправив ошибки и улучшив характеристики Ragel28, фирма ATI выпусти­ла новый Chipset Ragel28 Pro, который приблизился по производительности к Riva TNT2 Ultra. На основе этого Chipset ATI выпускает несколько моде­лей видеоадаптеров семейства ATI Rage Fury Pro, различающихся набором мультимедийных функций и объемом видеопамяти. Появились также видео­адаптеры ATI Rage Fury Pro MAXX, в которых на одной плате установлено два параллельно работающих Chipset Ragel28 Pro.

Новейшим изделием фирмы ATI является ЗD-акселератор Radeon 256, ос­нащенный геометрическим процессором Charisma Engine. Он относится к новому поколению ускорителей фотореалистичной графики и составляет конкуренцию Chipset GeForce фирмы nVidia и Savage 2000 фирмы S3.

 

ATIRage128

 

Также как и все современные изделия для 3D, Chipset ATI Ragel28 является интегрированным мультимедийным 2DD-акселератором с интерфейсом AGP (режим 2х). Chipset имеет 128-битную архитектуру, ядро и видеопамять работают на частоте 103 МГц. На плате может быть установлено 16 или 32 Мбайт видеопамяти типа. SGRAM. Встроенный RAMDAC работает на частоте 250 МГц, благодаря чему обеспечивается максимальное разрешение 1920x1200. ЗD-ядро имеет два конвейера рендеринга и аналогичный Chipset Riva TNT набор ускоряемых ЗD-функций, за исключением поддержки ани­зотропной фильтрации (реализация билинейной фильтрации выполнена также с ошибками). Пропускная способность 4 млн треугольников в секун­ду, скорость закраски — 200 млн пикселов в секунду. Поддерживаются тек­стуры больших размеров (1024x1024), 32-битный г-буфер и 32-битный цвет при обработке ЗD-изображений.   

Новинкой в традиционной архитектуре ЗD-ядра стало наличие текстурной и пикселной кэш-памяти, ускоряющей процесс рендеринга. Традиционная сильная сторона большинства видеоадаптеров фирмы ATI и Rage 128, в ча­стности, — оптимизированное 128-разрядное 2D-ядро, обеспечивающее вы­сокую скорость работы и отличное качество 2D-изображений. Помимо стандартного набора аппаратно ускоряемых 2D-функций обеспечивается частичное аппаратное декодирование видеопотоков MPEG-2/DVD, позво­ляющее снизить загрузку CPU на 45%. Помимо этого, возможна установка дополнительных микросхем обеспечивающих качественную реализацию функции TV-out.

 

ATIRage128Pro

 

Недостатки ATI Ragel28 и поставляемого программного обеспечения серь­езно затруднили его продвижение на рынке, поэтому компания ATI вскоре выпустила новую, усовершенствованную версию данного Chipset, названную Rage 128 Pro. Улучшения коснулись следующих аспектов:

 

□  Chipset выполнен по более современной 0,25-микрометровой технологии;

□ тактовые частоты ядра и памяти увеличены до 140 и 150 МГц соответст­венно;

□  тактовая частота RAMDAC увеличена до 300 МГц, что позволило повы­сить максимальное разрешение до 2048x1536;

□  исправлены ошибки реализации билинейной фильтрации, введена аппа­ратная поддержка анизотропной фильтрации;

□  усовершенствован механизм Setup  Engine,  благодаря чему пропускная способность Chipset увеличилась до 8 млн треугольников в секунду;

□  при реализации интерфейса AGP введена поддержка режима 4х.

 

Благодаря этим изменениям Chipset ATI Rage 128 Pro no производительности вплотную приблизился к Riva TNT2 Ultra, а по отдельным параметрам даже немного его превзошел. В качестве дополнительного стимула для приобре­тения видеоадаптера на основе данного Chipset фирма ATI аппаратно реали­зовала в нем некоторые мультимедийные функции; в частности, модель ATI Rage Fury Pro ..VIVO (Video InVideo Out) обеспечивает качественный ввод/вывод аналогового видеосигнала.

 

ATI Rage Fury MAXX

 

Дополнительным средством в конкурентной борьбе компании ATI против nVidia, S3 и 3Dfx является применение новой технологии МАХХ, позво­ляющей использовать на одной плате видеоадаптера несколько Chipset, па­раллельно работающих в 3D (при работе в обычной двумерной графике этой необходимости нет). Такое решение можно считать ответом на технологию SLI, которая давно и успешно используется в изделиях компании 3Dfx.

В результате был выпущен видеоадаптер ATI Rage Fury MAXX (рис. 15.45), у которого на одной плате размещено два Chipset ATI Rage 128 Pro, каждый из них имеет 32 Мбайт локальной памяти (общий объем видеопамяти типа SDRAM составляет 64 Мбайт).

 

Рис. 15.45. Видеоадаптер ATI Rage Fury MAXX

 

Для обычной работы (в 2D) задействуется только один Chipset. Наличие второго Chipset обеспечивает потенциальную работу с двумя мониторами (на плате даже имеется место для второго разъема), однако пока эта функция не поддерживается. При работе с ЗD-приложениями производительность ATI Rage Fury MAXX приближается к производительности nVidia GeForce 256, однако и цена данного изделия ничуть не ниже.

 

ATI Radeon 256

 

Принципиально новым продуктом ATI является ЗD-акселератор нового по­коления — Radeon 256 (рис. 15.46).

 

Рис. 15.46. Видеоадаптер ATI Radeon 256

Особенности архитектуры и основные характеристики ATI Radeon 256 как одного из ускорителей фотореалистичной графики были рассмотрены выше. Здесь отметим лишь следующие особенности:

256-разрядное графическое ядро состоит из двух параллельно работаю­щих 128-разрядных блоков;

помимо традиционной для современных видеоадаптеров памяти типа SDRAM/SGRAM, ATI Radeon 256 поддерживает перспективную память типа DDR SDRAM (на рис. 15.46 изображен видеоадаптер, оснащенный видеопамятью типа DDR SDRAM объемом 32 Мбайт и рассчитанной на работу с тактовой частотой 183 МГц);

□ кроме графического процессора (2D- и ЗD-ядра), на плате видеоадаптера имеется микросхема Rage Theater, позволяющая выполнять ввод/вывод видеосигнала и его аппаратное сжатие (на рис. 15.46 виден также разъем S-Video);

Chipset ATI Radeon 256 позволяет использовать технологию МАХХ, поэто­му возможно появление видеоадаптеров, содержащих несколько Chipset.

Заметим, что с выходом данного Chipset, имеющего не менее высокие ха­рактеристики, чем GeForce 256, компания ATI впервые составила серьезную конкуренцию фирме nVidia среди продукции High-End на рынке устройств для 3D

.

S3, Inc.

 

Фирма S3, Inc. зарекомендовала себя как изготовитель недорогих, но имею­щих достаточно высокое быстродействие Chipset для видеоадаптеров, благода­ря чему ее продукция составляет значительную долю рынка 2D-устройств. Первые попытки S3 завоевать рынок 3D были неудачными. Выпущенный в конце 1995 г. видеоадаптер на основе Chipset S3 Virge GX/DX обладал хоро­шей производительностью в 2D-приложениях, но не обеспечивал существен­ного ускорения операций с трехмерной графикой, даже несмотря на попытки S3 анонсировать данное изделие как 2DD-акселератор, Это стало особенно очевидно после появления акселератора Voodoo Graphics.

Следующая попытка — выпуск Chipset S3 Trio3D, который имел еще мень­ший успех, поскольку аппаратное ускорение основных ЗD-функций в нем также отсутствовало (в этой связи не могут не вызывать улыбку имеющиеся в продаже AGP-версии видеоадаптеров на основе этих двух Chipset, по­скольку наличие у них этого интерфейса совершенно бесполезно).

Изучив свои ошибки и взяв на вооружение последние достижения в области ускорения функций трехмерной графики, фирма S3 создала совершенно но­вый продукт — Chipset Savage 3D. Как и любое другое первое изделие в об­ласти 3D, Chipset получился довольно "сырым": его производительность яв­но не дотягивала до уровня Riva TNT, зато по сбоям и неустойчивости работы он был в первых рядах.

Однако в очередной версии ChipsetSavage 4 — уже были исправлены многие недостатки Savage 3D. Новый Chipset, благодаря высокой произво­дительности (на уровне Riva TNT), устойчивой работе и сравнительно невы­сокой цене, получил довольно широкое распространение, хотя к изделиям уровня High-End его отнести все же нельзя.

Последняя разработка фирмы — Savage 2000 — вполне может быть охарак­теризована как высококлассный ЗD-акселератор нового поколения, содер­жащий геометрический процессор.

 

S3 Savage 3D

 

S3 Savage 3D имеет 128-разрядное изготовленное по технологии 0,25 мкм 2DD-ядро (два блока по 64 разряда), а также ставший уже традиционным стандартный набор средств обработки видеоданных. Наиболее существен­ным отличием этого Chipset от своих конкурентов является использование в нем технологии сжатия текстур S3TC {S3 Textures Compression) — собствен­ная разработка фирмы S3. Эта технология позволяет решить две задачи:

 значительно (в несколько раз) сократить объем видеопамяти, необходи­мой для хранения текстур, либо увеличить разрешение текстур, храня­щихся в видеопамяти;

□ повысить скорость обмена текстурными данными между акселератором и RAM PC за счет того, что текстуры пересылаются в сжатом виде и ско­рость информационного потока оказывается значительно ниже.

 

Благодаря этим достоинствам технологию S3TC лицензировала фирма Mi­crosoft, включив ее поддержку в DirectX 6.O. Однако в настоящее время лишь немногие приложения поддерживают данную технологию (к числу таковых можно отнести игру Unreal).

Сделав ставку на использование сжатых текстур, S3 снабдила Savage 3D ви­деопамятью небольшого объема (от 2 до 8 Мбайт). Chipset поддерживает ра­боту с видеопамятью двух типов: работающей на частоте 125 МГц SGRAM и более дешевой SDRAM. Как известно, такой подход себя не оправдал: даже при наличии интерфейса AGP (режим 4х) производители стремятся нара­щивать объем локальной памяти (что в дальнейшем сделала и S3 в новой модели Savage 4).

Будучи ориентированным на шину AGP, Chipset Savage3D поддерживает и интерфейс PCI версии 2.1, включая управление питанием шины.

К аппаратным особенностям Chipset Savage3D можно отнести следующие:

□ 128-разрядное (2x64) ЗD-ядро с тактовой частотой 125 МГц;

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

□ довольно высокая для 3D-акселераторов данного уровня пропускная спо­собность (5 млн треугольников в секунду), обусловленная наличием модифицированного механизма обработки треугольников Triangle Setup En­gine   (обеспечивает   оптимизированный   режим   передачи   данных   о смежных вершинах элементарных треугольников — triangle strip and fans);

□ невысокая скорость закраски — 5 млн пикселов в секунду (при включен­ной трилинейной фильтрации);

□ краевой антиалиасинг, отсутствие аппаратной поддержки полного анти-

алиасинга;

□ отсутствие аппаратной поддержки анизотропной фильтрации.

 В настоящее время видеоадаптер на основе S3 Savage 3D стоит достаточно дешево, однако невысокое по сравнению с Riva TNT быстродействие, а также явные недоработки в аппаратном и программном обеспечении могут создать массу проблем в работе и настройке адаптера.

 

S3 Savage 4

 

Спустя 7 месяцев после выпуска Savage 3D фирма S3 изготовила новый Chipset Savage 4, в котором были устранены многие недостатки предыду­щего Chipset. Так же, как и Savage 3D, Savage 4 имеет 128-разрядное 2D/3D-ядро, выполненное по технологии 0,25 мкм. Этот Chipset выпускается в трех модификациях ,различающихся тактовыми частотами ядра и видеопамяти, а также объемом и быстродействием видеопамяти:

 

Savage   4   GT —   110/125 МГц,   до   16 Мбайт  локальной   памяти   типа SDRAM (рис. 15.47, слева).

Savage  4   Pro—   110/125 МГц до   32 Мбайт  локальной   памяти  типа SDRAM,  или SGRAM (рис. 15.47, справа).

 SGRAM.

Savage  4   Pro- 125/143 МГц до   32 Мбайт  локальной   памяти  типа SDRAM или SGRAM

На плате видеоадаптера на основе Chipset семейства Savage 4, как правило, устанавливается только память типа SDRAM со временем доступа 10 не для Chipset Savage 4 GT и 8 не — для Savage 4 Pro. Опыт показывает, что она без проблем разгоняется до частоты 135—150 МГц (в зависимости от времени доступа).

 

Основные отличия Savage 4 от Savage 3D состоят в следующем:

□ увеличена до 300 МГц тактовая частота RAMDAC;

улучшен механизм преобразования информации о вершинах полигонов (Triangle Setup Engine), благодаря чему пропускная способность Chipset возросла с 5 до 8 млн треугольников в секунду;

□ добавлена аппаратная поддержка анизотропной фильтрации;

□ усовершенствован конвейер рендеринга: мультитекстурирование и три­линейная фильтрация выполняются за один такт, скорость заполнения повысилась до 140 млн пикселов в секунду;

□ реализована аппаратная поддержка рельефного текстурирования по мето­ду вдавливания (Embossing);

□ реализована аппаратная поддержка полного антиалиасинга (Full Scene Anti-Aliasing, FSAA);

□  обеспечена поддержка режима 4х интерфейса AGP (Chipset Savage 4 Pro);

□  добавлен 8-битный буфер шаблонов, позволяющий динамически изме­нять тени от объектов;

П поддерживается пикселный и полигонный туман;

□  реализованы  различные   алгоритмы   преобразования   текстур,   включая процедурные текстуры;

□  обеспечена поддержка текстур большого размера (до 2048x2048).

Благодаря этим доработкам Chipset Savage 4 практически сравнялся с Chipset Riva TNT по функциональным возможностям и производительности, при­чем цена видеоадаптеров на основе этого Chipset на 20—30% ниже. Отличи­тельная черта Chipset Savage 4 — прекрасное качество прорисовки трехмер­ной сцены, недоступное для Chipset других моделей. Однако проблемы с драйверами, появлявшиеся в Savage 3D, частично остались, что особенно заметно в приложениях, ориентированных на OpenGL. Имеет место также плохая совместимость с некоторыми моделями материнских плат.

Тем не менее, главным недостатком Chipset Savage 3D все же являются нека­чественные драйверы, особенно ICD для OpenGL. Если вы любите играть в Quake или работаете с другими программами, использующими этот API (например, 3D Studio Max), то видеоадаптер на основе Savage 4 вряд ли вам подойдет, т. к. скорость работы будет очень низкой. Правда, для Chipset Sav­age 3D и Savage 4 фирма S3 разработала "родной" APIMetal3D, при исполь­зовании которого они демонстрируют великолепную производительность (даже выше, чем у конкурентов). Однако приложений, поддерживающих дан­ный API, очень мало (наиболее известным из них является игра Unreal).

В целом видеоадаптер на основе Savage 4, оснащенный видеопамятью объе­мом не менее 16 Мбайт, является недорогим, но достаточно эффективным решением для домашнего компьютера, благодаря чему составляет конкурен­цию видеоадаптерам на основе Riva TNT, а модели на основе Savage 4 Рго+ (например, Diamond Stealth III S540) сопоставимы по быстродействию с ви­деоадаптерами на основе Riva TNT2 М64. Преимущество этих адаптеров над своими конкурентами более заметно при использовании CPU фирмы AMD (не ниже K6-II 350 МГц), видимо графические процессоры фирмы S3 под­держивают набор команд 3Dnow!

 

S3 Savage 2000

 

Хотя выпуск Chipset Savage 4 считается успехом фирмы S3, но она не стала лидером и не заняла место в ряду производителей высокопроизводительных ЗD-акселераторов класса High-End. Стремясь исправить это положение и догнать лидера (nVidia), S3 выпустила новый 128-разрядный Chipset, полу­чивший название Savage 2000.

Основное отличие этого Chipset от своих предшественников — наличие гео­метрического процессора S3TL (S3 Transform and Lighting). Он обеспечивает аппаратное ускорение операций геометрической стадии ЗD-конвейера: пре­образование координат и освещенности (до 8 источников света). Наличие данного блока в составе Savage 2000 позволяет поставить его в один ряд с такими моделями, как GeForce и Radeon 256, однако производительность S3TL 'примерно вдвое ниже, чем у этих моделей.

Остальные особенности архитектуры Savage 2000 делают его похожим на 128-разрядные 3D-акселераторы типа Riva TNT2 и Savage 4. Пропускная способность Savage 2000 составляет 10—15 млн треугольников в секунду, скорость прорисовки — 300 млн пикселов в секунду.

Анонсирована модель Savage 2000+, у которой максимальные частоты ядра и памяти увеличены до уровня 200/200 МГц. Для нее скорость прорисовки достигнет 400 млн пикселов в секунду.

По сравнению с Savage 4, в новом Chipset значительно улучшена поддержка API OpenGL, однако не доработаны драйверы для Direct3D. Как и следует ожидать, наилучшую производительность данный Chipset обеспечивает при использовании собственного API фирмы S3 — MetaDD. В целом Savage 2000 превосходит по производительности Chipset Riva TNT2 и Rage 128, однако явно уступает GeForce 256 (в первую очередь, из-за бо­лее слабого геометрического процессора и более узкой шины видеопамяти). Единственное его преимущество по сравнению с GeForce 256 — более низ­кая цена (примерно на 30% ниже).