⇡#Графический движок Far Cry 3
Far Cry 3 построен на движке Dunia 2, ведущего родословную от первой версии CryEngine, которая лежала в основе самого первого Far Cry, а следующие версии используются в серии Crysis. Но, несмотря на именитое родство, а также всю привлекательность Far Cry 3, нельзя не признать, что эта игра больше берет проработанным дизайном, чем передовыми технологиями и богатством графических эффектов. Far Cry 3 поддерживает API DirectX 9 либо DX11 (промежуточный вариант в виде DirectX 10 недоступен), но почти все красоты игры не выходят за рамки возможностей первого. Немногие заметные глазу преимущества, которые можно извлечь из DirectX 11, сводятся к полноэкранному сглаживанию мощностью вплоть до 8x и выбору из трех различных механизмов Ambient Occlusion. Внимательные игроки также могут заметить работу технологии Contact Hardening Shadows: жесткость тени варьируется в зависимости от расстояния между ее источником и затененной поверхностью.
Far Cry 3 в немалой степени ориентирован на консоли с присущими им ограничениями на объем памяти и вычислительную мощность. Кроме того, создание большого открытого окружения требует такого количества дизайнерских человеко-часов, что разработчик не может преуспеть во всех составляющих визуального облика игры, и для него выгоднее, наоборот, сконцентрироваться на нескольких ключевых компонентах. В случае с Far Cry 3 таковыми стали персонажи и окружающая среда.
Возьмем персонажей. Постоянные читатели наверняка помнят, что в свое время NVIDIA в качестве очередной виртуальной красотки, демонстрирующей возможности GeForce 8800 GTX, избрала отрендеренную копию некой модели по имени Adrianne Curry. В 2006 году результат действительно восхищал, в то время как в большинстве игр физиономии персонажей все еще выглядели довольно-таки грубо. Ну а теперь уже красота виртуальной Adrianne Curry уступает внешности Citra — главной обольстительницы из истории Far Cry 3.
Что касается красот природы, то вызывает восхищение тот изящный и эффективный метод, с помощью которого разработчики сделали игровой мир столь богатым и реалистичным. Поначалу картинка просто вызывает восторг и поглощает зрителя целиком, но если присмотреться к деталям, то выяснится, что пейзажи острова довольно однообразные и простые. Нельзя не сравнить Far Cry 3 с первым Crysis, действие которого также происходит на тропическом острове. И в плане проработки окружения сравнение будет не в пользу новинки. Хотя, конечно, это не только или даже, быть может, не столько недостаток Far Cry 3, сколько свидетельство тому, насколько Crysis тогда опередил свое время.
Но сравнение видеоряда Crysis и Far Cry 3 раскрывает и главное преимущество последнего. Это одна из первых игр, которые используют технологию Global Illumination, и с чрезвычайно эффектным результатом. Работа GI в Far Cry 3 складывается из двух основных компонентов: прямого освещения от небесной сферы и рассеянного света, отраженного от элементов игрового окружения.
Направление и оттенок света небесной сферы рассчитывается движком в реальном времени, что позволяет теням от объектов ползти по земле вслед за солнцем.
А данные о распределении света, отражающегося от близко расположенных поверхностей, и видимости неба из определенной точки (зонда – Probe) вычисляется на CPU в «офлайне» (на схеме — Probe Baking), что делает технологию относительно нетребовательной по сравнению с полностью «онлайновой» реализацией Global Illumination. И это, возможно, не последняя причина того, что движок допускает лишь небольшие разрушения игровой среды.
Затем уже в игре из сочетания заранее просчитанной информации и динамического небесного освещения (Relighting) формируются объемные текстуры, с помощью которых GPU придает объектам ту или иную освещенность и оттенок.
Таким образом и получаются сцены с роскошными реалистичными тенями, которыми так привлекает Far Cry 3.
Наконец, в дополнение к описанному алгоритму, версия Far Cry 3 для PC оперирует информацией о распространении света от локальных источников для того, чтобы аппроксимировать динамическое освещение, создаваемое фарами автомобиля, факелами и прочим.
DirectX 9 vs DirectX 11
Итак, Far Cry 3 предлагает выбор между API DirectX 9 и DX 11. Последний вариант открывает доступ к выбору режима полноэкранного сглаживания и алгоритма Ambient Occlusion. Последняя технология выполняет ту же задачу, что и Global Illumination, только в меньшем масштабе: аппроксимирует распределение отраженного света, что лучше всего проявляется в затенении углубленных участков геометрии (ниши, углы и т.д.) по сравнении с выдающимися.
Польза антиалиасинга в Far Cry 3 не подлежит обсуждению, особенно потому, что наш остров головорезов — «весь покрытый зеленью, абсолютно весь». MSAA в сочетании с TSAA (применением суперсемплинга к прозрачным текстурам, из которых состоит обильная тропическая листва) делает картинку куда более четкой, нежели в режиме DirectX 9, хотя и ценой колоссального падения производительности. Что поделаешь, такова неприятная особенность доминирующего сегодня метода отложенного рендеринга (Deferred Rendering).
А вот выбор между методами Ambient Occlusion неоднозначнен. В режиме DirectX 9 по умолчанию доступен только относительно старый и неточный метод – SSAO (Screen space ambient occlusion), при переходе к DirectX 11 появляются еще два варианта: HBAO (Horizon-Based Ambient Occlusion) и HDAO (High Definition Ambient Occlusion).
Как видно по скриншотам, использование SSAO производит довольно грубый результат, резко выделяя стыки полигонов и накладывая обширные тени на поверхности.
Освещение с использованием HBAO также выглядит не очень естественно. Хотя картинка и не столь темная, как при SSAO, в стыках полигонов появляются резкие короткие тени, за счет чего клочки травы на открытых пространствах выглядит как подпаленные, а в закрытых помещениях HBAO придает графике Far Cry 3 отдаленное сходство с мультяшным стилем Borderlands 2.
Наиболее сбалансированные тени производит метод HDAO, подчеркивая объем в тех местах, где нужно, и не создавая странных графических артефактов. Для расчета данных HDAO движок Far Cry 3 задействует API DirectCompute.
GPU от AMD и NVIDIA с теми версиями драйверов, которые использовались в тестировании, работают с тремя режимами Ambient Occlusion с примерно одинаковой эффективностью: разница очень невелика.
Предустановки детализации
Far Cry 3 позволяет в широких пределах изменять детализацию игрового окружения. Предлагаются пять предустановленных настроек: Low, Medium, High, Very High и Ultra, от которых также сильно зависит и производительность. Откатив графику до уровня Low, можно сделать Far Cry 3 играбельным даже на относительно старых системах, хотя при этом и пропадет добрая часть труда дизайнеров.
Предустановки мало влияют на сложность геометрии движущихся моделей и вид закрытых помещений. Сильнее всего изменяется детализация текстур и дальность прорисовки деталей ландшафта. При переходе от низких режимов к высоким постепенно включаются компоненты сложной модели освещения Far Cry 3. Заметная разница также проявляется в том, как выглядят модели персонажей.
Изображение, приближенное к замыслу авторов игры, появляется на экране только в режиме High, при котором наблюдается неплохой компромисс между красотой и быстродействием. В более низких режимах открытые пространства Far Cry 3 становятся похожи на примитивные (а когда-то восхищавшие) декорации TES: Oblivion.
Видеокарты на GPU NVIDIA
Видеокарты на GPU AMD
Конфигурация тестового стенда | |
---|---|
CPU | Intel Core i7-3960X @ 4,6 ГГц (100x46) |
Материнская плата | ASUS P9X79 Pro |
Оперативная память | DDR3 Kingston HyperX 4x2 Гбайт @ 1600 МГц, 9-9-9 |
ПЗУ | Intel SSD 520 240 Гбайт |
Блок питания | IKONIK Vulcan, 1200 Вт |
Охлаждение CPU | Thermalright Silver Arrow |
Корпус | CoolerMaster Test Bench V1.0 |
Операционная система | Windows 7 Ultimate X64 Service Pack 1 |
ПО для карт AMD |
AMD Catalyst 13.1 WHQL + Catalyst Application Profiles 12.11 CAP2 |
ПО для карт NVIDIA | 314.07 (GeForce GTX 500–600), 314.09 (GeForce GTX TITAN) |
Настройки AMD Catalyst Control Center | |
---|---|
Antialiasing | Use application settings |
Anisotropic Filtering | Use application settings |
Tesselation | Use application settings |
Catalyst A.I., Texture Filtering Quality | Quality, Enable Surface Format Optimization |
Mipmap Detail Level | Quality |
Wait for V-Sync | Off, unless application specifies |
Anti-Aliasing Mode | Multi-sample AA |
Direct3D Settings, Enable Geomery Instancing | On |
Triple buffernig | Off |
Настройки NVIDIA Control Panel | |
Ambient Occlusion | Off |
Anisotropic Filtering | Application-controlled |
Antialiasing — Gamma correction | On |
Antialiasing — Mode | Application-controlled |
Antialiasing — Settings | Application-controlled |
Antialiasing — Transparency | Off |
CUDA — GPUs | All |
Maximum pre-rendered frames | 3 |
Multi-display/mixed-GPU acceleration | Multiple display performance mode |
Power management mode | Adaptive |
Texture filtering — Anisitropic sample optimization | Off |
Texture filtering — Negative LOD bias | Allow |
Texture filtering — Quality | Quality |
Texture filtering — Trilinear optimization | On |
Threaded optimization | Auto |
Triple buffering | Off |
Vertical sync | Use the 3D application settings |
Поскольку в Far Cry 3 нет встроенного бенчмарка, производительность пришлось оценивать с помощью утилиты FRAPS. Благо, чтобы измерить фреймрейт вручную, в игре есть подходящий эпизод с достаточно длинной, полностью повторяющейся и графически насыщенной сценой: поездка на джипе в начале миссии Secure the Outpost.
Тестирование проводилось при трех вариантах графических настроек. Самый ресурсоемкий режим включает детализацию по максимуму, DirectX 11 и полноэкранное сглаживание MSAA 4x. Режим с более простой графикой включает максимальную детализацию, но в сочетании с DirectX 9, а значит — без сглаживания. Наконец, худшая графика представлена комбинацией DX9 с предустановкой детализации High.
В двух более качественных режимах видеокарты тестировались при разрешении 1920х1080 и 2560х1440, в самом простом — при разрешении 1680х1050 и 1920х1080.
Не каждая видеокарта или конфигурация SLI/CFX проходила тестирование во всех трех режимах. Для отдельно взятого участника представлены результаты в самом ресурсоемком режиме, где он набирает не меньше 30 FPS хотя бы в минимальном разрешении. А если в максимальном разрешении того же режима фреймрейт опускается ниже 30 FPS, видеокарта дополнительно отправляется на тестирование в более простом режиме. Наконец, те участники, которые опустились ниже 30 FPS в минимальном разрешении и самом младшем режиме, полностью выбывали из соревнования.
Ultra, DirectX 11, MSAA 4x, HBAO, 1920х1080
Ultra, DirectX 11, MSAA 4x, HBAO, 2560х1440
Ultra, DirectX 9, MSAA Off, SSAO, 1920х1080
Ultra, DirectX 9, MSAA Off, SSAO, 2560х1440
High, DirectX 9, MSAA Off, SSAO, 1680x1050
Минимально комфортный фреймрейт в состоянии обеспечить GTX 550 Ti, а также и HD 7750, что является хорошим достижением для столь компактной и экономичной видеокарты. Среди старых моделей этого уровня достигла HD 6790.
High, DirectX 9, MSAA Off, SSAO, 1920х1080
Far Cry 3 во всем своем великолепии является весьма ресурсоемкой игрой. В массовом на сегодняшний день разрешении 1920х1080 при максимальных настройках детализации комфортную частоту смены кадров (около 60 FPS) может обеспечить только видеокарта классом "выше среднего": Radeon HD 7950 или GeForce GTX 660 Ti. Владельцы GeForce GTX 580 пока тоже могут обойтись без апгрейда.
И это еще без полноэкранного сглаживания. Применение MSAA 4x для большинства видеокарт снижает фреймрейт почти в два раза, и вот уже выбор сводится к GeForce GTX TITAN, GTX 690 или двум Radeon HD 7970 в режиме CrossFireX. Те, кто раньше вложился в GeForce GTX 590, также будут чувствовать себя более-комфортно. То же относится и к игре в разрешении 2560х1440 с выключенным антиалиасингом. Ну а для сочетания 2560x1440 и MSAA 4x годятся только самые мощные конфигурации с двумя или даже тремя GPU.
С другой стороны, если отказаться от сглаживания и пойти на разумный компромисс в детализации графики, то Far Cry 3 вполне вытягивает карта среднего класса, вроде GeForce GTX 660 или Radeon HD 7850, а из старичков – HD 6950 или GTX 570. На худой конец, будет достаточно и самых слабых моделей, которые еще вписываются в категорию игровых: HD 7750 или GTX 550 Ti. Они поддерживают фреймрейт на уровне 30 FPS при установке детализации High в разрешении 1680х1050.