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

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

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

С конца 1990-х годов ускорители трехмерной графики, некогда бывшие предметом роскоши, использовавшимся лишь заядлыми игроками и аниматорами, стали общепризнанными и популярными устройствами. С появлением операционных систем Windows XP и Vista трехмерные изображения стали доступны и в интерфейсе пользователя, став обязательным элементом современных компьютерных игр. Поскольку сегодня даже малобюджетные системы с интегрированной графикой предлагают поддержку трехмерной графики, а видеоадаптеры уже перешагнули в развитии десятое поколение, практически каждый пользователь современного ПК получает возможность насладиться трехмерным освещением, перспективой, красивыми текстурами и эффектами затенения в своих любимых играх. Современные трехмерные спортивные игры, позволяющие изменять освещение и угол обзора, настолько реалистичны, что случайный наблюдатель вполне может принять игру за обычную телевизионную передачу. Последние процессоры трехмерной графики позволили высокоскоростным персональным компьютерам вступить в конкурентную борьбу со специализированными игровыми приставками, такими как Sone PlayStation 3, Ninetendo Wee и Microsoft Xbox 360.


Примечание!

Минимальное требование Windows Vista к графической подсистеме - поддержка API DirectX 7 3D; однако для обеспечения работы ‘‘объемного’’ интерфейса пользователя 3D Aero графическая подсистема должна поддерживать DirectX 9 и выше. Последние игры требуют наличия интерфейса DirectX 10, который доступен только в Windows Vista.

 

Как работает ускоритель трехмерной графики

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

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

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

Вплоть до конца 1990-х годов трехмерные программы существенно зависели от обработки данных, благодаря которой абстракции преобразовывались в непосредственное изображение. Все это становилось тяжелой ношей для процессора ПК, которому приходилось не только обрабатывать визуальные данные, но и одновременно выполнять другие приложения и системные службы. В 1996–1997 годах наборы микросхем большинства видеоадаптеров стали принимать участие в визуализации трехмерных изображений, существенно уменьшая нагрузку на центральный процессор и тем самым многократно увеличивая быстродействие системы.

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

 

Поскольку практически все современные видеоплаты, присутствующие на рынке, поддерживают функции DirectX 9.0 или даже более расширенный набор функций, вам не придется тратить много денег при желании получить трехмерную графику высокого уровня. Выпускается немало видеоплат ценового диапазона 75–200 долларов, основанных на менее производительных версиях современных графических наборов микросхем или же графических наборах микросхем предыдущего поколения. Подобные решения обеспечивают высочайший уровень быстродействия в двухмерных приложениях. Большинство современных 3D-ускорителей также поддерживают работу с двумя мониторами и функцию вывода сигнала на телевизор, что позволяет работать и отдыхать одновременно.

Однако не следует забывать, что чем дороже плата 3D-акселератора, тем более быстродействующий ускоритель и больший объем видеопамяти она предлагает. Если деньги для вас не являются решающим фактором или если вы как заядлый игрок готовы отдать последнее за самое современное решение, можете приобрести графический адаптер NVIDIA с самым быстродействующим процессором и 768 Мбайт видеопамяти примерно за 750 долларов (модели за 900 долларов оснащены водяным охлаждением). В то же время на рынке существует множество моделей от ATI и NVIDIA с памятью 512 Мбайт в ценовом диапазоне 400–500 долларов. Некоторые из этих плат допускают спаривание (NVIDIA SLI и ATI CrossFire), что позволяет объединить мощности двух графических процессоров.

Модельные ряды процессоров NVIDIA 8 и ATI HD 2xxx поддерживают DirectX 10, и это единственный шанс для заядлых геймеров получить доступ к играм новых поколений. Более дешевые решения, стоимостью 200–300 долларов, часто базируются на функционально усеченных графических процессорах (например, уменьшено количество конвейеров рендеринга или блоков текстурирования). Кроме того, часто занижается частота ядра и памяти, а также уменьшается ширина шины памяти. Подобные платы предназначены для тех пользователей, которые не могут позволить себе приобрести игровую плату высокого уровня.

Практически в любом ценовом диапазоне, начиная от 100 долларов и до мыслимых пределов, можно приобрести графический акселератор, поддерживающий последнюю технологию DirectX 10 3D.

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

  • Вершины. Задают местоположение объекта в трехмерном пространстве, определяемое координатами X, Y и Z.
  • Примитивы. Это простые геометрические объекты, с помощью которых конструируются более сложные объекты. Их положение задается расположением определяющих точек (обычно вершин). Для конструирования изображений трехмерных объектов при построении примитивов учитывается также эффект перспективы.
  • Текстуры. Это двухмерные изображения, или поверхности, налагаемые на примитивы. Программное обеспечение усиливает эффект трехмерности, изменяя вид текстур в зависимости от положения примитива (т.е. расстояния до примитива и его наклона); этот процесс называется перспективной коррекцией. В некоторых приложениях используется другая процедура, называемая отображением MIP; в этом случае применяются различные версии одной и той же текстуры, которые содержат разное количество деталей (в зависимости от расстояния до объекта в трехмерном пространстве). При отображении удаляющихся объектов уменьшается насыщенность и яркость цветов текстуры.

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

  • Геометризация. Определение размеров, ориентации и расположения примитивов в пространстве и расчет влияния источников света.
  • Растеризация. Преобразование примитивов в пиксели на экране с нанесением нужных затенений и текстур.

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

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

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

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

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

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

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

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

Примечание!

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

  • Анизотропная фильтрация. Этот метод, используемый производителями некоторых видеокарт, позволяет более реалистично отображать текст, нанесенный на наклонные поверхности. Данная технология используется при нанесении текстуры на поверхность, изменяющуюся в трех пространственных измерениях (например, текст, нанесенный на стене, вдоль которой проносится автомобиль). Эта операция требует дополнительных затрат времени, поэтому может быть отключена. Для достижения баланса между качеством изображения и реалистичностью можно скорректировать уровень детализации.
  • 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.

 

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

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

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

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

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

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

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

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

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


Примечание!

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

Яндекс.Метрика