2d и 3d акселераторы. Возможные причины неполадок. Улучшенные технологии наложения текстур


В первой части мы поговорили о зарождении дискретных видеокарт: о том, что они могли, как подключались и сколько стоили. Теперь же перейдем к, пожалуй, самому интересному периоду развития видеокарт - к 90-ым годам: уже появляются первые 3D-игры, и тут же становится понятно, что программный рендеринг не тянет их и нужно привлекать видеокарты, что и было сделано - в 1995 году, в один год с выходом легендарной PlayStation 1, появился первая доступная 3D-видеокарта - S3 Virge.

S3 ViRGE - первая ласточка 3D-мира

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

Характеристики же ее были достаточно скромны - частота видеочипа была порядка 60 МГц, а памяти было до 4 МБ, причем память можно было наращивать самому. Да-да, на видеокарте было распаяно 2 МБ и были слоты, куда можно было вставить еще 2:

При этом разрядность шины памяти была аж целых 64 бита - к слову, такая же шина используется даже сейчас в low-level игровых видеокартах, к примеру - в GT 1030.

Достаточно большим плюсом видеокарты была всеядность, она могла работать со всеми графическими API - не только с Direct3D и OpenGL, но и с RenderWare и Brender, а также имела собственный API - S3D (особой популярности он, правда, не получил). К тому же эта видеокарта имела телевизионный выход, так что была универсальной при выводе картинки.

Из-за проблем при работе с 3D многие стали подключать к ней уже чисто 3D-видеоускоритель 3dfx Voodoo1, тем самым убивая двух зайцев - ViRGE отлично работает с 2D, Voodoo1 - с 3D, тандем же получается универсальным.

3dfx Voodoo1 - начало линейки легендарных видеоускорителей

3dfx была самым молодым игроком на рынке видеокарт - компания была основана 3 выходцами из Silicon Graphics, которые при уходе не забыли прихватить с собой разработки новых видеочипов. Куда могла податься молодая компания, умеющая в графику? Правильно, в производство видеочипов для игровых автоматов. Причем они преуспели так, что на них стали обращать внимание производители игровых приставок. На рынок ПК они выходить не хотели, однако в 1996 году цены на быструю память EDO упали до терпимого уровня, и 3dfx решили выпустить собственный видеоускоритель с этим типом памяти.

Почему именно видеоускоритель, и в чем разница с видеокартой? Видеокарта должна уметь и готовить картинку, и выводить ее на экран. Видеоускоритель же умеет только рендерить картинку - выводить ее нужно через видеокарту. 3dfx, да и другие компании, решили так - у каждого человека уже есть видеокарта, которая отрисовывает интерфейс ОС. Так зачем мучиться и впихивать на плату с 3D-видеочипом еще и чип для работы с 2D, если он есть у пользователей? Поэтому можно от него отказаться - это и цену снизит, и разрабатывать видеоускоритель проще. Ну а для вывода картинки просто будем подключать видеоускоритель к видеокарте проводом VGA. Да, громоздко, но зато дешево - и многие это оценили (на картинке две Voodoo в SLI, но суть та же):

И, как я уже писал выше, с видеокартой для Voodoo1 проблем не было - ViRGE подходил идеально, так что связка его с «вуду» была очень популярна. Причем, что достаточно забавно, по цифрам характеристики Voodoo были хуже - видеочип с частотой 50 МГц и те же 4 МБ памяти. Но 3dfx брали не частотой, а оптимизацией и дополнительными вычислительными блоками: к примеру, текстурным, который сразу решал все проблемы с фильтрацией текстур, которые были у S3. Также специально для своих видеокарт 3dfx выпустила новый API - Glide. Хотя он был основан на открытом OpenGL, из-за хорошей заточки под видеокарты Voodoo (использовались геометрические и текстурные преобразования), а также максимального упрощения (есть только то, что нужно для 3D-игр, даже цвет ужали до 16-битного: впрочем, качество было таким, что могло соперничать с 24-битным цветом) можно было получать существенно лучшую графику, чем у конкурентов:

А конкуренты не дремали - в этом же 1996 году компания ATI выпустила свою видеокарту Rage.

ATI Rage I и II - красные наступают

ATI появилась аж в 1985 году как производитель видеокарт для крупных игроков рынка - таких, как IBM и Commodore. Поэтому несколько странно, что первую 3D-видеокарту они выпустили позже других, более того - наделав массу ошибок. Судите сами - Rage I был основан на чисто 2D-ядре March64 с блоками для ускорения MPEG-1 и 3D. Понятное дело, что такая связка с 3D работала еще хуже, чем ViRGE, поэтому ATI в спешном порядке выпускает вторую версию видеокарты - Rage II, которая таки стала винрарной.

Во второй версии был доработан видеочип - добавили блоки фильтрации текстур, а также аппаратную возможность альфа-смешивания. Теперь он назывался March64 GUI и имел частоту в 60 МГц. Видеокарта могла работать не только с EDO, но и с SGRAM - эту память можно назвать дедушкой GDDR. Объем памяти составлял от 2 до 8 МБ, а пропускная способность была аж целых 480 Мб/с. Как и ViRGE, Rage имела поддержку всех текущих API, кроме Glide (ибо на тот момент он был еще закрыт), а драйвера были как под Windows (95 и NT, хотя под последнюю они были нестабильны - кто бы сомневался), так и под Mac OS 9, OS/2 и даже Linux! К слову, именно с этого момента началась «любовь» Apple и ATI/AMD, которая продолжается и по сей день - видеокарты Rage ставились в некоторые макинтоши того времени.

Nvidia RIVA 128 - зеленые наступают

Nvidia - крупнейший на данные момент производитель видеокарт, и многие думают, что у них долгая и интересная история. А вот и нет - компания появилась лишь в 1992 году, и уже в 1995 году представили свой первый видеочип NV1. Увы - первый блин был комом: поддержки Direct3D изначально не было, а когда Nvidia попыталась ее прикрутить, то получилось настолько плохо, что даже решили драйвера с ним не выпускать, и тихо забыть про этот чип. А ведь задумка была интересная - рендеринг был основан на квадратичном маппинге текстур: это было просто реализовать, но, увы, это не поддерживалось в Direct3D, а просить Microsoft сделать поддержку у Nvidia тогда не было возможности (да и в Direct3D были проблемы по-серьезнее, так что Microsoft в любом случае отказалась бы помогать).

Поняв, что из толпы выделяться не стоит, Nvidia сделала новую карточку RIVA 128, уже на ядре NV3 и с поддержкой OpenGL 1 и Direct3D 5. И это был чистый вин в 1997 году - кристалл GPU был выполнен по 350 нм техпроцессу и имел частоту аж в 100 МГц, память была новейшего стандарта SGRAM, ее было 4 МБ, а из-за 128-битной шины скорость оказывалась 1.6 Гб/с - рекорд по тем временам, Nvidia решила это даже в названии показать. Также видеокарта (а это была именно она, да и вообще - Nvidia не производила видеоускорителей) подключалась по новейшему порту AGP x1 (хотя были и варианты с «традиционным» PCI). Из-за быстрой памяти максимальное разрешение составляло 960х720 - к примеру, у Voodoo1 оно было «всего» 640х480.

В начале 1998 года Nvidia выпустила улучшенный вариант видеокарты - RIVA 128 ZX. Основным изменением стал вдвое увеличенный объем видеопамяти - до 8 МБ, а также подключение теперь было через интерфейс AGP x2. К слову - RIVA 128 стали первыми видеокартами, где видеочип стали дополнительно охлаждать - пока еще простым радиатором.

Увы - проблем тоже хватало. Будучи огорченными тем, что NV1 не работает толком с Direct3D, Nvidia бросили все силы на то, чтобы RIVA с ним работала хорошо. Это им удалось, но вот OpenGL оказался заброшен, так что все прелести новой видеокарты могли оценить только пользователи Windows. Вторая проблема - видеокарта не могла программно работать с движком Unreal, что вылилось в проблемы с играми, созданными на нем. Ну и последний камень в огород Nvidia - их видеокарты не могли поддерживать Glide, который игроделы к тому времени оценили и стали выпускать патчи в играм, серьезно улучшающие графику на видеокартах от 3dfx.

В итоге к 1998 году расклад на рынке таков: 3dfx и Nvidia - лидеры. С некоторым отставанием от них идет ATI, ну и совсем в конце плетется S3. Чем закончилось это противостояние - поговорим уже в следующей части статьи.


3d акселератор

3D акселераторы или 3Д ускорители для видеокарт: современные модели, основные функции, совмещение 2d и 3d акселераторов, OPENGL

3D-акселераторы, видеоадаптеры, способные ускорять операции трехмерной графики. Когда в роли двигателя прогресса выступили компьютерные игры, 2D-ускорители (см. Видеоакселераторы) почти исчерпали свои возможности, и эволюция видеокарт пошла по пути наделения их все более мощными средствами ускорения трехмерной машинной графики. Видеоадаптеры следующего поколения получили название 3D-ускорителей (синонимом является 3D-акселератор, а также часто встречаемое жаргонное «3Dfx» для обозначения всех 3D-ускорителей, а не только произведенных компанией 3Dfx Interactive). Вообще, 3D-ускорители существовали и раньше, но областью их применения было трехмерное моделирование и САПР, стоили они очень дорого (от 1 до 15 тыс. долларов) и были практически недоступны массовому пользователю.
Какие же действия ускоряет 3D-акселератор? В компьютере трехмерные объекты представляются с помощью геометрических моделей, состоящих из сотен и тысяч элементарных геометрических фигур, обычно треугольников. Задаются также пространственное положение источников света, отражательные свойства материала поверхности объекта, степень его прозрачности и т. п. При этом некоторые объекты могут частично загораживать друг друга, между ними может переотражаться свет; пространство может быть не абсолютно прозрачным, а затянутым туманом или дымкой. Для большего реализма необходимо учесть и эффект перспективы. Чтобы поверхность смоделированного объекта не выглядела искусственной, на нее наносится текстура - двухмерная картинка небольшого размера, передающая цвет и фактуру поверхности. Все перечисленные трехмерные объекты с учетом примененных к ним эффектов должны в конечном итоге быть преобразованы в плоское изображение. Эту операцию, называемую рендерингом, и выполняет 3D-ускоритель.
Перечислим наиболее распространенные операции, которые 3D-ускоритель выполняет на аппаратном уровне:
Удаление невидимых поверхностей. Обычно выполняется по методу Z-буфера, который заключается в том, что проекции всех точек трехмерной модели объекта на плоскость изображения сортируются в специальной памяти (Z-буфере) по расстоянию от плоскости изображения. В качестве цвета изображения в данной точке выбирается цвет той точки в Z-буфере, которая наиболее близка к плоскости изображения, а остальные точки считаются невидимыми (если не включен эффект прозрачности), так как они загорожены от нас самой первой точкой. Эта операция выполняется подавляющим большинством 3D-ускорителей. В большинстве современных ускорителей предусмотрены 16, 24 или 32-разрядные Z-буферы, размещаемые в видеопамяти на плате.
Закрашивание (Shading) придает треугольникам, составляющим объект, определенный цвет, зависящий от освещенности. Бывает равномерным (Flat Shading), когда каждый треугольник закрашивается равномерно, что вызывает эффект не гладкой поверхности, а многогранника; по Гуро (Gouraud Shading), когда интерполируются значения цвета вдоль каждой грани, что придает криволинейным поверхностям более гладкий вид без видимых ребер; по Фонгу (Phong Shading), когда интерполируются векторы нормали к поверхности, что позволяет добиться максимальной реалистичности, однако требует больших вычислительных затрат и в массовых 3D-ускорителях пока не используется. Большинство 3D-ускорителей умеет выполнять закрашивание по Гуро.
Отсечение (Clipping) определяет часть объекта, видимую на экране, и обрезает все остальное, чтобы не выполнять лишних расчетов.
Расчет освещения. Для выполнения этой процедуры часто применяют метод трассировки лучей (Ray Tracing), позволяющий учесть переотражения света между объектами и их прозрачность. Эту операцию с разным качеством умеют выполнять все 3D-ускорители.
Наложение текстур (Texture Mapping), или наложение плоского растрового изображения на трехмерный объект с целью придания его поверхности большей реалистичности. Например, в результате такого наложения деревянная поверхность будет выглядеть именно как сделанная из дерева, а не из неизвестного однородного материала. Качественные текстуры обычно занимают много места. Для работы с ними применяют 3D-ускорители на шине AGP, которые поддерживают технологию сжатия текстур. Наиболее совершенные карты поддерживают мультитекстурирование - одновременное наложение двух текстур.
Фильтрация (Filtering) и сглаживание (Anti-aliasing). Под сглаживанием понимается уменьшение искажений текстурных изображений с помощью их интерполяции, особенно на границах, а под фильтрацией понимается способ уменьшения нежелательной «зернистости» при изменении масштаба текстуры при приближении к 3D-объекту или при удалении от него. Известна билинейная фильтрация (Bilinear Filtering), в которой цвет пиксела вычисляется путем линейной интерполяции цветов соседних пикселов, а также более качественная трилинейная фильтрация с использованием MIP-карт (Trilinear MIP Mapping). Под MIP-картами (от лат. Multum in Parvum - «многое в одном») понимается набор текстур с разными масштабами, что позволяет в процессе трилинейной фильтрации выполнять усреднение между соседними пикселами и между соседними MIP-картами. Трилинейная фильтрация дает особенный эффект при наложении текстур на протяженный объект, удаляющийся от наблюдателя. Современные платы поддерживают трилинейную фильтрацию.
Прозрачность, или альфа-канал изображения (Transparency, Alpha Blending) - это информация о прозрачности объекта, позволяющая строить такие прозрачные и полупрозрачные объекты, как вода, стекло, огонь, туман и дымка. Наложение тумана (Fogging) часто выделяется в отдельную функцию и вычисляется отдельно.
Смешение цветов, или дизеринг (Dithering) применяется при обработке двух- и трехмерных изображений с большим количеством цветов на устройстве с меньшим их количеством. Этот прием заключается в рисовании малым количеством цветов специального узора, создающего при удалении от него иллюзию использования большего количества цветов. Пример дизеринга - применяемый в полиграфии способ передачи градаций серого цвета за счет нанесения мелких черных точек с различной пространственной частотой. В 3D-ускорителях дизеринг используется для передачи 24-битного цвета в 8- или 16-битных режимах.
Для поддержки функций 3D-ускорителя в играх и других программах существует несколько интерфейсов прикладного программирования, или API (Application Program Interface), позволяющих приложению стандартным образом использовать возможности 3D-ускорителя. На сегодняшний день существует множество таких интерфейсов, среди которых наиболее известны Direct3D (Microsoft), OpenGL (Silicon Graphics), Glide (3Dfx), 3DR (Intel), Heidi (Autodesk), RenderGL (Intergraph).
Интерфейс Direct3D компании Microsoft стал фактическим стандартом для большинства компьютерных игр; и большинство 3D-ускорителей укомплектованы Direct3D-драйверами. Однако стоит иметь в виду, что Direct3D поддерживается только в среде Windows 95/98, а уже в Windows NT большинство плат не поддерживает аппаратных функций ускорения.
Разработанный компанией Silicon Graphics для своих графических станций Iris GL интерфейс прикладного программирования OpenGL стал общепринятым стандартом для программ трехмерного моделирования и САПР. Используемый в профессиональных 3D-ускорителях, он позволяет очень точно описывать параметры сцены. OpenGL в настоящее время является открытым стандартом, контролируемым ассоциацией OpenGL Architecture Review Board, в которую помимо Silicon Graphics входят Digital, IBM, Intel, Intergraph, Microsoft и др. Несмотря на это, существует множество диалектов OpenGL. По распространенности в области компьютерных игр OpenGL уступает Direct3D.
Драйвер 3D-ускорителя может поддерживать OpenGL в двух режимах: усеченном MCD (Mini Client Driver) и полном ICD (Installable Client Driver). Драйвер MCD реализует только базовый набор операций, ICD- высокооптимизированный драйвер, который обеспечивает максимальное быстродействие. К сожалению, многие производители 3D-ускорителей, заявив о своей полной поддержке OpenGL, не обеспечивают ее даже на уровне MCD-драйвера.
Интерфейс Glide разработан компанией 3Dfx Interactive для производимых ею ускорителей Voodoo. Glide снискал широкое распространение среди производителей компьютерных игр, хотя, в отличие от OpenGL, Glide не является универсальным 3D API и поддерживает только возможности Voodoo.
В настоящее время наиболее известны 3D-ускорители на чипсетах nVidia GeForce (GeForce2, GeForce3, GeForce 4, GeForce FX), nVidia Riva TNT2, 3Dfx Voodoo3 (Voodoo4, Voodoo5), ATI Rage 128 Pro, ATI Radeon, Matrox G400 (G450), S3 Savage4 (Savage2000). На базе этих чипсетов производятся собственно видеокарты, причем не только перечисленными компаниями, а и компаниями, не выпускающими собственные графические процесоры, например ASUSTek, Creative Labs или Diamond Multimedia. Современные 3D-видеокарты обладают и функциями ускорения двухмерной графики. Исключением являются ускорители на базе 3Dfx Voodoo и Voodoo2, которые подключаются к выходу обыкновенной видеокарты перед монитором специальным внешним соединительным кабелем. Такое решение ухудшает качество 2D-изображения, и к тому же невозможна работа в оконном режиме. В 3Dfx Voodoo Banshee от этой схемы отказались, и она представляет собой полноценный 2D/3D-ускоритель.

Вторая половина 90-ых годов ознаменовалась появлением первых трехмерных графических ускорителей. Именно в этот период впервые заявили о себе такие ныне знаменитые компании как NVIDIA и ATI. О том, какими были первые 3D-ускорители, читайте в этом материале.

Введение

В первой части цикла материалов, посвященных развитию видеоадаптеров для настольных компьютеров, мы поговорили об эре IBM, первых двухмерных адаптерах и их эволюции на протяжении 80-ых годов прошлого века. Но к началу 90-ых качество 2D-графики достигло такого уровня, что больше уже придумывать было нечего, и инженеры переключились на новое, тогда еще неизведанное направление - обработку трехмерных изображений.

Интересно, что первые 3D-ускорители могли быть выполнены как отдельные самостоятельные платы и устанавливались в ПК вместе с двухмерными видеоадаптерами. На сегодняшний день таких решений уже нет, и за обработку 2D/3D-графики отвечает один графический процессор. Какими же путями шли разработчики, и что происходило в 90-ых годах, которые можно смело назвать эрой становления трехмерных видеокарт, мы и поговорим в этом материале.

