Графические акселераторы
Почти все PC покупаются для работы, а используются, по крайней мере, на 25%, для игры. Нынче чуть ли не каждый сидящий у клавиатуры - геймер, начиная от секретарши, самозабвенно играющей в бессмертные Color Lines, и заканчивая солидными представителями малого бизнеса, истребляющими друг друга по локалке в конце рабочего дня. Как известно, игры - одна из самых ресурсоемких категорий программных продуктов. Кроме высоких требований к CPU и объему RAM, им требуется еще и высокопроизводительная графическая система.
Да и не только играм она требуется. Все мультимедийные приложения в последнее время стали иметь свойство предъявлять большие требования к графической подсистеме, чем может обеспечить средний рабочий (то есть используемый для таких общих функций как работа с текстами и базами данных) PC. Спрос рождает предложение, а потому существует широкий спектр улучшенных (в смысле различных параметров) графических карт от разных производителей. Если вы используете свой PC только для описанных выше общих функций, то вам эти ухищрения не нужны. Если же это не так, то милости просим...
Графический акселератор - это устройство (заметьте - не обязательно видеокарта), которое позволяет ускорить работу с каким-либо (по крайней мере, одним, но не обязательно) типом графики. Это достигается за счет аппаратной реализации часто используемых для этого типа графики процедур обработки изображения. Акселерируют же (то есть ускоряют) обычно 2D-графику, воспроизведение видео и 3D-графику. Первые два типа ускорителей мы рассмотрим в общих чертах, последний же, как наиболее актуальный, рассмотрим подробнее.
Сначала остановимся на параметре, который определяет базовую производительность абсолютно всех графических карт и акселераторов - на типе и объеме используемой памяти (той ее части, которая относится к кадровому буферу). Она определяет пропускную способность видеокарты, а, значит, доступное разрешение и глубину цветности.
Самой низкой пропускной способностью и ценой обладает однопортовая память EDO DRAM, самые дорогие и быстрые образцы - двухпортовые WRAM, VRAM и EDO VRAM. Где-то между ними, но довольно близко к верхней части, находятся такие типы однопортовой памяти, как синхронная (SDRAM и ее специальная разновидность для графических адаптеров - SGRAM), MDRAM (Multibank DRAM) и RDRAM (Rambus DRUM). EDO DRAM способна в большинстве случаев обеспечить режим 800* 600*16.7 млн. цветов (true color). Это можно считать приемлемым для систем с 15-дюймовыми мониторами, но ограниченная пропускная способность отрицательно сказывается на производительности, особенно - на качестве 3D-графики. Поэтому EDO DRAM вытесняется практически столь же дешевой, но куда более производительной SGRAM (MDRAM и RDRAM не получили широкого распространения и используются только в отдельных моделях Cirrus и Tseng). Память этого типа делает легко доступными режимы 1024*768 и 1280*1024 true color, что обычно достаточно для 17-, 20- и 21-дюймовых мониторов. Если же требуется более высокое разрешение, необходимо использовать двухпортовую память.
Теперь перейдем к рассмотрению самих акселераторов. Начнем с наиболее распространенных 2D-ускорителей. Эти устройства позволяют ускорять выполнение таких функций, как растягивание/сжатие изображения, рисование прямоугольников и линий. Поскольку появился этот класс устройств достаточно давно, то он успел стать практическим стандартом. 2D-акселераторами оснащены, например, популярные видеокарты S3 Trio. Несмотря на некоторое расхождение в производительности разных моделей, можно сказать, что все 2D-акселераторы позволяют обеспечить достаточно комфортную работу в графических оболочках и ОС.
Аппаратная поддержка воспроизведения видео также появилась в графических адаптерах достаточно давно. Главной задачей, решаемой при применении таких устройств, является воспроизведение видео в различных форматах (AVI, MPEG-1) с использованием чисто программных декодеров. При решении этой задачи качество изображения не было приоритетом и ограничивалось тремя основными факторами - быстродействием CPU, самим графическим адаптером (например, качеством масштабирования) и, самое существенное, источником видео. Для дисков Video CD (MPEG-1) может быть достигнуто только достаточно посредственное качество изображения, сравнимое с бытовым стандартом VHS.
Источником более высококачественного изображения могут стать диски DVD в формате MPEG-2. Однако в связи с ними сразу же возникает несколько проблем. Во-первых, это дороговизна самого накопителя. Во-вторых - необходимость аппаратного декодирования MPEG-2, что вызвано высокой трудоемкостью этого процесса. На сегодняшний день DVD и MPEG-2 в домашних системах - все еще дело будущего.
Наконец, самый молодой и самый нашумевший тип ускорителей - 3D-акселераторы. Внедрение поддержки 3D-графики в массы началось совсем недавно - чуть больше года назад. Между тем уже успело появиться третье поколение этих устройств. Первое поколение 3D-ускорителей (на основе чипсетов VIRGE фирмы S3 и 3D-RAGE фирмы ATI) обладало достаточно скудными возможностями. Современные модели второго (VIRGE/GX, 3D-RAGE II и др.) и, в особенности, третьего поколения в значительной степени избавились от таких недостатков, как малый набор 3D-функций и низкая производительность. За счет совершенствования архитектуры и удешевления памяти стало возможно создавать более сложное и детальное изображение без ошибок. Объем памяти является определяющим, так как для обсчета трехмерных сцен даже средней сложности адаптер должен обладать быстродействующей памятью, по объему вчетверо превышающей объем кадрового буфера, что составляет для массовых моделей 4-8 Mб.
Рассмотрим подробнее графические чипсеты, на основе которых строятся 3D-ускорители. Как уже говорилось выше, к первому поколению принадлежали VIRGE (EDO DRAM, ЦАП RAMDAC на 135 МГц) и VIRGE/VX (VRAM, RAMDAC 220 МГц) фирмы S3, а также ATI RAGE (EDO DRAM RAMDAC 170 МГц) фирмы ATI на основе известных 2D-ускорителей S3 Trio64V+ и ATI Mach 264, соответственно. Эти чипсеты все еще применяются в качестве основы для дешевых устройств и имеют достаточно широкий набор поддерживаемых 3D-функций (наложение текстур с коррекцией перспективы, билинейная фильтрация, z-буфер и некоторые другие), однако особой прыти от них ждать не приходится.
Большинство массовых 3D-ускорителей на сегодняшний день использует чипсеты второго поколения. В них возможности обсчета 3D-графики значительно улучшены. К таким чипсетам относятся S3 VIRGE/DX (EDO DRAM и SDRAM, RAMDAC 170 МГц) и S3 VIRGE/GX (SGRAM, RAMDAC 170 МГц), которые имеют в три раза более высокую производительность, чем VIRGE первого поколения, ATI RAGE II (EDO DRAM, SDRAM, SGRAM, RAMDAC 170 или 200 МГц, производительность по 3D - вдвое выше, чем у ATI RAGE), Cirrus Logic Laguna 3D / CL-GD5464 (RDRAM, RAMDAC 230 МГц), Matrox MGA-2164W (WRAM, RAMDAC 220 МГц), Matrox MGA-1064SG (SGRAM, RAMDAC 170 МГц).
Все эти чипсеты обеспечивают высокие разрешения и частоты регенерации, поддержку 3D-функций при разрешениях больших, чем 640*480 (в отличие от чипсетов первого поколения), очень хорошую производительность по 3D-графике, воспроизведение видео с почти телевизионным качеством, интерфейс подключения дополнительных видеоустройств.
3D-ускорители третьего поколения разрабатывались для графического порта AGP, но могут использоваться и с шиной PCI. В 3D-ускорителях третьего поколения на аппаратном уровне реализованы не только функции рендеринга, но и некоторых геометрических преобразований. Специальный блок set-up engine ускоряет формирование сетки треугольников и позволяет получать более детальное изображение. По сравнению с ускорителями предыдущих поколений, увеличен набор 3D-функций и скорость их выполнения. Характеристики некоторых чипсетов третьего поколения приведены в таблице.
Модель | Permedia Pro | 3D Rage Pro | T2R | Riva 128 | VIRGE/GX2 | 3D-Image 985 DVD |
Шина | AGP 1X | AGP 2X | AGP 1X | AGP 1X | AGP 1X | AGP 2X |
Самый быстрый тип памяти | SGRAM | WRAM | WRAM | SGRAM | SGRAM | SGRAM |
Разрядность шины памяти | 64 | 64 | 128 | 128 | 64 | 64 |
Тактовая частота обращений к памяти, МГц | 100 | 100 | 100 | 100 | 100 | 100 |
Кэш текстур, K | - | 4 | 8 | 8 | - | 4 |
Встроенный setup | + | + | + | + | - | + |
Максимальная скорость вывода треугольников, млн./сек. | 1 | 1.2 | 1.2 | 5 | 1.6 | 1 |
Максимальная скорость вывода пикселей , млн/сек. | 40 | 45 | 35 | 100 | 35 | 70 |
Предельная оценка производительности (3D WinBench) | 157 | 171 | 135 | 185 | ? | 150 |
RAMDAC, МГц | 230 | 250 | - | 206 | 170 | 230 |
TV | + | + | - | + | + | + |
При подготовке статьи использовалась информация, предоставленная фирмой "Пирит".
Денис МАРГОЛИН
OpenGL
Когда 3D-акселераторы только-только появились, их производители вынуждены были договариваться с разработчиками игр о том, чтобы новые детища последних поддерживали эти карты, поскольку какой-либо стандарт на массовые 3D-акселераторы отсутствовал. Такая ситуация никому не нравилась, поскольку, во-первых, производители акселераторов вынуждены были договариваться с каждым производителем игр для того, чтобы последние включали необходимые драйверы в свою продукцию, а во-вторых потому, что разработчики игр вынуждены были поддерживать каждое устройство отдельно, что приводило к повышению трудоемкости разработки. Кроме того, если появлялись новые устройства, оказывалось, что "старые" (выпущенные пару месяцев назад) игрушки с ними не совместимы.
Фирма Microsoft, которая всегда отличалась тем, что "держала руку на пульсе", заметила эту ситуацию и быстро попыталась извлечь из нее прибыль. В комплект поставки Windows-95 был включен пакет поддержки 3D-акселераторов Direct3D, унифицировавший программный интерфейс для работы с этими устройствами под Windows-95. Производители игр и акселераторов возликовали - наконец-то было достигнуто долгожданное единство. Но радость была недолгой - выяснилось, что процедуры Direct3D настолько медленны, что почти сводят на нет достоинства ускорителей. Необходим был новый стандарт.
Тогда вспомнили о существовавшем уже достаточно давно (еще до появления 3D акселераторов) профессиональном программном интерфейсе OpenGL. Разработчикам первых массовых 3D для PC этот интерфейс показался излишне сложным, но ведь прогресс не стоит на месте...
Не последнюю роль в становлении OpenGL на PC сыграла id Software. Джон Кармак заявил, что, может, для кого-то OpenGL и слишком сложен, а для id он - в самый раз. Это практически определило судьбу стандарта.
По сути своей OpenGL является платформно-независимым программным интерфейсом, определяющим набор процедур обработки 3D-графики и формат их вызова. Платформно-независимый означает, что возможность его использования не зависит ни от операционной системы, ни от типа процессора. Единственное, что важно, это поддерживает ли карта этот интерфейс.
Здесь возникает один тонкий момент. Для поддержки OpenGL на PC 3D-ускорители используют драйвера. Вот эти-то драйвера и являются самыми что ни на есть платформно-зависимыми и должны заново переписываться для каждой ОС. То есть, если у вас карта OpenGL, но нет соответствующего драйвера, например, для XWINDOWS, то как OpenGL вы ее там использовать не сможете.
Сам OpenGL представляет из себя достаточно стандартный, но строго систематизированный набор процедур для отрисовки и обсчета плоских примитивов, полигонов и некоторых спецэффектов.
На сегодняшний день стандарт OpenGL поддерживают следующие карты: 3Dfx Voodoo Graphics, 3Dlabs GLINT, 3Dlabs Permedia, ATI 3D Rage, ATI 3D Rage+DVD, ATI 3D Rage Pro, Cirrus Logic Laguna 3D, Dynamic Pictures Oxygen, Number Nine Ticket to Ride (T2R), Matrox MGA-2164W, Matrox MGA-1064SG, Mitsubishi 3D Pro, Nvidia RIVA 128, Real3D R3D100, Rendition Verite 1000, Rendition New Technology, S3 Virge DX, GX и GX2.
Порт AGP
AGP(Accelerated Graphics Port) - альтернатива стандартному разъему для графических карт PCI, представленная Intel. Внешне слот AGP практически не отличается от слота PCI, но способен передавать данные вчетверо быстрее. Разработан был специально для использования с высококачественными графическими адаптерами. Пока что такой разъем имеется только на материнских платах Intel для Pentium II и является диковинкой, но, возможно, не за горами то время, когда он станет стандартом.
Горячие темы