PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

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

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

Интерфейс прикладного программирования

Благодаря интерфейсу прикладного программирования (API) разработчикам аппаратного и программного обеспечения предоставляются средства создания драйверов и программ, работающих быстрее на большом количестве платформ. Программные драйверы разрабатываются для взаимодействия непосредственно с API, а не с операционной системой и программным обеспечением. В настоящее время ведущими игровыми интерфейсами API являются OpenGL, разработанный компанией SGI, а также Direct3D, разработанный компанией Microsoft как часть DirectX. Все современные видеоадаптеры поддерживают как OpenGL, так и Direct3D. В свое время был распространен еще один игровой API — Glide, который можно считать расширенной версией OpenGL, однако его поддерживали только видеоадаптеры производства компании 3dfx, которая уже давно прекратила свое существование.

OpenGL

Последняя версия данного интерфейса API, OpenGL 2.1, была выпущена 2 сентября 2006 года. Она содержит язык поддержки обработки полутонов OpenGL версии 1.2, программируемые вершинные и фрагментарные шейдеры, множественную обработку полутонов, поддержку не квадратных матриц, текстуры sRGB и не кратные степени двойки, точечные спрайты и раздельные шаблоны для лицевой и тыльной сторон графических примитивов.

OpenGL всегда был популярным интерфейсом в играх, однако широко применяется и в производственной сфере, в том числе в картографии. Системы Windows XP и Vista могут поддерживать OpenGL как на программном уровне, так и посредством графических акселераторов. Для обеспечения в конкретном адаптере поддержки OpenGL изготовитель должен включить в его поставку устанавливаемый клиентский драйвер (ICD). Таким образом, обновление драйвера поможет повысить производительность как Direct3D, так и OpenGL.

Microsoft DirectX 9.0c и 10

Direct3D — это составная часть разработанного компанией мультимедийного API DirectX. Хотя последние версии DirectX (9.0с и 10) поддерживали поверхности высокого порядка (при этом трехмерные поверхности представлялись кривыми), вершинные и пиксельные шейдеры, реализация данных функций в DirectX разных версий кардинально отличается. В DirectX 9.0c, как в версиях 8.0, 8.1 и 9.0, при формировании трехмерных объектов используются раздельные вершинные и пиксельные шейдеры. Несмотря на то что в DirectX 9.0c повышена точность обработки данных, поддерживается больше инструкций, текстур и регистров, чем в предшествующих версиях, раздельное использование шейдеров замедляет обработку объемных объектов, когда количество отображаемых пикселей превышает количество шейдеров и наоборот. Шейдерная модель версии 3.0, используемая в DirectX 9.0c, является всего лишь развитием первой модели, использованной еще в 2001 году в DirectX 8.0. В ней только увеличено количество инструкций и повышена точность.

Версия DirectX 10, созданная специально для Windows Vista, основана на совершенно другом ядре с новой архитектурой шейдеров Shader Model 4. В ней к вершинному и пиксельному шейдерам добавлен геометрический для повышения реалистичности таких динамических событий, как взрыв. Однако наибольшее изменение в данной модели — это возможность оперативного переключения между операциями вершинного, геометрического и пиксельного шейдеров, позволяющего избежать узких мест в обработке любых трехмерных сцен и повысить общую производительность.


Примечание!

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



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

Среди прочих архитектурных изменений в DirectX 10 — оптимизация процесса, уменьшающая нагрузку на центральный процессор. По сравнению с DirectX 9 при обработке различных типов изображений командные циклы в DirectX 10 сокращены примерно на 90%. Важно отметить, что графические процессоры, поддерживающие DirectX 10, полностью совместимы с более ранними версиями этого интерфейса, что позволяет запускать не только новые, но и старые игры. Ссылки для обновления DirectX версий 9.0c и 10 можно найти по адресу:

www.gamesforwindows.com/en-US/AboutGFW/Pages/DirectX10.aspx 

Примечание!

Версия DirectX 9.0c поддерживает все версии от Windows 98 до Windows XP SP1 (в Windows XP SP2 она включена как составляющий компонент).

Хотя этот факт и не афишируется, но интерфейс DirectX 9.0c интегрирован в Windows Vista и даже используется для запуска рабочего стола Aero 3D. Чтобы поддерживать в обновленном состоянии DirectX как в Windows XP, так и в Windows Vista, установите последнюю версию DirectX EndUser Runtime. Предварительно ознакомьтесь с системными требованиями, чтобы убедиться в поддержке вашей версии Windows.

Рендеринг сцен с использованием двух графических процессоров

Идея объединения двух видеоадаптеров для ускорения визуализации сцены отнюдь не нова. Еще адаптеры 3dfx Voodoo 2 поддерживали режим SLI (Scan Line Interleave — чередование строк кадра); при этом пара плат Voodoo 2 обрабатывала сцену последовательно: один адаптер обрабатывал нечетные линии (первую, третью, пятую и т.д.), а второй — четные (вторую, четвертую, шестую и т.д.). Несмотря на все преимущества данной технологии использование двух адаптеров Voodoo 2 в режиме SLI оказалось дорогим удовольствием, доступным только обеспеченным поклонникам компьютерных игр.

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