Графический ускоритель S3 ViRGE

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

Считается, что среди первопроходцев в области 3D-видеокарт для массового потребителя стало решение компании S3 - ViRGE (Virtual Reality Graphics Engine), выпущенное в 1995 году. Напомним, что в этом же 1995 году была представлена и игровая приставка Sony PlayStation. Поэтому рынок персональных компьютеров буквально ожидал устройства, которые бы позволили ускорять 3D-графику в реальном времени. Если сравнивать с сегодняшними видеокартами, то характеристики ViRGE просто вызывают смех. К примеру, частота графического ядра составляла всего 66 МГц, шина памяти - 64-бит, а ее объем - 8 Мб. Плата устанавливалась в разъем PCI.

Видеокарта Diamond Stealth 3D 2000 на базе чипсета S3 ViRGE

ViRGE изначально был создан как 3D-ускоритель, однако в режиме 2D он работал куда лучше. При обработке трехмерного изображения его производительность моментально снижалась, в частности это наблюдалось при использовании билинейной фильтрации. Из-за скорости работы пользователи дали ему прозвище «деселератор» (от англ. decelerator - тормоз). Зато с двухмерной графикой он справлялся очень хорошо, например, обработка пользовательского интерфейса системы Windows была на высоте. Для комфортной игры пользователям приходилось использовать связку ViRGE и несколько позже вышедшую видеокарту Voodoo Graphics от компании 3Dfx.

Несмотря на все свои недостатки, ViRGE стала популярной видеокартой. От большинства подобных устройств она отличалась невысокой стоимостью. При этом в продаже находились не только референсные образцы, выполнение производителем чипов, но и видеокарты сделанные другими компаниями, такими как ASUS, AOpen, Diamond Multimedia и многими другими.

Графические ускорители ATI Rage и ATI Rage II

В 1996 году канадский производитель ATI представил свое собственное решение - 3D-видеокарту Rage и несколько позже Rage II. Первое поколение этих ускорителей было основано на процессоре Mach64, который был разработан в основном для обработки двухмерной графики. Спустя некоторое время он был доработан и обзавелся поддержкой 3D и функции ускорения видео в формате MPEG-1.

Видеокарта ATI RAGE II

Но наиболее яркий след в истории оставила именно видеокарта второго поколения - Rage II. Устройство оснащалось все тем же процессором Mach64, только немного переработанным, и способным работать с разными типами памяти: SDRAM, EDO и SGRAM. Объем памяти мог составлять 2, 4 и 8 Мб. Для памяти SGRAM частота составляла 83 МГц. При этом графический процессор работал на частоте 60 МГц.

Обновление архитектуры графического ядра позволило увеличить производительность видеокарт Rage II практически на 20 % в двухмерном режиме по сравнению с первой версией Rage. Так же Rage II могла поддерживать интерфейсы Direct3D и OpenGL, видео в формате MPEG-2 и некоторые полезные функции для рендеринга, например, фильтрация текстур, альфа-смешение и другие возможности. Более того, в видеокартах Rage II устанавливался специальный процессор ImpacTV, предназначенный для оцифровки ТВ-сигнала. Кроме использования в IBM-совместимых компьютерах, данный ускоритель мог быть установлен в некоторые компьютеры Apple Macintosh (модели Power Mac 6500 и G3).

Второе поколение видеокарт ATIRage было представлено тремя моделями: Rage IIC, Rage II+ и Rage II+DVD. Отличались они между собой частотой процессора, а так же частотой и типом памяти. Следовательно, каждая из моделей имела различную производительность. При этом стоит отметить, что младшая модель Rage II с 2 Мб памяти в среднем при обработке трехмерного изображения работала на 20 % быстрее модели ViRGE.

Тем не менее, видеокарты от компании ATI уступали в объемах продаж видеокартам от компании S3. Кроме того, видеокарты Rage II имели некоторые проблемы с драйверами для системы Windows. Как видно, история с нестабильностью драйверов ATI (теперь уже AMD) началась еще в середине 90-х годов.

Графический ускоритель 3Dfx Voodoo Graphics

В 1996 году появился легендарный ускоритель Voodoo Graphics (Voodoo 1) от компании 3Dfx Interactive, которая в то время была самым молодым участником рынка графических устройств. Компанию основали в 1994 году три выходца из компании Silicon Graphics. Сначала компания создавала процессоры для игровых автоматов, а первым устройством, где они были применены, стал бейсбольный симулятор ICE Home Run Derby. Позже были выпущены и другие игровые автоматы, среди которых можно отметить 3D Hockey и San Francisco Rush. Процессоры от компании 3Dfx отличались великолепной на то время 3D-графикой и поэтому разработками компании заинтересовались даже производители игровых приставок.

Компания 3Dfx изначально не планировала выходить на рынок персональных компьютеров. Но в 1996 году стоимость производительной памяти типа EDO значительно снизилась, и по этой причине 3Dfx удалось наладить выпуск высокопроизводительных устройств по довольно низкой цене. Так появился на свет видеоускоритель Voodoo Graphics.

Видеоускоритель Diamond Monster 3D Voodoo

Разработка первой видеокарты происходила при активном участии компании Diamond Multimedia, которая обеспечивала 3Dfx производственными мощностями. Графический чип и память Voodoo Graphics могли работать на частоте 50 МГц. При этом объем памяти EDO составлял 4 Мб, а интерфейс памяти был 64 бит. Но главное, что видеокарта Voodoo, в отличие от конкурентов, имела отдельный модуль для обработки 3D-текстур. В свою очередь такая архитектура позволяла ей работать значительно быстрее, чем VIRGE и Rage II, и при этом выдавать трехмерное изображение гораздо более высокого качества.

Из недостатков Voodoo было то, что эта видеокарта могла работать только с трехмерным изображением. Поэтому, чтобы обрабатывать 2D графику, необходимо было добавлять в систему еще один видеоадаптер. Именно поэтому во второй половине 90-х годов распространение получила система из видеокарт ViRGE и Voodoo. Первая отлично справлялась с двухмерным изображением, а вторая - с играми и иными приложениями, использующими обработку трехмерной графики.

Похожие на Voodoo видеокарты в то время выпускали PowerVR и Rendition. Только последние значительно уступали решениям компании 3Dfx и в качестве отображаемого изображения и в скорости. Поэтому в основном конкурировать Voodoo приходилось только с уже упомянутыми ранее видеокартами ViRGE и Rage II.

Примечательно, что вместе с ускорителем Voodoo компания 3Dfx выпустила новый программный интерфейс Glide. Glide, как альтернатива интерфейсам Direct3D и OpenGL, основывался на библиотеке OpenGL, либо другими словами, был урезанной версией интерфейса OpenGL. Стандарт OpenGL поддерживал множество различных функций, а инженеры компании 3Dfx собрали в Glide только то, что необходимо для визуализации трехмерной графики в реальном времени. При этом полная поддержка всех функций новой библиотеки видеокартами Voodoo с одной стороны существенно упрощала программирование, а с другой - накладывало некоторые ограничения на разработчиков: например, глубина цвета в приложениях не должна была превышать 16 бит.

Разработчики игр стали активно сотрудничать с компанией 3Dfx, а это в свою очередь привело к тому, что карты Voodoo стали преобладать на рынке ускорителей для персональных компьютеров. Под работу с видеокартой Voodoo были заточены практически все самые лучшие игры того времени.

Разница графики в игре Quake на картах VGA и 3Dfx очевидна

Еще больше укрепил лидирующие позиции адаптера Voodoo на соответствующем рынке драйвер MiniGL, который был выпущен специально для ускорения видео в новейшей игре Quake.

Графический ускоритель 3Dfx Voodoo Rush

В 1997 году компания 3Dfx выпустила новую модель видеокарты - Voodoo Rush. В общем, она была похожа на модель Voodoo Graphics, только кроме 3D-процессора на плате был размещен и чип, отвечающий за обработку двумерной графики от компаний Alliance Semiconductor и Macronix. При этом общий принцип работы ускорителя заключался в том, что к основному процессору обращение осуществлялось при помощи «двухмерного» чипа.

Видеокарта 3Dfx Voodoo Rush

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

Если быть точнее, то производительность видеокарты Voodoo Rush была на 10 % ниже Voodoo. При этом в некоторых случаях разница в скорости могла быть еще значительнее. Во многом благодоря этому видеокарты Voodoo Rush не получили коммерческого успеха и поэтому в течение года были убраны с прилавков магазинов. После этого компания 3Dfx вновь начала уделять внимание выпуску видеокарт, работающих только с трехмерной графикой.

Графический ускоритель NVIDIA RIVA 128

На сегодняшний день компания NVIDIA является одним из основных производителей видеокарт. Как и некоторые другие ведущие игроки рынка, она начала набирать обороты в середине 90-х годов, выпустив в 1997 году свое первое популярное решение - видеокарту RIVA 128.

