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

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

Рейтинг:   / 0

Идея объединения двух видеоадаптеров для ускорения визуализации сцены отнюдь не нова. Еще адаптеры 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

 



Sitelinkx by eXtro-media.de

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

Рейтинг:   / 0

Благодаря интерфейсу прикладного программирования (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.

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

Рейтинг:   / 0

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

  • Билинейная фильтрация. Улучшение качества изображения небольших текстур, помещенных на большие многоугольники. Эта технология устраняет эффект “блочности” текстур.
  • Множественное отображение. Улучшение качества отображения объектов путем формирования последовательности текстур одного и того же изображения с уменьшающимся разрешением; является разновидностью сглаживания.
  • Трилинейная фильтрация. Комбинация билинейной фильтрации и множественного отображения; вычисляет наиболее реалистичные цвета, необходимые для пикселей каждого из многоугольников, путем сравнения двух множественных образов. Этот метод предпочтительнее обособленного использования множественного отображения или билинейной фильтрации.

Примечание!

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

  • Анизотропная фильтрация. Этот метод, используемый производителями некоторых видеокарт, позволяет более реалистично отображать текст, нанесенный на наклонные поверхности. Данная технология используется при нанесении текстуры на поверхность, изменяющуюся в трех пространственных измерениях (например, текст, нанесенный на стене, вдоль которой проносится автомобиль). Эта операция требует дополнительных затрат времени, поэтому может быть отключена. Для достижения баланса между качеством изображения и реалистичностью можно скорректировать уровень детализации.
  • T0буфер. С помощью этой технологии уменьшается эффект “ступенчатости” (искажения в экранном изображении вследствие его масштабирования) в компьютерной графике; например, когда диагональ сформирована “лесенкой”, объект перемещается рывками, неточно визуализированы тени, отражения и внешний вид объекта кажутся смазанными. При использовании этой технологии кадровый буфер заменяется буфером, в котором собирается несколько операций визуализации перед выводом на экран готового изображения. В отличие от других трехмерных технологий, для использования Т-буфера нет необходимости модифицировать или оптимизировать уже имеющееся программное обеспечение. Основная сфера применения Т-буфера — формирование практически “телевизионного” реализма в визуализированной трехмерной анимации. Ложкой дегтя в использовании Т-буфера для включения параметра сглаживания является существенное уменьшение скорости работы приложения. Эта технология зародилась в уже не существующей компании 3dfx. Несмотря на некоторые недостатки поддержка Т-буфера внедрена в DirectX 8.0 и выше, благодаря чему он используется в видеоадаптерах сторонних производителей.
  • Интегрированные функции трансформации объектов и распределения освещения (T&L). При формировании трехмерной анимации объект трансформируется при переходе из одного кадра в другой, после чего освещение изменяется в соответствии с перемещением объекта. T&L — это стандартная функция DirectX начиная с версии 7. Первыми графическими адаптерами, оснащенными блоком T&L, были NVIDIA GeForce 256 и ATI RADEON. Теперь это стандартная функция всех видеоплат.
  • Полноэкранное сглаживание. Уменьшение неровностей, возникающих при увеличении разрешения, посредством сглаживания цветовых границ для обеспечения плавных цветовых переходов. В первых трехмерных программах сглаживание использовалось только при обработке отдельных объектов; современные графические процессоры, созданные компаниями NVIDIA и ATI, позволяют использовать эту технологию для всего экрана.
  • Сопряжение/сглаживание вершин. Сглаживание областей сочленений двух полигональных объектов, например рук или ног с телом анимированного персонажа.
  • Интерполяция ключевого кадра. Оживление перехода от одного выражения лица к другому, что позволяет при отсутствии скелетной анимации сделать мимику более естественной. Для получения подробной информации обратитесь на сайт компании ATI.
  • Программируемая трансформация вершин и обработка полутонов пикселей. Эта технология стала стандартной частью DirectX, начиная с версии 8.0. Она была введена компанией NVIDIA в функции nfiniteFX видеоадаптера GeForce3 и позволяет разработчикам программного обеспечения модифицировать эффекты наподобие сопряжения вершин и обработки полутонов (улучшенный метод преобразования неправильных поверхностей). Это дает возможность избавиться от применения относительно малого количества эффектов с заранее определенными характеристиками. Процессоры, поддерживающие DirectX 8 и 9, используют отдельные вершинные и пиксельные обработки полутонов. В DirectX 10 введена новая архитектура, содержащая унифицированную обработку полутонов, которая может применяться как для вершинной, так и для пиксельной обработки.
  • Вычисления с плавающей запятой. DirectX 9 и более поздних версий поддерживают данные с плавающей запятой, что позволяет добиться более естественной цветопередачи и точного воспроизведения многоугольников. В DirectX 9 применяется точность 32 разряда для вершинной и 24 разряда для пиксельной обработки полутонов. В версии DirectX 9c точность пиксельной обработки была повышена до 32 разрядов, что позволило в версии DirectX 10 унифицировать обработку полутонов.

В таблице перечислены функции визуализации трехмерных сцен, реализованные в DirectX версий от 6.0 до 10.

 

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

Рейтинг:   / 0

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

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

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

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

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

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

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

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


Примечание!

Если вы хотите без промедления погрузиться в океан компьютерных игр, приобретите так называемую ‘‘коробочную’’ версию видеоадаптера у розничного продавца. Такие адаптеры поставляются в комплекте с некоторыми играми (нормальными или демонстрационными версиями), которые созданы или скомпилированы для того, чтобы можно было воспользоваться всеми преимуществами видеопроцессора. ДешевыеO EM-версии видеоадаптеров (‘‘белой сборки’’) зачастую продаются в обычных полиэтиленовых пакетах, только с драйверами и без дополнительного программного обеспечения, а их быстродействие может существенно отличаться от соответствующей ‘‘коробочной’’ версии модели. В некоторых OEM-адаптерах используются некачественные драйверы, занижены частоты видеопамяти и RAMDAC, не хватает TVвыхода и других функций. Некоторые производители видеоадаптеров используют для OEM-моделей отдельные названия, что, однако, бывает далеко не всегда. Кроме того, видеоадаптеры могут продаваться в одной большой упаковке и предназначаться для масштабной модернизации систем компании силами ее персонала. К таким видеоадаптерам часто не прилагаются документация и компакт-диск с драйверами, не хватает расширенных программных функций, которые имеются в ‘‘коробочных’’ версиях.

Типичные трехмерные технологии

Рейтинг:   / 0

Среди типовых технологий обработки трехмерной графики можно выделить следующие.

  • Вуалирование. Имитация окутывания туманом фоновых объектов, что позволяет в играх неожиданно появляться близко расположенным объектам (сооружениям, врагам и т.д.). Затенение Гуро. Интерполирование цветов, позволяющее сферическим объектам выглядеть гладкими.
  • Полупрозрачность. Одна из первых технологий обработки трехмерной графики, позволяющая имитировать полупрозрачную среду, такую как дым, вода или стекло. Полупрозрачность может использоваться для имитации текстур, однако эта технология менее реалистична, чем рельефное текстурирование.
  • Буфер шаблонов. Активно используется в играх (особенно в жанре авиасимуляторов) при моделировании ландшафтов, самолетов и других объектов вне стеклянной кабины летчика. В данном случае пространство под лобовым стеклом не участвует в обработке полутонов. Это сокращает время обработки и повышает частоту кадров в анимации.
  • Z-буферизация. Изначально применялась в системах автоматизированного проектирования. Часть видеопамяти, отведенная для Z-буфера, содержит информацию о глубине сцены. При визуализации эти данные служат для построения законченного изображения: пиксели, которые располагаются ближе, будут визуализированы, в отличие от пикселей, закрытых другими объектами. Этот метод ускоряет обработку и может использоваться совместно с буфером шаблонов для создания объемных теней и прочих сложных трехмерных объектов.
  • Рельефное текстурирование. Предназначено для воспроизведения шероховатых текстур, таких как водная рябь, камни и другие сложные поверхности. Это делает игровые сцены и ландшафты более реалистичными. Тем не менее функция, называемая смещением карт, позволяет получить еще более точные результаты.
  • Карты смещения. Эти специальные полутоновые карты долгое время использовались для создания точных карт поверхности земного шара. Библиотека DirectX 9 и DirectX 10 позволяет использовать аппаратные полутоновые карты смещения в качестве источника точной трехмерной визуализации. Графические ускорители, полностью поддерживающие DirectX 9 и 10, на аппаратном уровне поддерживают карты смещения.
Яндекс.Метрика