NVIDIA SLI

Когда компания NVIDIA приобрела все, что осталось от компании 3dfx, она также получила в свое распоряжение торговую марку “SLI”; в середине 2004 года NVIDIA представила собственную концепцию использования двух видеоадаптеров для визуализации сцены, назвав разработанную ею технологию также “SLI”. При этом с технической точки зрения версия SLI от компании NVIDIA не имеет практически ничего общего с одноименной технологией, изначально разработанной компанией 3dfx.

Компания NVIDIA расшифровывает термин SLI как “Scalable Link Interface” (масштабируемый связующий интерфейс). Под масштабированием понимается балансирование нагрузки, которое определяет, какой объем работ выполняет каждый из адаптеров при рендеринге определенной сцены в зависимости от сложности последней. Для обеспечения работы режима SLI необходимы следующие компоненты.

  • Системная плата с шиной PCI Express на базе набора микросхем с поддержкой SLI, содержащая два разъема PCI Express, которые можно использовать в режиме SLI. Среди таких наборов микросхем — все модели серии nForce Professional, равно как и модели SLI серий nForce 4, nForce 5 и nForce 6. Версии этих графических процессоров доступны как для Intel, так и для AMD.
  • Два видеоадаптера на базе графических процессоров производства компании NVIDIA, относящиеся к семействам GeForce 6, 7 и 8 с поддержкой SLI. Для соединения адаптеров используется специальный “мост” MIO (multipurpose I/O). Он поставляется вместе с системными платами с поддержкой SLI.

Примечание!

Изначально режим SLI предполагал использование совершенно идентичных видеоадаптеров. Однако после выпуска компанией NVIDIA драйверов ForceWare версии 81.85 и более поздних в этом нет необходимости. Как и в случае с аналогичной разработкой от компании ATI, CrossFire, необходимы две платы на базе графических процессоров одного семейства (две платы GeForce 7800, две платы GeForce 6800 или две платы GeForce 6600), однако они могут быть производства разных компаний. Обновленные версии драйверов можно загрузить с сайта компании-производителя или непосредственно с сайта компании NVIDIA (www.nvidia.com). Более полную информацию о технологии SLI и совместимых с ней наборах микросхем и адаптерах можно получить на сайте SLI Zone (http://sg.slizone.com).

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

На рисунке представлена типичная система SLI. Обратите внимание на мост MIO, соединяющий оба видеоадаптера.

ATI CrossFire

Технология использования нескольких графических адаптеров от компании ATI, которая получила название CrossFire, использует три метода ускорения рендеринга трехмерных сцен: чередование рассчитываемых кадров; построчное, шахматное или иное чередование рассчитываемых пикселей, предполагающее разделение сцены на несколько частей, параметры которых рассчитываются разными адаптерами; разделение экрана на несколько непересекающихся зон (данный подход можно сравнить с балансировкой нагрузки при использовании режима SLI). Драйвер ATI Catalyst использует чередование рассчитываемых кадров для обеспечения наилучшего быстродействия, однако автоматически переключается на другие режимы, если запущенная игра не поддерживает чередование рассчитываемых кадров.

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

Для обеспечения работы режима CrossFire необходимы следующие компоненты.

  • Системная плата с шиной PCI Express на базе набора микросхем с поддержкой CrossFire, содержащая два разъема PCI Express, которые можно использовать в режиме CrossFire. Среди таких наборов микросхем — AMD 580X и 480X, ATI CrossFire Xpress 3200 и Intel 975X и P965 Xpress.
  • Комбинация видеоадаптеров, которые поддерживают работу в режиме ATI CrossFire. Эту поддержку обеспечивают карты Radeon X850, X1300, X1550, X1600, X1650, X1800, X1900, X1950, HD 2600XT и 2900XT.

Примечание!
Конкретные модели материнских плат, видеокарт, блоков питания, модулей памяти и корпусов, поддерживающих технологию CrossFire, можно найти по адресу:

http://ati.amd.com/technology/crossfire/buildyourown.html 


Первое поколение карт CrossFire требовало от пользователей покупки специальных карт CrossFire Edition, которые содержали объединительную микросхему Xilink XC3S400, а также уникальный порт DMS59, предназначенный для объединения плат. Одна из этих карт была спарена со стандартной платой Redeon той же серии с помощью внешнего кабеля, идущего от порта DVI стандартной карты к порту DMS специальной. В моделях X1300 и X1600 для передачи информации между картами уже использовалась шина PCI Express.

Современные реализации CrossFire предполагают использование объединяющего моста (подобного компоненту SLI MIO). Такой мост обеспечивает работу пар соответствующих карт моделей X1950, X1650, HD 2900XT и HD 2600XT.

Поддержку технологии можно отключить, при этом две карты смогут поддерживать два монитора. Также карты CrossFire можно использовать для реализации эффектов в играх, поддерживающих технологию HavokFX (www.havok.com).

Более подробно о технологии CrossFire можно узнать на сайте компании AMD:

http://ati.amd.com