Правда, первые шаги компании были отнюдь не безоблачными. NVIDIA была образована в 1993 году, и в первые годы существования все ее устройства не отличались успехом. К примеру, выпущенный в 1995 году процессор NVIDIA NV1 для обработки 3D использовал технологию квадратичного наложения текстур (QTM, Quadratic Texture Mapping). Этот тип рендеринга не поддерживал библиотеку Direct3D, которая была частью API Microsoft DirectX и активно использовалась при разработке игр для Windows-систем, поэтому процессор так и не получил популярности среди пользователей настольных ПК.

Надо отдать должное компании NVIDIA, которая быстро осознала свои ошибки и в короткие сроки смогла выпустить на рынок успешное решение на базе нового процессора NV3, больше известного под именем RIVA 128 (R eal-time I nteractive V ideo and A nimation). Эта видеокарта была полной противоположностью прежней модели NV1 и уже использовала полигональный рендеринг, так как разрабатывалась под работу с библиотеками Direct3D и OpenGL. Графический процессор в RIVA 128 был разработан по нормам 350-нанометрового технологического процесса, имел 3,5 миллионов транзисторов и частоту 100 МГц. Видеокарта получила память SGRAM размером 4 Мб, частотой 100 МГц и шириной шины 128 бит. В отличие от ускорителя Voodoo Graphics, RIVA 128 мог работать не только при помощи интерфейса PCI, но и новейшего в то время AGP 1x. Основное отличие RIVA 128 заключалось в том, что эта видеокарта объединяла в себе функции 2D- и 3D-ускорителя.

Видеокарта NVIDIA RIVA 128 с интерфейсом PCI

В 3D-ускорителе использовалась прогрессивная разделяемая память, что позволило обеспечить поддержку таких разрешений, как 800x600 и 960x720 пикселей в трехмерном режиме. К примеру, видеокарта Voodoo в 3D-режиме работала с разрешением 640x480 пикселей. По производительности и качеству графики RIVA 128 уступала Voodoo, однако ее цена была меньше. Именно благодаря цене и поддержке 2D и 3D режимов большинство OEM-производителей стали отдавать предпочтение решениям компании NVIDIA.

Видеокарта интерфейсом AGP

В 1998 году вышла доработанная версия видеокарты RIVA 128ZX, поддерживающая интерфейс AGP 2x, имеющая память 8 Мб вместо прежних 4 Мб. Кроме этого, частота процессора RAMDAC (цифро-аналоговый преобразователь) составляла 250 МГц, в то время как у модели RIVA 128 блок ЦАП работал на частоте 206 МГц.

Среди всех недостатков семейства RIVA 128, пожалуй, главным является их программная составляющая. В частности, видеокарта изначально была лишена поддержки библиотеки OpenGL, а первые драйверы с поддержкой этой спецификации получили только версии с чипом 128ZX. Более того, многие популярные игры того времени были ориентированы на библиотеку Glide, поддержкой которой в полной мере обладали только ускорители 3Dfx Voodoo. Благодаря этим факторам производительность RIVA 128 в некоторых играх была очень низкой. Кроме этого процессор RIVA 128 на аппаратном уровне не мог ускорять работу, набиравшего в то время обороты, игрового движка Unreal Engine.

Но, не смотря на все недостатки, компании NVIDIA все-таки удалось навязать 3Dfx соперничество в области производительных видеокарт, так как в то время RIVA 128 был единственным решением, способным составить хоть какую-то конкуренцию Voodoo.

Графический ускоритель 3Dfx Voodoo2

В 1998 году на рынке появился новый ускоритель компании 3Dfx - Voodoo2, ставший логическим продолжением версии Voodoo Graphics. После неудачи Voodoo Rush в 3Dfx решили продолжить выбранное направление. Процессор в Voodoo2, как и в Voodoo, мог обрабатывать только трехмерное изображение, но при этом получил еще один дополнительный текстурный модуль, значительно увеличивший производительность видеокарты. Это было очень заметно в таких играх, как Quake 2 и Unreal.

Игра Unreal (1998 год)

В остальном видеокарта Voodoo2 никаких революционных идей не принесла, хотя ее заявленные характеристики были вполне впечатляющими: процессор работал на частоте 90-100 МГц, объем памяти EDO DRAM равнялся 8 либо 12 Мб, а ширина шины памяти составляла 64 бит. В ускорителе была реализована поддержка трилинейной фильтрации текстур, при этом разрешение в 3D-режиме составляло 800x600 пикселей. В качестве интерфейса использовался проверенный временем, но уже неумолимо устаревающий PCI.

Видеоускоритель 3

Важно, что вместе с ускорителем Voodoo2 компанией 3Dfx была представлена знакомая многим из нас и эффективная по сей день технология SLI (Scan-Line Interleave), которая обеспечивала работу в системе одновременно двух ускорителей Voodoo2. Адаптеры распределяли нагрузку по обработке графики между собой следующим образом: одной карте была отведена задача обсчитывать верхнюю часть изображения, другой - нижнюю. Благодаря этому удалось увеличить максимальное разрешение 3D-режима до 1024x768 пикселей. Так же теоретически должна была увеличиваться и производительность всей системы.

Видеоускорители Voodoo2 в режиме SLI

Но на практике дела с использованием технологии SLI обстояли не так хорошо, как это выглядело на бумаге. Учитывая 3D-ориентированность Voodoo2, в системе нужно было обеспечить работу одновременно трех видеоустройств, что в некоторых случаях являлось проблемой из-за нехватки на материнской плате такого количества свободных отсеков. Также проблемы появлялись и на программном уровне: не все приложения могли стабильно работать при использовании технологии SLI. Именно поэтому в то время данная технология не получила широкого распространения и оставалась некоторое время в тени, пока спустя несколько лет уже компания NVIDIA раскрыла весь ее потенциал.

Графический ускоритель 3Dfx Voodoo Banshee

В конце 1998 года компания 3Dfx представила видеокарту Voodoo Banshee, которая стала логическим продолжением модели Voodoo Rush. На сей раз ускоритель получился более удачным. В Voodoo Banshee один текстурный модуль был заменен на процессор, который отвечал за обработку 2D-картинки.

Видеокарта 3Dfx Voodoo Banshee

Но, из-за отсутствия второго текстурного модуля карта Banshee проигрывала в производительности карте Voodoo2 там, где приходилось накладывать несколько текстур на один полигон. А в тех случаях, когда этого не требовалось, Banshee показывала такую же, как у Voodoo2 производительность, благодаря более высокой тактовой частоте процессора. Если же говорить о 2D-ускорителе, то он отлично справлялся со своими задачами и по скорости работы практически не уступал устройствам от компаний NVIDIA , ATI и Matrox.

Графический ускоритель NVIDIA RIVA TNT

После успешного запуска карты RIVA 128 компания NVIDIAрешила не уменьшать обороты и подготовить для Voodoo2 достойного конкурента в лице карты RIVA TNT. Ее процессор с кодовым названием NV4 был создан в соответствии с 350-нанометровым технологическим процессом, имел 7 миллионов транзисторов и частоту 90 МГц. Правда, изначально компания планировала установить частоту на уровне 110 МГц, но так как тестовые образцы сильно нагревались, то было принято решение немного снизить эту планку.

Видеокарта RIVA TNT

В адаптере использовалась память SDRAM общим объемом 16 Мб, частотой 110 МГц и шириной шины 128 бит. По сравнению с Voodoo2, RIVA TNT, была более функциональной, в частности она поддерживала: цвет глубиной 32 бита, текстуры с разрешением 1024x1024 пикселей, три типа фильтрации (билинейная, трилинейная и анизотропная), а также технологию T wiN -T exel (отсюда название карты), позволяющую за один такт в режиме мультитекстурирования накладывать две текстуры на пиксел. Благодаря последней была увеличена скорость заполнения кадра практически на 40%.

Однако эти выдающиеся характеристики все ровно не позволили RIVA TNT обойти Voodoo2 как по показателям скорости, так и по популярности. Во многом ситуация была похожа на ту, что сложилась с ее предшественницей - RIVA 128. Во многих играх в то время продолжали активно использоваться библиотеки Glide, которые полностью официально могли поддерживать только видеокарты серии Voodoo. Зато в других приложениях видеокарта RIVA TNT уступала Voodoo2 совсем чуть-чуть, и даже выигрывала у нее по качеству изображения, так как могла поддерживать 32-битный цвет.

Позже компания NVIDIA выпустила менее производительные версии RIVA TNT под названием Vanta. Конечно, характеристики последней были немного ниже, чем у RIVA TNT: более низкие частоты ядра и памяти, урезанная до 64 бит шина памяти. В основе их лежали дефектные чипы, нестабильно работающие на более высоких скоростях. Благодаря такому безотходному производству компании удалось занять нишу менее производительных устройств, продававшихся по низкой цене. Видеокарту Vanta стали предпочитать производители OEM-компьютеров, что, несомненно благоприятно сказывалось на финансовых показателях NVIDIA.

Интересно, что для линейки видеокарт RIVA TNT компания NVIDIA стала впервые выпускать драйверы собственной разработки под названием Detonator. В то время все устройства NVIDIA отлично могли работать только с системами Intel, а с системами AMD постоянно возникали проблемы. При этом ускорители Voodoo отлично справлялись в обоих случаях, так что ситуацию надо было исправлять.

В итоге, использование собственных драйверов Detonator с определенной оптимизацией позволило на целых 30 % увеличить производительность RIVA TNT в игре Quake 2 на компьютерах с процессорами AMD. Кроме того, скорость видеокарт NVIDIA была увеличена и в различных DirectX- и OpenGL-приложениях. Также была решена проблема совместимости RIVA TNT с материнскими платами различных производителей.

