Графические технологии в играх: Need For Speed: Most Wanted (стр. 1)
Техническая характеристика
Need For Speed: Most Wanted — это аркадная гоночная игра, разработанная студией EA Canada и выпущенная компанией Electronic Arts в ноябре 2005 года на нескольких игровых системах. К счастью игроков на персональных компьютерах, мультиплатформенность игры в этот раз сыграла в их пользу. Так как версия для Xbox 360 является достаточно продвинутой в технологическом плане, да и качество ресурсов игры (разрешение текстур, сложность геометрических моделей) в версиях игры для ПК и Xbox 360 значительно отличается от таковых в остальных версиях в лучшую сторону.
Графический движок, применяемый в Most Wanted, используется играми серии, начиная с Need For Speed: Hot Pursuit 2, со времени появления он подвергается постоянным модификациям и поддерживается на хорошем технологическом уровне, пусть и не самом передовом. Этот кроссплатформенный движок — внутренняя разработка компании Electronic Arts, которая используется во множестве мультиплатформенных игр компании, таких, как серии FIFA и NHL. Этот высокоуровневый движок получил название EA Graphics Library (EAGL), игрой используется его четвертая версия — EAGL4.
EAGL — это система рендеринга в реальном времени, основанная на легко портируемом API и runtime коде, написанном для следующих платформ: Sony PlayStation 2, Nintendo GameCube, Microsoft Xbox, Microsoft Xbox 360, и персональных компьютеров с видеокартами уровня DirectX 8 и DirectX 9. Также вероятно использование EAGL и в проектах компании для портативной консоли Sony PlayStation Portable. Runtime код для каждой отдельной платформы разработан с учетом использования всех аппаратных возможностей и возможностей применяемых графических API. Так, на ПК и Xbox 360 используются вершинные и пиксельные шейдеры версий 2.x и 3.0.
Изначально EAGL был разработан для PlayStation 2, но так как EAGL позволяет легко перенести код на другие аппаратные платформы, за короткое время он был портирован на другие системы: Xbox, GameCube, ПК. Для каждой платформы написали свой runtime код и набор «методов рендеринга»: шейдерных программ, написанных на специализированном языке. Получившийся гибкий движок является почти таким же быстрым, что и движки, написанные для отдельных игр и платформ, что привело к широкому применению EAGL в играх производства компании самых разных жанров: спортивных, гоночных, FPS и других. Интересно, как на судьбу EAGL повлияет покупка Criterion, с ее мультиплатформенным middleware движком RenderWare? Что будет использоваться компанией в дальнейшем, следующие поколения EAGL, RenderWare или нечто единое, вобравшее в себя и то, и другое? Вопрос интересный, но лишь теоретически, а мы переходим к рассмотрению особенностей графического движка EAGL в игре Need For Speed: Most Wanted.
Визуальную часть игры отличает применение довольно большого количества вершинных и пиксельных шейдеров: для расчета освещения, наложения карт нормалей, в алгоритмах наложения теней и постфильтрации. Используются многочисленные методы постобработки изображения: motion blur, distortion, overbright, pseudo HDR и т.п. Легко догадаться, что Most Wanted предлагает игроку большие открытые пространства, даже очень большие. Доступен сразу целый город с окрестностями, загрузка ресурсов осуществляется «на лету». Хотя пейзажи страдают недостатком геометрических деталей, на скорости смотрится все неплохо, видимо, на это и был расчет. Для рендеринга теней движком игры используются карты теней (shadow maps), которые лучше всего подходят для открытых пространств с единственным интенсивным источником освещения.
Средний объем геометрии, обрабатываемый игрой в одном кадре в обычных игровых условиях, находится на среднем уровне для современных игр. Среднее количество полигонов в кадре при максимальных настройках — 140000-150000, причем, минимальное значение составляет около 50000 треугольников, а максимальное — более 300000. Минимальные настройки значительно менее агрессивны, от 10000 до 100000 полигонов в кадре, среднее значение — 40000 обрабатываемых треугольников, то есть, почти в четыре раза меньше, чем на максимуме. Напомню, речь только об игровых ситуациях.
Most Wanted не так требовательна к объему локальной видеопамяти, как многие другие современные игры, вышедшие исключительно на ПК (F.E.A.R.) и некоторые мультиплатформы (Call Of Duty 2, Ghost Recon: Advanced Warfighter). В нашем обычном тестовом разрешении 1024x768, с включенным антиалиасингом максимального уровня (4x MSAA) и максимальными же настройками качества игры, она использует от 100 до 200 Мб видеопамяти, среднее значение составляет 150-160 Мб. То есть, 256 Мб памяти на видеокартах игре вполне достаточно, а возможно, и быстрые адаптеры с 128 Мб смогут показать приемлемую производительность, используя часть системной памяти для ресурсов игры. А на минимально возможных настройках качества эта игра использует всего лишь 30-40 Мб видеопамяти, что опять примерно в четыре раза меньше. В таких широких рамках приходится масштабировать нынешние ПК игры для достижения приемлемой производительности на большинстве игровых систем...
Графическим движком игры используются шейдерные программы, написанные на HLSL, они заранее скомпилированы (runtime компиляции не происходит) и на тестовой системе с видеокартой, поддерживающей Shader Model 3.0, применяются вершинные шейдеры версий 1.1 и 3.0 и пиксельные шейдеры версий 1.1, 2.x (ps_2_b) и 3.0. Наибольшее количество используемых программ версии 1.1, вершинные шейдеры 3.0 и пиксельные шейдеры версии 3.0 с циклами хотя и присутствуют, но в весьма ограниченном количестве. По сути, используются единицы шейдеров версии 3.0, несколько 2.x, а основная часть осталась в виде вершинных и пиксельных шейдеров версии 1.1. Это может быть следствием начальной разработки игры под общие возможности Xbox 1 и ПК, и последующей доработки Xbox 360 и ПК версий. Хотя игра и использует много шейдеров старой версии, рассчитана она больше на видеочипы с поддержкой возможностей DirectX 9. Во всех пиксельных шейдерах версии 2.x и 3.0 сделаны оптимизации в виде расчетов с пониженной точностью (partial precision), которые улучшают производительность на всех современных видеокартах NVIDIA, а особенно — серии NVIDIA GeForce FX.
Начиная с этого технологического обзора, мы планируем использовать утилиту профилирования PIX, входящую в состав Microsoft DirectX 9 SDK, вместе с плагином из комплекта NVIDIA PerfKit 2 для сбора интересных статистических цифр. Кстати, интересный факт — во время отладки Need For Speed: Most Wanted программистами компании использовалась утилита для разработчиков NVIDIA PerfHUD из все того же комплекта NVPerfKit 2. Статистика, собранная в PIX на нескольких уровнях игры, показывает, что при максимальных настройках в разрешении 1024x768 видеочип GeForce 7800 GTX простаивает (по счетчику gpu_idle) около 20-30% времени, наиболее вероятен упор в возможности центрального процессора или системной памяти, а точнее — в особенности работы Direct3D 9. Среднее использование блоков пиксельных шейдеров (счетчик pixel_shader_busy) — 30-40%, блоков вершинных шейдеров (счетчик vertex_shader_busy) — 5-7%. Подтверждаются явные проблемы общей полигональной недостаточности, разработчики могли бы использовать гораздо более сложные геометрические объекты, особенно это касается статической геометрии игрового мира.
Наибольшая утилизация блоков пиксельных шейдеров наблюдается в игровых сценах с дождем, вероятно, наиболее требователен к этому рендеринг мокрого асфальта. Средняя доля времени ожидания блоками пиксельных шейдеров выборки данных из текстур (счетчик shader_waits_for_texture) — 15-20%, а ожидание операций записи во фреймбуфер (shader_waits_for_rop) — 10-15%, что говорит и о серьезном упоре игры в скорость текстурирования и операций растеризации, нежели в производительность пиксельных шейдеров. Иными словами, игре желательно было бы подбавить также и более сложных пиксельных шейдеров. Но это — на high-end видеокарте, не надо забывать. Возможно, на менее мощных видеокартах ситуация будет совсем иной.
Краткая история
История игр серии Need For Speed насчитывает уже более десяти лет, в линейке игр, учитывая специальные издания и все платформы, уже не один десяток названий. Все началось с создания игры Need For Speed силами небольшой канадской игровой студии Distinctive Software, разработавшей до этого такие игры, как Stunts и Test Drive 2. В 1991 году Electronic Arts купила студию, получившую в дальнейшем название Electronic Arts Canada, и в 1992 году они занялись разработкой первой игры очень популярной серии (о чем они тогда еще вряд ли догадывались) Need For Speed.
В течение многих лет выходило несколько продолжений игры, сначала под номерами, а затем просто под обобщающим названием Need For Speed. Их разработкой в разные времена занимались компании: Electronic Arts Canada, Electronic Arts Seattle и канадская игровая компания Blackbox Software, в 2002 году продолжившая серию игрой Need For Speed: Hot Pursuit 2. Эта студия также была куплена и вошла в состав EA под названием Electronic Arts Blackbox. Hot Pursuit 2 была традиционной для серии игрой, с дорогими суперкарами и дневными загородными трассами. Это уже позднее появились известные ночные «стритрейсерские» Need For Speed: Underground и Need For Speed: Underground 2, в 2003 и 2004 годах, соответственно.
Need For Speed: Most Wanted — это последняя игра серии NFS, появившаяся уже далекой осенью 2005 года. Игра была одной из первых, версия которой предназначалась и для первой консоли нового поколения — Microsoft Xbox 360. Также вышли версии для ПК, Sony PlayStation 2, Nintendo GameCube и Microsoft Xbox. В этой части Need For Speed вернулся к истокам, Most Wanted ближе всего к играм серии под названием Hot Pursuit, -это куча дорогих спортивных автомобилей (и без доминирования японских производителей, что очень важно) и гонки с участием полиции. Игра взяла лучшее и в серии Underground, от нее игре достался режим свободной езды по всем городским территориям, но, к счастью, постоянные ночные заезды в этот раз отменили (эх, не вернулись бы они в NFS: Carbon обратно). Теперь можно ездить не только по дорогам, а почти где угодно — парки, дворы, поля и т.п.
Одни из первых скриншотов игры были представлены публике весной-летом 2005 года (в том числе на игровой выставке E3 того года), они впечатляли очень качественными моделями автомобилей, были заметны на них оригинальные эффекты постобработки и реалистичные мягкие тени. Также, игра явно отличалась применением карт нормалей на некоторых поверхностях (далеко не всех, к сожалению) и реалистичными отражениями на автомобилях. Вероятно, или технологический уровень мультиплатформы поднялся из-за того, что игра готовилась к выходу, в том числе и на Xbox 360, или это произошло из-за постоянно растущего уровня технологий на ПК. Результат один — получилась довольно продвинутая технологически современная игра.
На этих первых скриншотах видны геометрически сложные модели автомобилей, мягкие реалистичные тени, отбрасываемые всей геометрией уровня, в том числе деревьями, постэффекты (glare, bloom), применение нормалмаппинга на дорожной поверхности. И общая детализация со времен Underground 2 заметно подросла.
Явно видно, что текстуры дорожного полотна стали более детализированными, модели машин выполнены из большого количества полигонов, для имитации реалистичных отражений на них применяются динамические карты среды. Постэффекты типа bloom сразу привлекают к себе внимание, хотя его интенсивность на левом скриншоте явно излишняя.
В то время у некоторых игроков появились опасения, что пользователям ПК достанутся технологически отсталые возможности мультиплатформы для Xbox и PS2, а не гораздо более продвинутая версия для Xbox 360. Но все кончилось для нас хорошо: перед релизом вышла демонстрационная версия, в которой были хорошо видны все ранее обещанные скриншотами технологии и приличное качество контента (текстур, моделей и т.п.). Как показала финальная версия игры, демка не отличалась от нее технологически и показала именно то, что от нее ждали.
Особенности графики в игре
Графическая часть игры технологически современна, и на сегодняшний день ее отличает использование некоторых нововведений, а во время ее появления она была одной из наиболее технологичных игр того времени. Игру особенно отличают сложные модели автомобилей (в отличие от всего игрового мира, который остался бедным на полигоны), неплохие эффекты постфильтрации, применение карт нормалей (normal mapping), многие материалы имеют несколько слоев (diffuse, normal, specular) и т.п. Так как игра является аркадным гоночным симулятором, все игровые пространства в ней открытые (outdoor), присутствуют как городские кварталы, так и загородные участки трасс, и индустриальные районы.
Некоторые претензии к качеству арта есть: геометрическая сложность уровней сильно хромает, всем зданиям и конструкциям явно не достает того количества полигонов, которые должны быть в любой современной игре. Слабоваты и многие текстуры окружающей среды, те же текстуры дорожного покрытия, особенно — с учетом применения карт нормалей.
Можно было раскошелиться на более качественные ресурсы, переделать основные текстуры трасс для Xbox 360 и ПК версий, у них ведь явно хватает видеопамяти для того, чтобы увеличить объем текстур раза в два. Зато модели автомобилей (только те, которые участвуют в гонке, на трафик без слез смотреть нельзя) просто чудесные - моделлеры компании хорошо постарались, все автомобили сделаны на очень хорошем современном уровне, каждый из них содержит по 20000 полигонов и более. Предлагаю посмотреть несколько картинок и одну из них — wireframe, чтобы можно было наглядно оценить сложность модели.
Для построения теней игрой используются карты теней (shadow maps), которые отлично подходят для отображения открытых пространств с единственным удаленным источником освещения — солнцем. Остальными источниками в этом случае пренебрегают, тени строятся только для одного. Метод рендеринга теней при помощи соответствующих текстур (карт теней) был придуман в далеком 1978 году, их преимуществами перед теневыми объемами являются: меньшая зависимость скорости от сложности геометрии сцены и сравнительно простое использование. А основными недостатками — алиасинг, рваные края теней и требовательность к объему видеопамяти. Для решения первых проблем используется предварительная фильтрация (размытие) карт теней, а последняя проблема решается постоянно увеличивающимся объемом набортной видеопамяти.
В Need For Speed: Most Wanted используются карты теней среднего размера, и они предварительно фильтруются для снижения количества артефактов алиасинга. Получаются хорошо выглядящие мягкие тени, хотя некоторые проблемы «зубчатости» теней все равно остаются, особенно при их наложении на модели автомобилей (см. левый скриншот). В зависимости от настроек игры, тени может отбрасывать вся геометрия сцены, на максимальных настройках получаются отличные динамические тени от автомобилей, статичных объектов и даже листьев деревьев. Мне могут возразить, что подобные тени от деревьев были еще в Porsche Unleashed, но это не так: там тени предварительно просчитанные, статические и не накладываются на всю геометрию сцены. Здесь тени динамические и по мере изменения игрового времени суток, они реалистично изменяются. Не хватает только самозатенения, ведь то же антикрыло автомобиля на правом скриншоте в реальности должно отбрасывать тень на автомобиль...
Обычное дело в новых играх — эффектам постобработки уделено особое внимание. Такие эффекты являются одними из наиболее важных в современных 3D играх, в игре Most Wanted применяется несколько уже известных фильтров постобработки: фильтр motion blur (можно сказать даже radial blur, как частный случай) — в сценах, происходящих на большой скорости, bloom (он же overbright) — увеличение яркости светлых участков изображения, distortion — для отображения капель дождя, и другие постфильтры, в том числе оригинальные, которые мы увидели в играх серии впервые.
Примеры постэффекта bloom (overbright), видны светлые ореолы вокруг ярких участков изображения, в данном случае — неба:
Примеры постэффекта glare, применяемого в игре для солнца и некоторых других источников света:
Примеры известного всем эффекта motion blur (radial blur), который появляется в случаях действительно быстрой езды:
Рассмотрим еще две картинки, на первой из которых — пример комплексной дополнительной обработки кадра, когда используется несколько фильтров одновременно: saturation, glare, bloom, motion blur, distortion, а на второй — постфильтр noise, имитирующий телевизионное изображение во время сцен ареста игрока полицией.
К сожалению, графическим движком игры не поддерживается «настоящий» HDR рендеринг с использованием форматов повышенной точности, как могут подумать некоторые, глядя на bloom и нечто подобное динамическому tone mapping в процессе игры. Это всего лишь простые LDR эффекты постобработки: bloom (overbright), увеличивающий яркость светлых участков, и псевдо HDR (фальшивый динамический tone mapping) эффект, динамически изменяющий параметры фильтра bloom таким образом, чтобы результат был похож на имитацию восприятия освещения человеческим зрением, его адаптацию к различным условиям освещения.
Эффект больше всего заметен при выезде из тоннелей или из-под мостов. Сначала интенсивность свечения ярких поверхностей велика, но постепенно яркость снижается. Это похоже на HDR рендеринг и эффект от работы оператора tone mapping, но без использования формата хотя бы с 16-бит на цвет добиться «настоящего» HDR не получится, некоторые и 16-битные форматы называют лишь средним динамическим диапазоном. Поэтому можно сказать, что в Need For Speed: Most Wanted применяется хитрая эмуляция, на самом деле, даже снижающая количество одновременно видимых цветов. А зря, ведь расчеты постфильтров в HDR всегда выигрывают в качестве, ведь можно было бы и дать выбор пользователям...
В целом, графика в игре технологически достаточно высокого уровня, самые большие просчеты, на мой взгляд: малополигональный игровой мир и недостаточная детализация текстур на многих поверхностях, в том числе дорожных, а ведь это именно то, что видишь в игре чаще всего. Можно было бы увеличить разрешение карт теней (shadow maps), или дать возможность пользователям самим выставлять требуемое. Не помешало бы и улучшение фильтрации карт теней, края теней слишком зубчаты и недостаточно мягки. Также хотелось бы уже получать не просто наложение карт нормалей, а использование более продвинутых методов, таких, как parallax mapping. На некоторых поверхностях в игре это бы выглядело великолепно. Расстраивает отсутствие возможности HDR рендеринга, хотя программисты EA Canada сделали метод псевдо-HDR в игре, и вполне вероятно, что большинству пользователей этого будет более чем достаточно, но слишком явно убивается часть цветовой информации в картинке после подобного постфильтра.
Настройки качества графики
Need For Speed: Most Wanted весьма требовательна к производительности игровой системы, даже на high-end системах производительность не всегда соответствует желаемому уровню при условии максимальных настроек, наблюдаются редкие, но неприятные рывки. Заставить ее работать плавно не так просто, в разрешении 1024x768 с максимальными настройками и включенными анизотропной фильтрацией и антиалиасингом среднюю частоту кадров выше 60 кадров не обеспечивают и топовые видеокарты, вероятно, ограничивающим фактором видеосистема не является. Даже если взять за планку 45 кадров в секунду, то в таких условиях показывают себя хорошо карты, начиная с ATI RADEON X1800 XL и NVIDIA GeForce 7800 GT. А для действительно высоких разрешений и SLI не поможет.
Многие пользователи жалуются на лаг, дерганья картинки в игре. Во-первых, необходимо проверить объем оперативной памяти, он должен быть не меньше 512 Мб, а лучше — 1 Гб. Отсутствие плавности даже при высокой частоте кадров наблюдается и на некоторых системах с двухядерными процессорами Pentium D и AMD Athlon 64 X2 или процессорами Pentium 4 с включенным Hyper-Threading. Решение проблемы заключается в форсировании использования процессом игры только одного из физических или логических ядер центрального процессора.
Если плавности нет, нужно проверить получаемую частоту кадров, например, при помощи сервера статистики RivaTuner или приложения FRAPS. Чтобы убрать лаги и низкий FPS, нужно изменять игровые настройки так, чтобы достичь средней частоты кадров хотя бы выше 30-35 FPS. Основные параметры, на которые следует обратить внимание: уровень антиалиасинга, общая настройка LOD в игре, а также Car Reflection Detail, World Detail и Shadow Detail. К сожалению, в игре нет возможности встроенного тестирования производительности. Мало того, даже записей гонок и их воспроизведения нет. Поэтому тестирование производительности доступно только примерное, с использованием утилит вроде FRAPS. Тесты проводятся так: запускается FRAPS и игра, делается измерение среднего FPS во время прохождения одной и той же гонки, выбираемой в меню Quick Race — Custom Race, с одной конфигурацией и машиной. Мы использовали первую Sprint гонку в режиме Quick Race, стандартный автомобиль Porsche Carrera GT без тюнинга, максимальную плотность трафика и трех оппонентов. К сожалению, погодные условия гонки и время ее проведения каждый раз отличаются, поэтому разброс результатов может быть весьма велик. Также и сама гонка никогда не будет проходить одинаково, изменения всегда есть. С абсолютно одинаковыми настройками, одна и та же трасса, одни и те же автомобили, но с разным стилем прохождения гонки значения достигнутой средней частоты кадров могут отличаться на 10%! Понятно, что такие измерения для серьезных тестов не годятся совсем, а для наших прикидок они подойдут.
В обзоре мы рассмотрим влияние графических настроек игры с двух сторон, принимая за точку отсчета максимальные и минимальные настройки в разрешении 1024x768. При минимальных настройках качества будем определять отрицательное влияние включенной на максимальное значение настройки, а при максимальных — наоборот, прибавление в кадрах в секунду от каждой установки, выкрученной на минимум. Это позволит более полно оценить влияние каждой настройки на общую производительность, и будет полезно как для пользователей с недостаточно мощными системами, желающими получить хорошее качество, так и для тех, кто хочет узнать, какую настройку стоит снизить самой первой.
Чтобы изменить настройки, ответственные за качество рендеринга, нужно выбрать раздел «Options» в главном меню, затем выбрать «Video» из нескольких существующих подсекций. Появится так называемое основное («Basic») окно настроек, в котором доступно лишь изменение игрового разрешения и общий ползунок «Level Of Detail». Выбор доступных разрешений на тестовой системе: 640x480, 800x600, 1024x768, 1280x960, 1280x1024, 1600x1200. Таким образом, учтены как пользователи большинства LCD мониторов с соотношением сторон 5:4, так и более привычные разрешения с соотношением 4:3. О широкоэкранных 16:9 и 16:10 сказать такого не могу, возможно, разрешения появляются только на мониторах с подобным соотношением сторон.
Общая настройка «Level Of Detail» воздействует на используемое игрой разрешение текстур и геометрическую сложность моделей, а также на отдельные настройки, на которых мы остановимся ниже. Она пригодится, прежде всего, плохо разбирающимся в 3D технологиях пользователям, всем остальным рекомендуется ее выставление на максимум при ручном изменении остальной конфигурации. Для наглядности приводим таблицу зависимости настроек игры от параметра «Level Of Detail»:
Без изменения отдельных настроек добиться максимального качества картинки не удастся, многие из значений не достигают своего максимума при подобной полуавтоматической настройке. Взять те же тени — самое большее, что вы получите — тени от автомобилей и небольших объектов, а включить их для всей геометрии можно лишь вручную. Поэтому, для достижения оптимальных настроек качества и производительности рекомендуется вручную настроить все по отдельности в меню «Advanced», зайти в которое можно при помощи клавиши «2» (такой «удобный» интерфейс придумали в EA) или нажав на надписи «Advanced» левой кнопкой мыши.
Всего комментариев: 0 | |