Главное звено любой видеокарты — графический процессор (GPU). Назван он «процессором» не зря. Как и центральный (CPU), графический процессор считывает данные из памяти, обрабатывает их и записывает результат обратно в память. Память у графических процессоров отдельная — она находится на видеокарте. Иногда, правда, GPU может использовать и оперативную память ПК, но это неэффективно по скорости.
Трехмерную графику выводили десять и даже двадцать лет назад. Тогда на расчет каждого кадра могли уходить сутки. Сегодня благодаря мощным центральным и графическим процессорам каждую секунду на экран монитора выводятся десятки кадров. Удивительно не то, что мы можем видеть трехмерную картинку, а то, что она просчитывается в реальном времени.
До появления графических ускорителей вычислением трехмерной графики занимался центральный процессор. Он универсален и может без труда рассчитывать хоть изображения, хоть физику, хоть что угодно еще. Но когда алгоритмы обработки 3D-изображений, с одной стороны, усложнились, с другой — пришли к определенным стандартам, встал вопрос о вынесении их в отдельный блок. В итоге в компьютер добавили специализированный графический процессор. Он одновременно решил две задачи: ускорил обработку трехмерных изображений и разгрузил CPU от массы однотипных вычислений.
Что такое трехмерная графика?
Монитор показывает плоскую картинку. Вне зависимости от того, что на ней изображено, она априори двумерна: объем додумывает только наш мозг. В любой трехмерной игре мы видим на экране набор из тысяч треугольников (полигонов), покрытых текстурами. Оба глаза видят одно и то же, поэтому практически вся современная 3D-графика, по сути, носит приставку «псевдо». Убрать эту приставку можно только в том случае, когда картинка будет формироваться для каждого глаза индивидуально. Наработки в этом направлении есть, но они далеки до массовой реализации.
Это интересно: каждый глаз человека видит двумерную картинку, а мозг, сопоставляя информацию, строит в воображении некую объемную модель. Тогда почему же мир разительно не меняется, если, допустим, закрыть один глаз? Причин тому две. Во-первых, стоит лишь слегка пошевелиться, как мозг, проанализировав два разных кадра, мгновенно определяет, какие объекты дальше, а какие — ближе, тем самым восполняя отсутствующий стереоэффект. А во-вторых, мозг помнит типичную окружающую обстановку и способен воссоздать ее по памяти или додумать, имея в распоряжении плоский кадр с узнаваемыми элементами, позволяющими построить перспективу.
Но это — что касается монитора. Мир самой игры честно используют три оси, а то, что мы видим на экране, — его проекция на плоскость. Компьютер вычисляет изменение полноценного трехмерного мира, реагируя на действия игрока или поведение объектов в игре, после чего формирует картинку. Эта операция повторяется по много раз в секунду, а монитор раз за разом показывает новые кадры.
Процесс вывода трехмерной модели на экран можно условно разделить на две части — геометрическую (вершинную) и пиксельную. В геометрической проводятся математические расчеты над трехмерными объектами, состоящими из вершин и образованных ими граней. В ходе таких расчетов определяется, как эти объекты расположены по отношению к зрителю, перекрывают ли они друг друга, не выходят ли за пределы видимой области и т.п. Наконец, 3D-мир превращается в 2D-картинку путем простейшего преобразования координат.
Объекты трехмерного мира покрываются текстурой. Логично, что текстура видна только при наличии освещения. Не будет света, и мир превратится в картину Малевича. Иначе говоря, помимо нанесения текстур на грани видеокарта отвечает за обработку источников света. К слову, видеокарты пока не умеют просчитывать освещение по методу трассировки лучей (Ray Tracing), когда прослеживается ход всех лучей от всех источников света. Математически это задача несложная, но требует массы громоздких вычислений, и для работы алгоритма в реальном времени мощностей пока не хватает. Но это уже не за горами.
Кроме вышеперечисленного видеокарты умеют отображать еще некоторые типичные игровые объекты: кривые поверхности, воду с преломлением и отражением, туман и т.д.
Спасительные шейдеры
Давно прошли те времена, когда программист напрямую управлял аппаратурой. Сейчас это не то что не нужно, а попросту невозможно — операционная система не пустит внешнюю программу к аппаратным ресурсам.
Шейдеры преобразили современные игры, позволив программировать графический процессор напрямую. |
Еще одна инстанция на пути к видеокарте — драйвер. Он перекодирует типизированные команды API в собственные и дальше колдует на пару с видеокартой. В это таинство производители графических чипов никого не допускают. Как и в детали архитектуры GPU. К сожалению, в отличие от центральных процессоров, производители GPU могут скрывать архитектуру, отсылая разработчиков к API. Здесь и всплывает важное отличие графических процессоров от ЦП: с последними программы общаются напрямую, а с видеокартой только через драйвер. Не стоит удивляться, если с новым драйвером игра заработает быстрее, медленнее или совсем по-другому. Это лишь означает, что в драйверах появились новые оптимизации.
На заре появления 3D-ускорителей массово использовалось два API: Glide от 3dfx и OpenGL от команды независимых разработчиков. Первый стандарт умер вместе с компанией-изобретателем. Второй жив и относительно неплохо себя чувствует. Наконец, вездесущая Microsoft предложила свой API — Direct3D (входит в пакет DirectX). Набор команд много раз изменялся и сегодня достиг девятой версии, которая, к слову, лежит на каждом DVD нашего журнала. Драйвера современных видеокарт поддерживают и Direct3D, и OpenGL.
Возникает вопрос: почему Direct3D так часто менялся? Дело в том, что ускорители за последние десять лет бурно развивались — разработчики внедряли одну функцию за другой. Появились эффекты, новые виды фильтрации текстур и т.п. Но что значат новые функции, если их не поддерживают ни игры, ни API? Вот и пошла гонка вооружений. Каждая последующая версия Direct3D получала все новые и новые функции. Постоянно увеличивать их число можно, но использовать все это разнообразие будет затруднительно. Выход был найден: разработчикам игр дали возможность программировать GPU напрямую, отсылая в чип небольшие программы на специальном языке. Эти программы и называются шейдерами. Они делятся на два вида — вершинные и пиксельные. На сегодняшний день новые видеокарты поддерживают Shader Model 3.0. Благодаря шейдерам программисты могут создавать эффекты, о которых раньше можно было только мечтать. Например, правдоподобный мех или реалистичную воду. Старые эффекты также можно задействовать через шейдеры.
Рекомендуем: чаще обновляйте драйверы. В новых версиях вы можете получить выигрыш в производительности и качестве, а также разрешение проблем с некоторыми играми. Но на всякий случай держите под рукой прошлую, проверенную версию. Нет-нет, да и выйдет в свет кривой драйвер — всегда стоит иметь возможность откатиться назад.
Хитрые игры
Часто приходится слышать: «На моей видеокарте идет и DOOM 3, и Far Cry, зачем мне ее менять?» Все дело в хитрых (умных) играх. Встаньте на место разработчика. Ему нужно продать продукт, при этом обеспечить высокое качество на мощных картах и сделать так, чтобы игра шла и на дешевых видеокартах, даже интегрированных в системную плату. Поступают они следующим образом: в игру вводится несколько путей кода, которые работают в зависимости от видеокарты. На старых моделях будет выполняться максимально облегченный код, без теней и многих других эффектов. Да, игра пойдет на слабой видеокарте, но в каком качестве? Бывают и такие заявления: «Какие там красоты в Far Cry? Тот же Quake III Arena гораздо красивее». А потом оказывается, что говорящий пытался играть в Far Cry на GeForce 4 MX, которой просто не по силам вытянуть нормальную картинку в относительно требовательной игре.
Если же видеокарта поддерживает все современные технологии, игра включает свои возможности по максимуму. Поток кода выбирается самый «тяжелый» и красочный по эффектам. Частично настройками качества можно управлять в меню игры, но не всегда. Выбрать тот или иной код вы не сможете.
Улучшаем качество!
Владельцы достаточно мощных видеокарт могут повысить качество, включив в драйвере или игре некоторые функции. Опишем самые популярные из них.
У всех наклонных линий есть характерные «лесенки». Включив полноэкранное сглаживание, от них можно избавиться. |
Анизотропная фильтрация (AF). Улучшает качество текстур, находящихся в 3D-мире под углом к зрителю. Возьмите лист бумаги и положите его перед собой. Передний край окажется шире, задний уже. Если же на лист нанесена текстура, то ее тоже необходимо изменить. Собственно, этот процесс и называется фильтрацией. Сначала видеокарты использовали билинейную фильтрацию, затем появилась трилинейная и анизотропная. Последняя — самая качественная, но и самая требовательная. Причем у AF есть уровни качества: от 2x до 16x. Анизотропную фильтрацию проще всего оценить по качеству вывода пола или земли. Попробуйте поиграть без анизотропной фильтрации, потом включите максимальный уровень. Разница будет очевидна.
Полноэкранное сглаживание (Full Screen Anti-Aliasing, FSAA). Позволяет избавиться от характерных «лесенок» на границах объектов. Как мы уже отмечали, объемный мир переносится на двумерный экран компьютера. У него, у экрана то бишь, есть определенное разрешение. А еще вернее — у него есть размеры в точках, например, 1280x1024. Если мы возьмем вертикальную или горизонтальную линию, на экране она будет выглядеть ровно. Проблемы начинаются, если линия идет под углом: появляется «лесенка». Чем мельче точки и чем их больше, тем уступы менее заметны, но они есть. В большинстве случаев лучше включить FSAA, который уберет «лесенки», добавляя в промежутках между «ступеньками» пиксели промежуточного цвета между линией и фоном.
Если игра при включенном сглаживании превратилась в слайд-шоу, стоит поэкспериментировать с настройками. У FSAA тоже есть уровни — от 2x до 8x. FSAA можно включить как в самой игре (если есть), так и в драйвере.
Мягкие тени (Soft Shadows). Эту функцию можно увидеть лишь в самых современных играх. Единственный более-менее известный пример на сегодняшний день — F.E.A.R. С Теперь они не черно-белые, словно вылили ведро краски, а плавные, с размытыми контурами. Включение мягких теней может «поставить на колени» даже самую мощную видеокарту. Владельцам дешевых видеокарт про этот спецэффект можно забыть.
Высокий динамический диапазон (HDR). Сюда относят многие эффекты освещения, повышающие визуальный реализм в игре. Грубо говоря, HDR-эффект просчитывает освещение с высокой точностью. Картинка получается красочной и сочной. Многие современные игры поддерживают HDR — Half-Life 2: Lost Coast, Far Cry, Splinter Cell: Chaos Theory, Serious Sam 2. Но, опять же, потребуется производительная видеокарта.
PCI Express x16 или AGP?
Видеокарты (кроме интегрированных или совсем уж экзотических) подключаются к материнской плате через разъем AGP или PCI Express x16. AGP — это, по сути, расширение PCI. Несмотря на то, что парк компьютеров с AGP-картами все еще огромен, а производители еще предлагают модели под этот разъем, он все же постепенно сходит со сцены. PCI Express x16 — новый интерфейс для графики, обладающий рядом преимуществ. В первую очередь это высокая пропускная способность. В одну сторону — 4 Гбайт/с (PCIE x16). Шина PCIE позволяет одновременно вести прием и передачу данных. Для сравнения, пропускная способность AGP 8x составляет 2,1 Гбайт/с.
Впрочем, на практике ощутимой разницы в производительности между AGP- и PCIE-картами нет. Если вы обновляете систему, то переход на PCIE x16 не всегда оправдан. Ведь потребуется замена и материнской платы. Но если ее нужно менять в любом случае, лучше перейти на PCI Express.
Переход на PCI Express принес еще одно веяние — возможность объединить две видеокарты на одной плате (NVIDIA SLI, ATI CrossFire).
Объем и характеристики памяти
Сегодня большое внимание уделяется графическим процессорам, а память незаслуженно забыли. Зря. На каждой видеокарте установлена видеопамять, с которой работает GPU. Важен ее объем.
Объем памяти важен, но не менее важна и ее скорость. |
Какое-то время назад появились видеокарты с приставкой NVIDIA TurboCache и ATI HyperMemory. Это дешевый, но далеко не лучший вариант. Их оснащают небольшим количеством встроенной памяти, в случае нехватки используется часть оперативной памяти ПК. Общение с ней происходит существенно медленнее. При этом на коробке пишут о 128 Мбайт, хотя физически установлено гораздо меньше.
Кроме объема важна ширина шины памяти. Как правило, она составляет 256 или 128 бит. У самых дешевых карт этот показатель может быть урезан до 64 бит. Чем шире шина, тем быстрее происходит работа с памятью.
Наконец, важна частота — чем выше, тем лучше. Память можно разогнать с помощью специальных программ и даже драйверов. На максимальную скорость влияют задержки памяти, указываемые в миллисекундах. Чем она меньше, тем большую частоту можно задать.
Пиксельные и вершинные конвейеры
Как мы уже отмечали, производители чипов тщательно скрывают их архитектуру. Потребителям они выдают информацию, прошедшую через отдел маркетинга: число пиксельных, вершинных конвейеров, количество различных операций в секунду и т.д. Конвейеры часто называют блоками, группируют их, но это не принципиально. Конечно, число функциональных блоков — важный параметр, но не главный. Гораздо больше значит внутренняя архитектура, которая, как уже было упомянуто, обычно держится в секрете.
У современных графических процессоров число конвейеров достигает 48. Но это не значит, что в игре вы получите в 12 раз большую скорость, чем с четырьмя.
Две видеокарты или одна?
2006 год можно назвать годом параллельных вычислений. Касается это и процессоров, и видеокарт. ATI и NVIDIA представили технологии, которые дают возможность объединить две видеокарты — CrossFire и SLI соответственно. Кроме двух карт понадобится материнская плата с двумя разъемами PCIE x16 и поддержкой той или иной технологии.
С появлением PCIE x16 стало возможным объединять сразу две видеокарты. |
У ATI она реализована следующим образом: есть мастер-карта с чипом смешения картинки. Вторую карту можно купить обычную. Соединяются они с помощью внешнего кабеля. Недавно стало возможным включать режим CrossFire на двух картах младшего или среднего уровней без кабеля. Увы, производительность из-за этого падает.
NVIDIA для SLI использует мост, соединяющий карты. Можно включить SLI и без него, но производительность, опять же, упадет. С появлением новых версий драйверов стало возможным объединять видеокарты разных производителей. Ранее нужны были две абсолютно идентичные платы для корректной работы (включая версию BIOS). Есть необычные карты, реализующие SLI самостоятельно, — на них установлено сразу два чипа. Такие модели не часто можно увидеть в продаже.
Оправдывают ли себя эти технологии? Однозначного ответа нет. С одной стороны, в 2006 году число игр, выигрывающих от SLI/CrossFire, увеличится. С другой, разработчики графических чипов сумасшедшими темпами меняют одно поколение GPU за другим, повышая планку производительности каждые полгода. И стоит ли усложнять систему двумя видеокартами — большой вопрос.
Как оценивать производительность
Как оценить производительность видеокарты? Ответ вроде бы очевиден: берем карту, смотрим результаты в играх — частоту кадров (fps). Но не все так просто.
Игры используют разные потоки кода для разных видеокарт. Качество изображения будет разным, и частота кадров у худшей платы может оказаться даже выше. Скорость в играх стоит сравнивать только между картами с равным набором функций и возможностей.
При выборе новой видеокарты важно учитывать уровень производительности системы в целом, особенно процессора. Его силы не безграничны, и нередко именно он становится узким местом и не дает раскрыть потенциал видеокарты. В таких случаях можно задействовать ее на полную катушку, включив анизотропную фильтрацию, сглаживание, мягкие тени, HDR-освещение и т.п.
Оценивая частоту кадров, обращайте внимание не только на среднее и максимальное число fps, но и минимальное. Средняя частота кадров позволяет оценить скорость в целом, но необходимо знать, как система покажет себя в сложных сценах. Именно в них мы встречаемся с «тормозами».
Наконец, скажем пару слов о специализированных тестовых пакетах типа 3D Mark. Их любят, к ним прислушиваются, но следует помнить, что все эти тесты — синтетические и не могут в полной мере отражать действительность. Кроме того, производители учитывают их специфику при разработке драйверов, всеми силами добиваясь высоких показателей в результатах тестов.
Заключение
В нашем обзоре мы специально не упоминали конкретные модели видеокарт или графических процессоров. Производители штампуют новые поколения столь быстро, что в них порой путаются не только потребители, но и продавцы. Кроме того, мы не случайно оставили в стороне противостояние ATI и NVIDIA. Оно продолжается вот уже не первый год и всем порядком надоело, но при этом продукция обеих компаний заслуживает внимания.
Перед выбором той или иной модели стоит поискать в интернете актуальные обзоры, а также графики тестов в различных играх. Постарайтесь найти не только средние значения частоты кадров в секунду, но и ее минимум/максимум. Если карта будет «проседать» в некоторых сценах, то «тормоза» в игре будут.
Сравнивать производительность нужно среди карт с близкими функциями и возможностями, потому как для принципиально разных алгоритмов разница в выдаваемой частоте кадров не может выступать критерием оценки качества.