link420 link421 link422 link423 link424 link425 link426 link427 link428 link429 link430 link431 link432 link433 link434 link435 link436 link437 link438 link439 link440 link441 link442 link443 link444 link445 link446 link447 link448 link449 link450 link451 link452 link453 link454 link455 link456 link457 link458 link459 link460 link461 link462 link463 link464 link465 link466 link467 link468 link469 link470 link471 link472 link473 link474 link475 link476 link477 link478 link479 link480 link481 link482 link483 link484 link485 link486 link487 link488 link489 link490 link491 link492 link493 link494 link495 link496 link497 link498 link499 link500 link501 link502 link503 link504 link505 link506 link507 link508 link509 link510 link511 link512 link513 link514 link515 link516 link517 link518 link519 link520 link521 link522 link523 link524 link525 link526 link527 link528 link529 link530 link531 link532 link533 link534 link535 link536 link537 link538 link539 link540 link541 link542 link543 link544 link545 link546 link547 link548 link549 link550 link551 link552 link553 link554 link555 link556 link557 link558 link559

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

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

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

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

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

Более требовательный к вычислительной мощности процессора, но и гораздо более эффективный метод — наложение текстур. Трехмерная программа использует шаблоны или текстуры в качестве небольших растровых карт изображения, которые складываются в форму изображения, что похоже на многократное использование одного образца растровой карты для покрытия рабочего стола 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; в этом случае применяются различные версии одной и той же текстуры, которые содержат разное количество деталей (в зависимости от расстояния до объекта в трехмерном пространстве). При отображении удаляющихся объектов уменьшается насыщенность и яркость цветов текстуры.

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

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

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

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