i3D-Quality — Под микроскопом: Август-сентябрь 2008, Crysis Warhead, DX9 vs DX10


В начале сентября на рынке появилось продолжение известной своими аппетитами игры Crysis — Crysis Warhead. Первая часть игры уже неоднократно фигурировала в наших исследованиях. Поэтому мы закономерным образом решили проверить — не изменилось ли чего-нибудь в сиквеле (который, впрочем, правильнее называть дополнением).

Из явных изменений в Warhead по сравнению с Crysis следует отметить следующее:

  • из игры (временно?) пропал 64-битный исполняемый файл — Warhead сейчас является сугубо 32-битным приложением, а потому подвержена постоянной подгрузке ресурсов в рамках двух соседних кадров (игре банально не хватает 2 ГБ адресного пространства, доступного 32-битным приложениям в 32-битной ОС Windows);
  • в Warhead «официально разлочен» в DirectX 9 режим Very High Quality, официально доступный в Crysis только при использовании DX10-рендерера.

При этом сами режимы были зачем-то переименованы, и из Low / Medium / High / Very High превратились в сложные для запоминания Minimum / Mainstream / Gamer / Enthusiast. В чём смысл подобного жонглирования словами догадаться невозможно. Разве что в том, чтобы облегчить работу тестеров: стоит лишь указать, что тест был в режиме Gamer и сразу понятно, что речь идёт о Warhead, а не об оригинале.

Сегодня мы решили посмотреть, насколько успешно справились с «разлочкой» режима Enthusiast под DX9 авторы игры — и заодно проверить, насколько отличаются режимы Gamer и Enthusiast друг от друга по качеству и производительности.

Конфигурация системы

  • Intel Core 2 Duo E8200 / Intel X48 / 4 ГБ DDR2-667 ОЗУ
  • ОС Microsoft Windows Vista 64-bit Service Pack 1
  • NVIDIA GeForce GTX 280, драйверы версии 178.13
  • Crysis Warhead, версия 1.1.1.687

Внимание: полноразмерные версии скриншотов представлены в формате PNG в полноценном качестве. Размер скриншотов варьируется от 1,5 до 4,0 МБ!

Настройки Gamer

Сразу отметим, что утилита Fraps не умеет сохранять значение гаммы для скриншотов DX9-рендерера Crysis и Warhead, поэтому DX9-скриншоты получились темнее своих DX10-вариантов. Мы решили, что лучше оставить всё как есть, чем пытаться руками подбирать «правильную» гамму.

  1 2 3 4 5
DirectX 9
DirectX 10

На первом, втором и четвёртом скриншоте заметна разница в прорисовке деревьев — поскольку они шевелятся, то эта разница является следствием анимации и к разнице двух рендереров не относится.

На третьем скриншоте заметна разница в фильтрации границ теней: удивительно, но в DX9-режиме она лучше, чем в DX10... Нечто подобное мы, к слову, отмечали ранее и в оригинальной Crysis.

На пятом скриншоте очевидна разница в прорисовке бамп-мэппинга, но сказать который из рендереров справился лучше невозможно — скриншоты просто разные.

В остальном разницы между DX9 и DX10 в режиме Gamer мы не обнаружили.

Настройки Enthusiast

  1 2 3 4 5
DirectX 9
DirectX 10

На первом, втором и четвёртом скриншоте опять отличаются деревья — по той же причине, что и в режиме Gamer.

На третьем скриншоте разница в фильтрации края тени исчезла — DX9 и DX10 в режиме Enthusiast выдают одинаковую картинку. Присутствующий в кадре эффект POM также отрисован одинаково в обоих рендерерах.

На четвёртом скриншоте можно обратить внимание на ствол дерева на фоне неба: несмотря на включенный антиалиасинг 4x, мы видим отчётливые «ступеньки» алиасинга в обоих рендерерах. Это — прозрачный намёк на то, что пора бы уже начинать использовать функции DirectX 10.1, позволяющие корректно применять MSAA в сумме с тон-мэппингом в FP16-буферах.

На пятом скриншоте опять заметна некоторая разница в освещении, но сказать, где оно лучше, а где хуже — невозможно.

Производительность

Давайте посмотрим на производительность интересующих нас режимов (тестирование осуществлялось с MSAA 4x):

Всё не так плохо, как могло бы быть, не правда ли? Переход к DX10 означает потерю 1-2 fps или, в относительных числах, 5-10% производительности.

С другой стороны, как мы уже отметили выше, разницы по качеству между режимами DX9 и DX10 нет вовсе, поэтому нет и смысла терять даже 1 fps, переключаясь в DX10-режим.

Впрочем, нам (как и в прошлый раз, в Crysis) показалось, что под API DX10 лучше реализован алгоритм motion blur: он «плавнее», без дискретный «ступеней». Скриншотами эту разницу передать очень сложно, да и глаз в динамике воспринимает её, скорее, подсознательно, нежели воочию. Попробуйте сами — возможно, вам покажется, что эта разница стоит того, чтобы потерять 1-2 fps из 20-40.

Выводы

Итак, существенной разницы между DX9- и DX10-рендерерами в Crysis Warhead мы опять, как и в Crysis в своё время, не обнаружили. На этот раз, однако, Crytek не стала заниматься ненужным маркетингом и официально разрешила включать максимальные настройки в DX9-рендерере. Кроме того, разработчик обещал, что утерянная в Warhead 64-битная версия игры вернётся в одном из будущих патчей: её пропажа связана то ли с отсутствием подходящих для 64-битных программ систем защиты от копирования, то ли с неготовностью 64-битной версии утилиты PunkBuster, используемой в многопользовательской «половинке» Warhead под названием Crysis Wars.

Таким образом, теперь выбор целиком за пользователем, без необходимости в каких-либо шаманствах с конфигурационными файлами. Стоит ли прирост в качестве алгоритма motion blur в DX10-рендерере игры падения производительности на 1-2 fps — решать целиком вам.




Дополнительно

iXBT Brand 2018

"iXBT Brand 2018" - Выбор читателей в номинации "Процессоры (CPU)":
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.