Графический ускоритель Matrox G200

1998 год оказался урожайным для рынка видеокарт. Помимо 3Dfx и NVIDIA, свою 3D-видеокарту под названием G200 представил канадский производитель Matrox. В начале 90-х годов компания Matrox была оной из лидеров по производству 2D-видеокарт, но с течением времени начала отставать от новоиспеченных конкурентов.

Видеокарта Matrox G200 выдавала одно из самых качественных изображений

Архитектура карты G200 поддерживала множество новых технологий. Например, технология SRA (Symmetric Rendering Architecture) позволяла считывать и записывать графические данные в системную память, что значительно увеличивало скорость работы. Сущность технологии VCQ (Vibrant Color Quality) заключалась в том, что в процессе визуализации применялся цвет глубиной 32 бит независимо от того, какая была глубина цвета окончательного изображения. К примеру, если выходное изображение имеет цвет 16 бит, все ровно все операции проводятся с использованием цвета 32 бит и только в конце используют 16 бит.

Считается, что среди всех видео ускорителей того времени модель G200 имела самый качественный RAMDAC и соответственно могла выдавать самую качественную картинку. Для высокой производительности в режиме 2D применялась архитектура шины памяти DualBus, которая предусматривала две 64-битные шины и два командных конвейера. Ускоритель G200 использовал шину AGP, память SGRAM, объем которой мог составлять 8 либо 16 Мб, и поддерживал довольно высокие разрешения. К примеру, в 3D-режиме он мог работать с разрешением 1280x1024 пикселей и цветом 32 бит. Производительность видеокарты была на достаточно высоком уровне - G200 совсем чуть-чуть уступала лидерам в лице Voodoo2 и RIVA TNT.

Но, одной из проблем G200 было программное обеспечение. Впрочем это было характерно для многих видеокарт того времени. Для запуска большинства компьютерных игр видеокарта использовала специальный драйвер OpenGL-to-Direct3D, из-за которого значительно снижалась производительность устройства. При этом программисты обещали исправить ситуацию в кратчайшие сроки, но решить все проблемы удалось лишь уже в следующем поколении графических адаптеров, появившемся на рынке в 2000 году.

Стоит отметить, что за время своего существования серия G200 успела подвергнуться небольшому апгрейду. Процессор был переведен на новый 250-нанометровый технологический процесс, что позволило уменьшить энергопотребление и тепловыделение. Обновленные ускорители назывались G200A. Также были версии G200A с увеличенными частотами, получившие название G250. Но как уже было сказано выше, плохая производительность в играх из-за недоработанных драйверов не позволила видеокартам Matrox тягаться с лидерами рынка. Хотя для тех, кто использовал компьютер преимущественно в двухмерных приложениях - это был отличный выбор.

Графический ускоритель Intel i740

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

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

Видеокарта Intel i740 с интерфейсом AGP

Что же касается технических характеристик Intel i740, то адаптер был создан с использованием 350-нм технологии, частота ядра и видеопамяти составляла 66 МГЦ, ширина шины памяти - 64 бита, максимальный объем памяти типа SDRAM или SGRAM - 16 Мб, RAMDAC - 205 МГц. В качестве интерфейса использовалась шина AGP или PCI.

Видеокарта поддерживала билинейное и трилинейное текстурирование, двойную буферизацию, декодирование DVD/MPEG-2 на аппаратном уровне. Максимальное разрешение в 16-битном цвете составляло 1280х1024 точки, а в 8-битном - 1600х1200.

Сразу после анонса i740 в СМИ поползли слухи о низкой производительности новинки. И действительно, скорость обработки 3D оказалась приблизительно на уровне RIVA 128, и гораздо ниже, чем у прямых конкурентов - RIVA TNT, Voodoo2, Voodoo Banshe и даже Matrox G200. Не прибавляло популярности i740 и ее платформозависимость. Более менее нормальную производительность от карты можно было ожидать только в системах с быстрой оперативной памятью, где ее объем составлял не менее 64 Мб.

В апреле 1999 года, Intel попыталась исправить ситуацию, представив усовершенствованные решения i752 и i754. Но все оказалось впустую. Выход модели i754 был отменен перед самым запуском, а вариант i752 был выпущен совсем небольшим тиражом и вскоре снят с производства из-за неудовлетворительной производительности. В итоге сильная конкуренция со стороны NVIDIA, 3Dfx, Matrox и ATI вынудила Intel отказаться от дальнейшей разработки дискретных решений и сосредоточиться в будущем на бюджетной встроенной графике.

Графический ускоритель S3 Savage3D

Наконец, в том же 98-ом свою попытку выйти на рынок 3D-видеокарт решила осуществить компания S3 Graphics. Хоть она и была «первопроходцем» в этом сегменте (вспомним S3 ViRGE), но постоянно оставалась в тени остальных производителей. В 1998 году на специальной конференции E3 была представлена новый графический чип и однаименная карта Savage3D. Этот ускоритель, по сути, был первым разработанным с нуля решением S3, после модели ViRGE.

Видеокарта S3 Savage 3D

Видеокарта Savage3D поддерживала фирменный алгоритм компрессии текстур S3TC, однопроходную трилинейную фильтрацию, видео в режиме MPEG-2 и имела ТВ-выход. По своим характеристикам она практически не уступала топовым устройствам того времени. Так в Savage3D использовалась пропускная шина памяти 64 бит, поддержка до 8 Мб памяти, видеоядро с частотой 125 МГц, 250 МГц RAMDAC, интерфейс AGP 2x. В режиме 2D она могла работать с разрешением 1600x1200 пикселей и частотой обновления 85 Гц.

С такими параметрами от Savage3D, многие ожидали высоких результатов и хорошего качества изображения в играх. На практике же этот графический адаптер не смог обойти даже середнячка Voodoo Banshee. Основной причиной такого провала многие называли поддержку недостаточного объема памяти, невысокую пропускную способность шины памяти и в первую очередь - плохие драйверы.

Тем не менее, Savage3D все же заняла свою нишу на рынке видеоплат, составив конкуренцию RIVA TNT Vanta в области бюджетных устройств. Многие офисные решения тех времен оснащались именно картами Savage3D, которые обеспечивали очень приличное 2D-изображение за небольшую стоимость.

Графические ускорители 3Dfx Voodoo3

Графический адаптер Banshee в 90-x годах оказался не последним в семействе адаптеров Voodoo. В 1999 году появилась видеокарта нового поколения - Voodoo3. При этом второе поколение видеокарт Voodoo на то время все еще обеспечивало приемлемую производительность в играх, поэтому компания оставила их в продаже, снизив на них цены.

По своей архитектуре Карта Voodoo3 была чем-то похожа на решения Rush и Banshee, так как совмещала двухмерные и трехмерные ускорители на одной плате. Процессор в Voodoo3 был создан при помощи 250-нанометровой технологии. В минимальной конфигурации частота ядра и памяти равнялась 143 МГц, использовалась память типа SGRAM объемом 32 Мб. Видеокарта вновь могла поддерживать только 16-битную глубину цвета, хотя в тот момент уже было выпущено несколько игр, которые работали в 32-битном режиме. Наибольшее разрешение для 3D режима составляло 1600x1200 пикселей, в то время как видео могло воспроизводиться с разрешением вплоть до 2046x1536 пикселей при частоте обновления кадров 75 Гц.

Видеокарта Voodoo3 2000 с интерфейсом PCI

Интерфейсами для нового адаптера служили разъемы PCI либо AGP 2x. Как и предшествующие модели, карта Voodoo3 поддерживала режим SLI - всего система могла принять на борт до четырех видеокарт для совместной работы.

Примечательно, что поколение видеокарт Voodoo3 было решено выпускать в нескольких модификациях. Всего существовало три варианта Voodoo3 с индексами 2000, 3000 и 3500, имевшие различные рабочие частоты ядра, памяти и блока RAMDAC. Так, у Voodoo3 2000 ядро и память работали на частоте 143 МГц, а блок RAMDAC - на частоте 300 МГц. Модель Voodoo3 3000 имела частоты 166 МГц (ядро и память) и 350 МГц (блок RAMDAC). Для топовой модели с индексом 3500 были характерны частоты 183 и 350 МГц, а так же наличие на плате встроенного ТВ-тюнера.

Видеокарта c интерфейсом AGP и встроенным ТВ-тюнером

Несколько забегая вперед, скажем, что, к сожалению, для многих пользователей, видеокарта Voodoo3, оказалась последним успешным решением компании 3Dfx. Именно после выпуска этого адаптера ее эпоха стала стремительно идти к своему завершению.

Графические ускорители NVIDIA RIVA TNT2

А вот у компании NVIDIA дела шли совсем иначе. В 1999 году была выпущена видеокарта RIVA TNT2. Надо отметить, что инженеры компании не стремились создать совершенно новый ускоритель. TNT2 просто доработали и устранили некоторые ошибки предшественницы. Главное, что процессор NV5 создавался уже согласно 250-нанометровому технологическому процессу, вместо 350-нм. Это позволило увеличить частоту ядра видеопроцессора до 125-150 МГц (против бывших 90 МГц). Помимо этого была добавлена поддержка интерфейса AGP 4x и текстур с разрешением 2048x2048 пикселей, расширен объем устанавливаемой видеопамяти до 32 Мб SDRAM, переработан блок рендеринга и увеличена частота RAMDAC до 300 МГц, что позволило видеокартам работать в более высоких разрешениях. Ширина шина памяти в 128 бит и поддержка 32-битного цвета остались неизменными.

