Выбираем видеокарту. Часть 1

Сердце любой современной видеокарты – графический процессор (GPU). Как и процессор центральный (CPU), он считывает данные из памяти, обрабатывает их и записывает обратно. Правда, память современные GPU используют отдельную, расположенную непосредственно на видеокарте. В принципе графический процессор может использовать и основную оперативную память, но это, как вы понимаете, менее эффективно. Впрочем, обо всем по порядку.

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

От поколения к поколению GPU стали брать на себя все больше задач, постепенно наращивая мощность. Ведь все, что GPU не сможет просчитать аппаратно, компьютеру придется вычислять программно (читай – мощностями центрального процессора). Вывод напрашивается сам: лучше всегда брать видеокарту на процессоре последнего поколения. Благо ATI и NVIDIA выпускают карты для разных ценовых сегментов с каждым новым поколением GPU. Но и здесь есть тонкости. Чтобы во всем разобраться, начнем с основ: собственно с трехмерной графики.

Что такое трехмерная графика?
Нынешние мониторы, как известно, рисуют плоскую картинку, а объем додумывает человеческий мозг. Даже самое сложное «трехмерное» изображение в конечном счете – лишь набор из многих тысяч треугольников (полигонов). Реально трехмерным изображение может называться только тогда, когда картинка для каждого глаза будет формироваться индивидуально. Такие проекты уже есть, но они еще слишком дороги и в массовое производство не идут. Нам же остается довольствоваться взглядом в псевдо-трехмерный мир через окошко монитора.

• • •
При отрисовке такого мира игра средствами процессора просчитывает все необходимые координаты, вычисляет изменение мира и поведение игровых предметов, реагируя на действия игрока. После этого формируется текущее состояние мира, которое будет выводиться в кадр. Подобные операции проводятся много раз в секунду, что требует от компьютера немалой вычислительной мощности. Помните: производительность процессора и видеокарты должны быть сбалансированы, иначе общая мощность системы упрется в «слабое звено» (либо в видеокарту, либо в процессор), и лишние $100-$200, уплаченные за дорогую железку, себя не оправдают.

• • •
Процесс вывода трехмерного мира на экран можно условно разделить на две части: геометрическую (вершинную) и пиксельную.
В геометрической части проводятся сложные математические расчеты. Не забывайте, что нам нужно превратить полноценный трехмерный мир в лоскутное одеяло из тысяч треугольников на экране. Нужно просчитать, какие объекты перекрывают друг друга, обрезать трехмерный мир по полю зрения пользователя (экран монитора), выкинуть из расчетов те точки и вершины, которые находятся на стороне объектов, не обращенной к пользователю1. Наконец, необходимо трансформировать координаты из трех измерений в два. Раньше расчетами геометрии занимался исключительно центральный процессор, но где-то с 2000 года графические ускорители стали брать часть нагрузки на себя.

• • •
Посмотрите на окружающие вас объекты. Все они отличаются какой-либо текстурой: рисунок обоев, древесина письменного стола, матовый пластик монитора. Точно так же в игре все объекты имеют текстуры. Естественно, мало просто отрисовать текстуры, нужно их и правильно осветить, иначе мир станет напоминать картину Малевича. За все это также отвечает графический ускоритель. Нанесение текстур относится к пиксельной части задачи вывода 3D-мира.
Надо отметить, что современные карты еще не умеют в реальном времени просчитывать реалистичное освещение по так называемому способу трассировки лучей (ray tracing), когда просчитывается ход всех лучей от всех источников света. Но мы подходим к этому все ближе и ближе. Многие эффекты (отображение неровностей поверхности, вода с преломлениями и отражениями, туман и т.д) графические ускорители уже научились выполнять аппаратно. В будущем вы уже вряд ли отличите сгенерированный компьютером пейзаж от фотографии2.

Продолжение следует...


Рекомендуем почитать: