Аппаратное ускорение физики в играх: тонкости, возможности, перспективы
Чуть более года назад, в марте 2005, никому не известная на тот момент компания AGEIA объявила о разработке первого в истории аппаратного ускорителя физики. Как это часто бывает, сразу никто это сообщение всерьёз не воспринял. Игровая индустрия – одна из тех областей, в которой революции ожидаются несколько раз в неделю: сегодня нам обещают революционные нововведения в игровом процессе, а завтра мы узнаём, что это было не более чем рекламной фишкой. Примерно то же самое было и с AGEIA и её физическим ускорителем PhysX. Мало ли какие ускорители ещё придумают. Слыхали мы и о воксельных акселераторах, и о программных ускорителях Интернета, и вообще много о чём...
Впрочем, на последовавшей после этого конференции GDC (Game Developers Conference – западный аналог и прообраз отечественной КРИ) AGEIA раскрыла-таки первые подробности, и все сомнения насчёт существования ускорителя моментально развеялись. Похоже, мы в самом деле имеем дело с новым этапом развития игр и, следовательно, игрового железа. Всё бы хорошо, вот только сразу после этого компании-производители графических карт нашли альтернативные способы ускорения физики. Обо всём этом и пойдёт речь в данной статье.
Прелюдия
Времена, когда компания 3DFX представила первый ускоритель трёхмерной графики, вы, наверное, помните слабо. И действительно, было это очень давно. Напомним, что первый 3D-ускоритель именовался Voodoo и работал в паре с обычной видеокартой. Какие последствия это за собой повлекло, всем понятно. Качество графики в играх за какие-то два года сделало просто неимоверный скачок, 3DFX продолжила развивать свои идеи и после Voodoo представила Voodoo 2, Voodoo 3 и т.д. Развитие игр шло по прямой. Каждый год возрастали среднестатистические системные требования, надпись «обязательное наличие 3D-ускорителя» присутствовала почти на каждой коробке.
С тех времён мало что изменилось. На рынке графических карт появились новые игроки – ATI и NVIDIA, которые постепенно наращивали бицепсы и одну за одной выпускали линейки карт. GeForce 256, GeForce 2, 3, 4, 5xxx, 6xxx, 7xxx… Radeon 7xxx, 8xxx, 9xxx, Xxxx, X1K… Про 3DFX сейчас мало кто помнит. А на рынке игрового железа грядёт новая эра – эра ускорителей физики. С одной стороны, такое событие можно было предсказать всего пару лет назад, с другой – никто так и не рискнул предположить, что следующей областью, в которой потребуется аппаратное ускорение, станет именно физика. Сейчас мы можем назвать около десятка технологий по расчёту физик в играх, которые давно и прочно вошли в индустрию: Meqon, Havok, MathEngine, Tokomak, Newton, Karma… и это первое, что пришло на ум. Существует ещё немало физдвижков, менее примечательных, но, тем не менее, успешно существующих.
Так или иначе, именно компания AGEIA и чип PhysX стали первопроходцами в деле аппаратного ускорения. Итак, что же представляет собой этот PhysX? Что он даст разработчикам? Игрокам? Индустрии в целом?..
AGEIA PhysX изнутри и снаружи
Итак, начнём с сути явления. В первую очередь необходимо отметить, что PhysX – это не какое-то чудо света, а вполне понятное решение. Чип, который окрестили PPU (Physics Processing Unit), будет брать на себя все задачи, стоящие перед физическим движком – или хотя бы большую их часть. Сейчас вся нагрузка уходит на центральный процессор и частично на процессор видеокарты. PhysX будет обсчитывать траектории движения различных объектов после столкновения, поведение жидкостей в различных условиях, симулировать траву, волосы, ткань, шерсть, кроны деревьев, волны на водной поверхности. Вообще всё.
Бумага в играх наконец-то станет бумагой, дерево, как ни странно, деревом, бетон – бетоном и т.д. Это позволит увеличить качество графики (ведь CPU и GPU освобождены от лишней нагрузки) и достигнуть новой степени реализма. Если вы видели первые ролики, демонстрирующие возможности PhysX, то вы поймёте, что мы имеем ввиду. Для тех, кто не видел, в конце статьи приведены ссылки – настоятельно рекомендуем их посмотреть, поскольку скриншоты не могут передать всей прелести. По заявлениям разработчиков, их детище будет в состоянии обрабатывать порядка 30-50 тысяч физических объектов одновременно. Хорошо, если на сегодняшний день в играх это число составляет пару десятков.
Рассмотрим технические характеристики устройства. Поставляться оно будет как отдельная плата (внешне очень походит на обыкновенную видеокарту, только без каких-либо выходов) для слота PCI (чуть позже выйдет и версия для PCI-express). Изготавливается чип по 130-нанометровому техпроцессу, а число транзисторов составит около 125 млн. (для сравнения: у GeForce 6600 количество транзисторов составляет 143 млн., у Radeon X1600 – 157 млн.). Плата с PhysX будет потреблять 25 Вт энергии. Что касается памяти, что на борту у первых образцов установлено 128 Мбайт GDDR.
На данный момент вышли всего две карты на базе PhysX. Одна из них – ASUS PhysX P1, вторая – от производителя BFG. Различие между ними состоит в объёме памяти (128 Мбайт на борту у решения от BFG и 256 Мбайт у карты от ASUS). Более того, различна и частота, на которой эта память работает: 500 МГц DDR против 733 МГц DDR в пользу ASUS PhysX.
Для работы с PhysX потребуется комплект разработчика (developer kit). Пока единственным приспособленным к PhysX является Novodex, но AGEIA ведёт переговоры с другими производителями физического ПО. Совершенно точно, впрочем, уже ясно, что компания Havok, обладающая правами на одноименный программный физдвижок, не будет сотрудничать с AGEIA, т.к. уже подписала соглашение с NVIDIA, но об этом позже.
Итак, подведём промежуточный итог. По мнению AGEIA, для того, чтобы игровая физика вышла на качественно новый уровень, необходим отдельный ускоритель, производством которого, собственно, она и занимается. ATI и NVIDIA, ведущие производители графических чипов, придерживаются другой позиции.
ATI, NVIDIA и их взгляд на физику
Инженеры этих компаний считают, что обработку физических объектов могу взять на себя видеокарты. По словам представителей ATI, возможности чипов R520 и R580 сегодня полностью не раскрыты. И если, например, в «Half Life 2» переложить обсчёт физики на графический процессор, то производительность игры возрастает на 20-30%. Безусловно, видеокарты находятся в более выгодном положении. Игроку, желающему приобрести мощную машину за весьма ограниченные деньги, глубоко всё равно, какая её часть, отдельная плата или видеокарта, будет отвечать за физику. Точная цена, по которой PhysX поступит в продажу, пока не известна. Разные источники называют разные цифры, но в среднем получается около $200-300. Купив PhysX, покупатель не будет избавлен от необходимости покупки графической карты. Выбор между схемой «видеокарта + ускоритель физики» или «одна видеокарта» при прочих равных очевиден. Другой вопрос – что лучше.
Как показывает практика, узкоспециализированные продукты часто оказываются лучше своих аналогов, обременённых лишними функциями. Ни для кого не секрет, что телефон + плеер – совсем не то же самое, что телефон-с-функцией-плеера, или что связка КПК + камера в любом случае выигрывает у КПК-со-встроенной-камерой. Абсолютно аналогичная картина наблюдается и здесь. То есть теоретически PhysX должен справляться с задачей обсчёта физических объектов лучше, чем видеокарта. Однако ATI приводит данные, согласно которым их новые карты превосходят продукт AGEIA. Доверять им нет смысла, пока у нас нет реальных данных по тестированию.
Вообще оценить производительность по части физики сейчас сложно, если не сказать, что вообще невозможно. Тестовые пакеты семейства 3DMark пока не готовы к таким испытаниям: установка карты на основе PhysX никак не влияет на конечный результат.
Что касается непосредственно NVIDIA, то никаких громких заявлений, в отличие от своего канадского оппонента, она не делала. На прошедшей в марте этого года конференции Game Developers Conference (GDC) в Сан-Хосе (США) она лишь объявила о том, что движок Havok FX будет оптимизирован под возможности GeForce 6xxx и 7xxx. Одна из пары видеокарт, связанных посредством SLI, будет полностью отдана под нужды физдвижка, а вторая будет отвечать за графику. Возможна и работа с одной видеокартой, но, разумеется, производительность будет ниже. Тот же Havok FX, к слову, будет работать и в связке с видеокартами от ATI. Но, повторим, пока у нас нет данных тестирования, говорить о том, что лучше, а что хуже, нельзя.
Игры
Представители сайта Anandtech уже успели оценить все прелести PhysX на примере игры «Tom Clancy's Ghost Recon: Advanced Warfighter». Конечно, прежде всего была отмечена возросшая зрелищность игры. Но вместе с этим журналисты отметили и ряд негативных моментов, – в частности, снижение fps в момент начала обсчёта большого числа физических объектов. Производительность игры серьёзно падает, когда необходимо передать данные с физического процессора к центральному. Причиной этому может быть шина PCI с недостаточной пропускной способностью или просто неумелая оптимизация игры под возможности PhysX. Полноценное сравнение можно будет произвести после появления PhysX для PCI Express x1 или PCI Express x4.
Вообще, уже много разработчиков успело объявить о поддержке PhysX. И очень интересно будет со временем понаблюдать за соотношением компаний, поддержавших AGEIA, и NVIDIA/ATI + Havok. Именно по этому соотношению можно будет судить о том, кто же всё-таки одержал победу в «гонке вооружений». В прошлом году более десятка игровых компаний поддержали AGEIA, а в нынешнем на одной только Е3 2006 AGEIA «подписала» ещё более десяти компаний, в число которых вышла создательница «Mafia: City Of Lost Heaven» и серии «Hidden & Dangerous» Illusion Softworks, отечественная Gaijin Entertainment, Crazy House Software, NetDevil, ELSA Japan, Kuju Entertainment. Стоит ли упоминать об Epic Games и её технологии Unreal Engine 3.0 – именно на неё возлагаются особые надежды.
Вместо заключения
Что ж, пришло время подвести всему вышесказанному итог. Теперь вы имеете представление о том, в какую сторону будут развиваться современные игры. Ещё раз повторим, что на данном этапе трудно сделать определенные выводы в пользу того или иного решения по причине того, что ещё не вышли многие игры с поддержкой ускорителей физики, и пока нет тестового пакета, который позволял бы тестировать производительность в обработке физических объектов. В грядущем противостоянии участвуют два лагеря: AGEIA, продвигающая концепцию отдельного устройства, и ATI/NVIDIA, под карты которых будет «затачиваться» последняя версия физического движка Havok.
По нашим предположениям, по качеству и производительности впереди окажется PhysX, однако все разработчики на его сторону не перейдут, поскольку серьёзным ограничивающим фактором является цена. Не многие сегодня готовы отдать $300 за физический ускоритель. Неплохо выглядит и позиция графических чипмейкеров, совмещающих физический ускоритель и видеокарту в одном устройстве. В общем, эта тема со временем будет становиться всё актуальнее, а это значит, что нам придётся к ней неоднократно возвращаться. И в следующий раз, судя по всему, мы займёмся тестами. Ждать осталось недолго. А пока все желающие могут посмотреть видеоролики, на которых демонстрируются результаты работы карты на базе чипа PhysX:
Сцена Large Scale Destruction