Топовая видеокарта TNT2 Ultra

Как и конкуренты в случае с Voodoo3, разработчики приняли решение выпустить RIVA TNT2 в нескольких вариантах. Всего компания выпустила четыре модификации карты TNT2: первая - стандартная, вторая - топовая (TNT2 Ultra), третья и четвертая - урезанные (TNT2 M64 и TNT2 Vanta). Модификация Ultra отличалась от стандартной только лишь увеличенными частотами. Если быть точнее, то частота ядра и памяти у TNT2 Ultra составляли 150 и 183 МГц соответственно, против 125 и 150 МГц у обычной версии TNT2. У последних двух модификаций - M64 и Vanta, использовались в большей степени отбракованные кристаллы, и как в случае с TNT, была уменьшена шина до 64 бит, а так же урезаны частоты ядра и памяти. При этом Vanta являлась самым урезанным вариантом с наиболее низкими частотами. Но, опять же, эти ускорители стали очень популярными у OEM-производителей, которые с большим успехом использовали название TNT2 для привлечения покупателей.

Урезанная видеокарта TNT2 M64

В целом видеоускоритель TNT2 стал очень успешным решением компании NVIDIA на то время, хотя и не смог выбиться в абсолютные лидеры. Виной тому являлось то, что большинство разработчиков игр основной упор все еще делали на библиотеку Glide, и поэтому видеокарта Voodoo3 оставалась лидером на рынке ускорителей. Но с каждым разом становилось очевидным, что решения компании NVIDIA проигрывают по производительности продуктам от 3Dfx совсем немного, но при этом предлагают более обширную функциональность.

Графические ускорители ATI Rage 128 и ATI Rage 128 Pro

Пока NVIDIA и 3Dfx были заняты борьбой за лидирующие позиции, другие менее заметные производители тихо разрабатывали и выпускали собственные графические устройства, пытаясь противостоять топовым продуктам. Во втором квартале 1999 года компанией ATI на рынок были выпущены видеокарты ATI Rage Fury, ATI Rage Magnum и ATI Xpert 128 на базе нового чипа Rage 128, которые по предположениям разработчиков и маркетологов должны были составить конкуренцию RIVA TNT.

Видеокарта ATI Rage 128

Устройства получили процессор, созданный согласно 350-нанометровому технологическому процессу с шиной памяти 128 бит, частоту ядра и памяти - 103 МГц, частоту RAMDAC - 250 МГц, объем памяти - 32 Мбайт (16 Мбайт у Xpert 128) и очень хорошую функциональность. Модель RageFury имела дополнительно гнездо для подключения к телевизору (TV-Out).

Чип Rage 128 наделили новой технологией суперскалярного рендеринга (SSR - Super Scalar Rendering), который осуществлял обработку двух пикселей одновременно в двух конвейерах. Так же новая разработка поддерживала однопроходную трилинейную фильтрацию и аппаратное ускорение DVD-видео. Как и RIVA TNT, Rage 128 поддерживал цвет глубиной 32 бит и довольно успешно конкурировал с продуктом NVIDIA в данном режиме. Ко всему прочему у Rage 128 была поддержка технологии Twin Cache Architecture, позволяющая объединять кэш-память пикселей и текстур для повышения ширины пропускания.

Видеокарта ATI Rage Pro

Поздней осенью 1999 года, в качестве ответа на выход TNT2 Ultra, несколько запоздало, на рынок были выпущены платы с модифицированным чипсетом Rage128 Pro, который имел повышенные тактовые частоты работы ядра (118 МГц) и памяти (140 МГц). Но, как не старались канадские разработчики, видеокарты ATI все еще отличалась невысоким уровнем обработки трехмерного изображения, и в первую очередь из-за ужасного качества драйверов. К другим недостаткам можно было отнести и низкий уровень сжатия текстур. В результате большинство пользователей отдавали свои предпочтения конкурентным решениям NVIDIA и 3Dfx, а ATI вновь пришлось довольствоваться на рынке видеокарт ролью второго плана.

Графический ускоритель S3 Savage4

В 1999 году компания S3, пытаясь не выпасть из обоймы основных производителей видеокарт, выпустила обновленную версию чипа Savage3D, под названием Savage4. Новинка получила процессор, созданный по более тонкому 250-нанометровому технологическому процессу с поддержкой частот от 110 до 143 МГц (Savage4 Pro). Объем поддерживаемой памяти типа SDRAM, работавшей на частотах 125 - 140 МГц, возрос до 32 Мб. Также плата получила современный интерфейс AGP 4x, RAMDAC с частотой 300 МГц и максимальное разрешение в 3D - 1920x1440 пикселей. А вот шина памяти, к сожалению, так и осталась равной 64 битам, что было очень мало для ускорителя высокого уровня.

Видеокарта на базе чипсета S3 Savage4 Pro

Savage4 поддерживала технологии однопроходного мультитекстурирования и трилинейной фильтрации, а также фирменный метод сжатия текстур S3TC. В отличие от предшественника, Savage4 не имела ТВ-декодера - вместо него был использован контроллер DVI и появился DVD-декодер.

По мнению многих экспертов, компания S3 провела граммотную работу над ошибками - чипсет Savage4 получился хорошим и был отлично спроектирован. Но как всегда все испортили бездарные драйверы и беспомощные программисты, не способные написать нормальное ПО для нового продукта S3. Как результат - по производительности в 3D, видеокарта Savage4 уступала урезанной TNT2 M64. Тем более что уж было говорить о лидерах - ускорители Voodoo3 и TNT2 работали практически в четыре быстрее.

Графический ускоритель NVIDIA GeForce 256

В начале осени 1999 года произошло знаковое событие - вышла новая серия видеокарт компании NVIDIA - GeForce 256, в основе которых был положен чипсет с кодовым названием NV10. Таким образом, многими любимый бренд GeForce, в 2014 году отмечает свое пятнадцатилетие. И не смотря на то, что за все время существования этого бренда было выпущено множество удачных продуктов, одной из ключевых ролей в его становлении принадлежит именно первому поколению видеокарт с индексом 256.

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

И вот свершилось - NVIDIA объявила о выходе своего новейшего графического процессора, который был впервые назван ныне всем известной аббревиатурой - GPU (Graphics Processing Unit). На тот момент под этим названием подразумевался одночиповый графический процессор, который мог обрабатывать до десяти миллионов полигонов в секунду и имел дополнительные встроенные узкоспециализированные сопроцессоры.

Основным нововведением в карте GeForce 256 можно назвать появление, встроенного в основное ядро, дополнительного процессора освещения T&L (Transform and Lightning), который отвечал за трансформации объектов и обработку освещения в режиме реального времени. Раньше эти функции возлагались на центральный процессор. Благодаря движку T&L видеокарты GeForce 256 в играх показывали большую производительность, чем их предшественники. Кроме того, этот движок позволил компании открыть для себя новый сегмент рынка - она начала производить ускорители для систем автоматизированного проектирования под названием Quadro.

Изначально компания планировала создавать видеокарты NV10 по 180-нанометровому технологическому процессу, но так как он не был до конца освоен к моменту запуска новых ускорителей, то производство было налажено в соответствии 220-нанометровыми нормами. Из-за этого тактовая частота ядра была не очень высокой и составляла 120 МГц. Конечно, компания планировала достичь более высоких частот, но возможный перегрев не давал перейти GPU эту отметку. Правда здесь стоит учесть, что GeForce256 имел другую архитектуру, чем TNT2 и вместо двух конвейеров рендеринга с двумя текстурными блоками, имел четыре конвейера, каждый из которых был оснащен персональным текстурным блоком. По идее это должно было дать GeForce более высокую производительность рендеринга при меньших тактовых частотах.

Видеокарта NVIDIA GeForce 256 с демонтированной системой охлаждения

Роль памяти играли чипы SGRAM либо DDR. Частота памяти SGRAM составляла 166 МГц, а DDR - 300 МГц. Шина памяти была 128 бит и практически все видеокарты GeForce 256 оснащались интерфейсом AGP 4x. Впервые для этих графических адаптеров было обязательным использование кулера (вентилятора) для охлаждения графического процессора, который очень сильно нагревался по сравнению с предшественниками. Из интерфейсов программирования приложений поддерживались DirectХ 7 и OpenGL 1.2.

GeForce 256 совершила огромный скачок вперед в работе с системами на основе недорогих центральных процессоров, из-за перекладывания части расчетов с CPU на GPU. В таких системах ее производительность по сравнению с предыдущим поколением ускорителей (Voodoo3 и TNT2) была больше почти на 50 %. Но с более мощными процессорами преимущество GeForce 256 оказывалось незначительным.

В целом стоит отметить, что в очень редких случаях новой видеокарте удавалось полностью раскрыть возможности движка T&L, поэтому во многих играх все еще лучше выглядели ускорители, которые поддерживали интерфейсы MiniGL и Glide. Ко всему прочему GeForce 256 не показывал ничего выдающегося и в 2D-приложениях. Там его скорость была не больше, чем у конкурентов и предшественников. В итоге ускоритель GeForce 256 многим запомнился как неоднозначный продукт. С одной стороны, он имел революционные нововведения, повлиявшие в будущем на архитектуру всех видеокарт, а с другой - во многих случаях не показывал особо выдающихся результатов.

Графический ускоритель ATI Rage Fury Maxx

Выход в свет видеокарт на базе чипсета Rage 128 и впоследствии его улучшенной версии Rage128 Pro, не принес компании ATI практически никаких дивидендов. Ее решения так и не смогли составить конкуренцию продуктам NVIDIA и 3Dfx. Но канадцы решили не сдаваться и в начале 2000-ого года представили общественности технологию Multiple ASIC Technology (MAXX).

MAXX была чисто программным решением, позволяющим для выполнения одной задачи использовать одновременно сразу два графических процессора. Сама по себе эта идея была не нова, так как 3Dfx к тому моменту уже вовсю использовала собственную технологию SLI для объединения двух ускорителей, что позволяло поднимать производительность видеоподсистемы более чем в полтора раза. Правда в отличие от конкурента, ATI решила объединить мощь двух процессоров на одной плате, а воплощением этой инженерной мысли стала видеокарта ATI Rage Fury Maxx.

Видеокарту наделили двумя чипами Rage 128 Pro, каждый из которых в своем распоряжении имел память объемом 32 мбайта. Таким образом, общий объем памяти на плате составил 64 Мб. По сути ATI Rage Fury Maxx представляла собой два графических адаптера, размещенных на одной печатной плате.

В двухмерной графике по своим характеристикам и скорости работы новое решение ничем не отличалось от одночипового варианта Rage Fury Pro, так как в этом режиме всегда был задействован только один видеопроцессор. Основная же ставка была сделана на 3D - ATI позиционировала новинку как видеоадаптер для «крутых» геймеров.

Видеокарта ATI Rage Fury Maxx с двумя видеопроцессорами

Но как уже часто случалось, из-за извечных проблем с программным обеспечением производительность Fury Maxx все равно оставляла желать лучшего. Резкие перепады выдаваемой частоты кадров в высоких разрешениях, артефакты при прорисовке текстур и другие проблемы подпортили впечатление от новинки. В итоге, ATI вновь не удалось занять топовое место на рынке видеокарт и оставалось довольствоваться ролью второго плана.

Графические ускорители 3Dfx Voodoo5

Тем временем компанией 3Dfx был подготовлен ответ на решения NVIDIA, которые все больше и больше завоевывали популярность среди геймеров. Речь идет о чипе VSA-100 (Voodoo Scalable Architecture), являющемся прямым наследником серии карт Voodoo3. При этом к тому моменту компания 3Dfx немного поменяла концепцию создания видеокарт. Отныне было решено сделать ставку на многопроцессорные решения для различных сегментов рынка. Теоретически видеокарта могла уместить 32 чипа VSA, причем показатели производительности должны были увеличиваться прямо пропорционально. Напомним, что 3Dfx уже имела в своем арсенале технологию SLI, поэтому определенные наработки для создания многопроцессорных решений у компании имелись.

Впервые чип VSA-100 был использован в видеокарте Voodoo5 5500. Несмотря на то, что компания уже могла создавать решения в соответствии с 220-нанометровыми нормами, в ее основе было два кристалла, созданных по 250-нанометровому процессу и содержащих по 14 миллионов транзисторов. Графический процессор и память работали на частоте 166 МГц. Объем памяти составлял 64 Мб типа SDRAM. Пропускная способность шины памяти была 128 бит. Видеокарты Voodoo впервые стали поддерживать 32-битный цвет в 3D режиме. Кроме того, процессор поддерживал текстуры с разрешением 2048x2048 пикселей, для сжатия которых использовались алгоритмы DXTC и FXT1. Еще одним преимуществом ускорителей Voodoo5 являлась высокая производительность в режиме сглаживания.

Видеокарта 3 Dfx Voodoo5 5500 с интерфейсом AGP

Видеокарты Voodoo5 имели различные интерфейсы, среди которых были PCI, AGP и версия для компьютеров Mac. По производительности они были впереди конкурирующих решений в лице ATI Rage 128 Fury MAXX и GeForce 256. Но, к огромному сожалению компании, успешным данный ускоритель не стал, так как 3Dfx банально опоздала с запуском новой серии. Не смотря на то, что анонс новых чипов VSA-100 состоялся осенью 99-ого года, платы на их основе добрались до реального потребителя лишь летом 2000-ого. В результате компания 3Dfx около полугода не имела в своем арсенале современных решений, давая тем самым карт-бланш новым графическим адаптерам NVIDIA. Кроме этого, продажи карт годичной давности Voodoo3 стали естественным образом снижаться, что привело к значительному ухудшению финансового положения компании.

Заключение

В 90-ых произошел бурный рост количества компаний, которые занялись разработкой и производством дискретных видеокарт для настольных компьютеров. С учетом постоянного роста темпа развития 3D-технологий, новые решения «сыпались» на потребителей одно за другим. Из-за высокой конкуренции многим компаниям приходилось предпринимать невероятные усилия, чтобы удержаться на плаву и не выпасть из общей гонки. В конечном счете удалось это не всем: кто-то окончательно сосредоточился на бюджетном сегменте, кто-то попросту обанкротился, а кто-то, воспользовавшись ошибками конкурентов, наоборот, открыл для себя новые рынки сбыта. Но даже тем, кто оказался на вершине, нельзя было расслабляться ни на секунду. В любой момент ситуация могла измениться и еще вчерашние фавориты могли оказаться на грани краха, как это произошло с компанией 3Dfx, но о том как развивались события в начале нового тысячелетия мы поговорим уже в следующем материале.

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

Изображения трехмерных объектов на экране монитора

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

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

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

Вершины. Задают местоположение объекта в трехмерном пространстве; само их по-ложение задается координатами X, Y и Z.

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

Текстуры. Это двухмерные изображения, или поверхности, налагаемые на примитивы. Точки текстуры называются текселами.

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

геометризация - это определение размеров, ориентации и расположения примитивов в пространстве и расчет влияния источников света.

растеризация - преобразование примитивов в пиксели на экране с нанесением нужных затенений и текстур.

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

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

Последовательность этапов создания трехмерных изображений

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

Преобразование и отображение. Программа преобразует трехмерные координаты в про-странстве (3D-координаты) в координаты на плоскости (2D-координаты) и использует тек-стуры. Работа в основном выполняется аппаратурой.

Описание этапов создания трехмерных изображений

Вычисление координат вершин. Процессор вычисляет позицию каждой вершины для каж-дого объекта в мировой системе координат.

Отсечение краев. Изображаемые объекты могут не вписываться в пределы видимой области. Выступающие части должны быть удалены, поэтому процессор отсекает края объекта по границам рисуемой области - по одному многоугольнику за один раз.

Отбрасывание скрытых поверхностей. Изображать невидимые поверхности излишне. Процессор должен распознавать видимые поверхности и отбрасывать невидимые.

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

Закрашивание поверхностей. Как только мы получаем набор двумерных многоугольников, мы можем красить поверхность каждого из них теневой картой текстуры.

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

Большинство современных наборов микросхем 3D-акселераторов обеспечивают выполнение следующих функций растеризации:

Растровое преобразование. Определение того, какие пиксели экрана покрываются каждым из примитивов.

Обработка полутонов. Цветовое наполнение пикселей с плавными цветовыми пере-ходами между объектами.

Образование текстуры. Наложение на примитивы двухмерных изображений и по-верхностей.

Определение видимости поверхностей. Определение пикселей, покрываемых бли-жайшими к зрителю объектами.

Анимация. Быстрое и четкое переключение между последовательными кадрами дви-жущегося изображения.

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

Технологии трехмерной графики

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

Мипмэппинг

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

Затуманивание

Затуманивание - это имитация газа или тумана в играх.

Затенение Гуро

Затенение Гуро - интерполяция цветов для сглаживания неровностей окружностей и сфер.

Альфа-смешивание

Альфа-смешивание (alfa-blending - техника создания эффекта полупрозрачности) - это одна из первых технологий трехмерной графики, используемая для создания реалистичных объектов, например "прозрачного" дыма, воды и стекла. Многие другие функции, в которых нужно объединять пикселы, такие как прозрачные текстуры, мультитекстурирование, антиалиасинг, также используют альфа-смешение.

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

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

Наиболее часто, используются в современных ускорителях трехмерной графики технологии, использующие следующие методы и средства:

Буфер шаблонов

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

Z-буферизация

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

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

Эту идею можно реализовать аппаратно. Решение, состоит в создании параллельно с памятью дисплея другого массива памяти, называемого Z-буфером. Каждый раз при записи пикселя вычисляется его значение Z. При этом записываются только пиксели с большими значениями Z и обновляются расстояния в Z-буфере. Все остальные пикселы игнорируются. Таким образом, в каждой ячейке Z-буфера хранится расстояние по оси Z (вглубь экрана) для рисуемого пиксела, поэтому легко проверить, затенен ли новый записываемый пиксель или нет. К сожалению, Z-буфер требует дополнительной памяти, и, чем большая точность нужна для значений Z, тем больше памяти нужно для запоминания значений Z. Если используется разрешающая способность 640х400 и значения Z в виде 16-разрядных (двухбайтовых) чисел, то нужно иметь 0,5 мегабайта памяти только для Z-буфера. С помощью Z-буфера можно легко решить, какие объекты расположены на переднем плане, но при этом понадобится вдвое больший объем видеопамяти. Почти все современные 3D-ускорители имеют 24-х или 32-битную

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

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

Можно сократить работу процессора, проявив небольшую хитрость при упорядочении объектов по их координатам Z. Если какая-то поверхность полностью скрыта другими или повёрнута от наблюдателя, то ее совсем не нужно рисовать первой. А если мы исключили операцию рисования, то многоугольник не надо заполнять картой текстуры, в связи с этим уменьшается количество работы для процессора.

Улучшенные технологии наложения текстур

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

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

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

В реальном мире источник света обычно точечный, поэтому освещенность поверхности неравномерна, она увеличивается в направлении источника. Поверхности также имеют различную отражающую способность, что сказывается на используемых текстурах. Блестящая металлическая искривленная поверхность отразит точечный источник света в точке (точка, называется зеркальным отражением точки, в которой находится точечный источник света), местоположение которой определяется законами геометрической оптики. Математический аппарат для выполнения этой работы хорошо известен, но процессоры и графические видеоплаты должны иметь для выполнения этих функций достаточную производительность. Для экранных форматов с более высокой разрешающей способностью вычислений требуется еще больше (для разрешающей способности 640х400 требуется вчетверо больше вычислений, чем для 320х200). Подобные форматы не могли поддерживаться устаревшими моделями процессоров, поэтому они появились только с приходом быстродействующих процессоров типа Pentium. Для обновления экрана при быстром перемеще-нии каркасов и карт текстуры по экрану при высокой частоте кадров требуется не только большая скорость вычислений, но и высокая пропускная способность канала видеоплаты. Вот почему при рисовании трехмерных объектов необходима шина PCI или AGP (главное преимущество интерфейса AGP перед PCI в использовании режима DIME - Direct Memori Execution или, как говорят, AGP-текстурировании) на материнской плате и соответствующая видеопла-та с хорошей производительностью.

Рельефное текстурирование или наложение рельефа

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

Билинейная фильтрация

Билинейная фильтрация(bi-linear filtering - метод текстурирования, при котором выполняется интерполяция текстуры). Улучшение качества изображения небольших текстур, помещенных на большие многоугольники (достигается так называемая “размазанность текстур”). Эта технология устраняет эффект "блочности" текстур.

Трилинейная фильтрация

Трилинейная фильтрация(frii-linear filtering - более сложный метод текстурирования, при котором кроме интерполяции текстуры выполняется интерполяция между уровнями детализации текстуры). Комбинация билинейной фильтрации и так называемого наложения mip mapping (текстуры, имеющие разную степень детализации в зави-симости от расстояния до точки наблюдения). Использование трилинейной фильтрации значительно замедляет работу 3D-ускорителей, но формирует более качественное изображение, чем обычная билинейная с мипмэппингом.

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

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

ЗD-игры, как правило, они показывают отличные ре-зультаты в тестах на трехмерную визуализацию.

Анизотропная фильтрация

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

Однопроходная или мультипроходная визуализация

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

Аппаратное или программное ускорение

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

Программная оптимизация

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

Дизеринг

Дизеринг(dithering) - метод получения изображений в Hi-Color-режимах.

Рендеринг

Рендеринг (конвейер рендеринга). Рендеринг выполняется по многоступенчатому процессу, называемому конвейером рендеринга, который состоит из трех этапов обработки: тесселяции, геометрической обработки, растеризации. При аппаратном рендеринге 3D-акселератор берет на себя наиболее вычислительно-емкие функции по растеризации треугольников.

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

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

В тестовой лаборатории компании "Свега+" были проэкзаминованы несколько видеоадаптеров с поддержкой 3D. Среди протестированных акселераторов 5 являются полноценными видеокартами, а Helios 3D - это чисто 3D акселератор, который включается последовательно с видеокартой (passthrough). Он использовался в связке с Matrox Mystique 220.

Тестирование проводилось на компьютере следующей конфигурации:

  • MB: ASUS TX97 i430TX
  • RAM: 64Mb SDRAM (2xDIMM)
  • CPU: Intel P225MMX (3x75MHz)
  • HDD: Quantum Fireball ST 4.3Gb
  • OS: Win’95 OSR2 PE

В таблице 1 представлены технические характеристики тестируемых видеокарт:

Карта Chip Memory RAMDAC OpenGL Direct3D
A-Trend Helios Voodoo Edition 3D 3DFX Voodoo 4Mb EDO есть Есть
Diamond Viper 330 Nvidia Riva128 4Mb SGRAM 230MHz есть Есть
Matrox Millenium II MGA 2164WA-B 4Mb WRAM 250MHz нет Есть
Matrox Mystique MGA 1164SG-A 4Mb SGRAM 220MHz нет Есть
ATIMach 3D Xpression ATI 3Drage II 4Mb SGRAM 170MHz нет Есть
ATIMach Xpert@Work ATI 3Drage PRO 4Mb SGRAM 220MHz нет Есть

Для тестирования производительности видеокарт при работе с Direct3D использовались следующие тесты:

Ziff-Davis Labs: 3D WinBench 98

При выполнении WinMark тестов определяется скорость вывода изображения на экран (число кадров в секунду - fps). Показатель WinMark98 является суммой всех этих значений. Если тест не может пройти из-за того, что необходимая функция не поддерживается акселератором, то к результату добавляется 0. Чем больше это значение, тем лучше. Полученные результаты представлены в таблице 2 и на рисунках 1 и 2 .

VNU Labs: Final Reality Demo

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

  • 25 pixel test - в этом тесте подсчитывается количество многоугольников, отображаемых на экран за секунду. Размер каждого многоугольника - 25 пикселей.
  • Robots - этот тест показывает производительность акселератора при работе с реальным приложением (некоторой игрой). Результатом является количество отображаемых за секунду кадров. На сегодняшний день приемлемым считается число кадров большее 20.
  • Fill Rate - этот тест показывает скорость вывода точек в памяти 3D акселератора. Измеряется в миллионах точек в секунду.
  • City Scene - здесь измеряется скорость обработки сложной трехмерной сцены. Сцена включает в себя большое количество текстур, атмосферных эффектов, прозрачности и теней. В ней задействовано до 10000 многоугольников одновременно. Результатом теста является число отображаемых кадров в секунду.

Результаты тестирования представлены в таблице 3 и на рисунке 3 .

Таблица 2:

Карта 3D WinBench 98
3D Processing 3D WinMark
A-Trend Helios 3D 8,03 268
Diamond Viper 330 7,11 310
Matrox Millenium II 6,46 65,7
Matrox Mystique 6,21 61,9
ATIMach 3D Xpression 5,31 41,4
ATIMach Xpert@Work 6,16 208


Таблица 3:

Карта Final Reality Demo
2D Processing 3D Processing Bus Overall
A-Trend Helios 3D 2,19 2,89 1,68 2,5
Diamond Viper 330 2,17 3,06 1,15 2,51
Matrox Millenium II 2,18 1,53 2,31 1,84
Matrox Mystique 2,18 1,57 2,41 1,88
ATIMach 3D Xpression 2,2 1,53 3,44 2,02
ATIMach Xpert@Work 2,18 2,55 1,92 2,35
Software emulation 2,17 0,37 1,96 1,15

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

Для тестирования производительности при работе с OpenGL использовались игры Quake II и GLQuake. Результатом тестирования является скорость вывода изображения на экран (число кадров в секунду). Из всех протестированных видеокарт аппаратная поддержка OpenGL есть только у 3D акселератора Helios3D и Diamond Viper 330. Для сравнения, все тесты были дополнительно выполнены без использования аппаратной 3D акселерации.

Результаты представлены в таблице 4 и на рисунке 4 .

Таблица 4:

Карта OpenGL: Quake II timerefresh GLQuake: timedemo demo2
320x240 640x480 800x600 320x240 640x480
A-Trend Helios 3D 67,3 28,5 0 67,1 26,2
Diamond Viper 330 42,9 34,9 27,9 32,6 24,8
Software emulation 47,6 18,6 13,2 29,9 17,6

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

  • Matrox Millenium II/ Mystique - это очень хорошие видеокарты для бизнес-приложений, но не для трехмерных игр. Скорость обработки 3D неприемлима для современных игр. Не реализованы многие функции обработки.
  • ATIMach Xpert@Work - высокая скорость обработки 3D графики, поддерживаются почти все трехмерные эффекты. Отличное качество изображения. Ее основным недостатком является отсутствие аппаратной поддержки OpenGL.
  • A-Trend Helios Voodoo Edition 3D VGA - построена на чипсете 3DFX Voodoo Graphics. Высокая скорость обработки 3D графики, поддерживаются много трехмерных эффектов. Отличное качество изображения. Имеется поддержка OpenGL. Ее недостатком является то, что она работает только на полном экране и максимальное разрешение ограничено 640х480.
  • Diamond Viper v330 - построена на самом перспективном чипе nVidia Riva128. На сегодняшний день это самый быстрый 3D акселератор. Имеется поддержка OpenGL. При тестировании использовалась Alpha2 версия драйверов (уже выпущена Beta версия драйверов, которые еще в 1,5 раза быстрее. И это только начало …)



Top