i3D-Quality — Под микроскопом: Март 2008, Форсирование AA в играх на Unreal Engine 3.0


Игровой движок Unreal Engine в настоящее время является одним из самых популярных и распространённых кроссплатформенных движков. Особенно очевидным его лидерство стало после появления 3-й версии движка, на которой уже вышел примерно десяток игр и в ближайшем будущем к выходу запланировано еще несколько десятков.

Вот далеко не полный (мы оставили лишь наиболее интересные проекты) список грядущих игр на движке UE3:

  • Aliens: Colonial Marines (Gearbox Software)
  • Alpha Protocol (Obsidian Entertainment)
  • Brothers In Arms: Hell's Highway (Gearbox Software)
  • Borderlands (Gearbox Software)
  • Earth No More (Recoil Games / 3D Realms)
  • Gears of War 2 (Epic Games)
  • Halo Wars (Ensemble Studios)
  • Mass Effect (BioWare)

Из уже вышедших на ПК игр на UE3 следует выделить BioShock, Gears of War и Unreal Tournament 3. Именно эти три игры станут «героями» нашего сегодняшнего исследования.

Одной из наиболее противоречивых особенностей этого движка является несовместимость некоторых использованных в нём алгоритмов (в частности, «отложенного» затенения) со стандартной для современных GPU методикой антиалиасинга MSAA при работе с API DirectX 9.

Разумеется, современная игра без возможности включить антиалиасинг — это звучит грустно. Поэтому производители видеочипов решили скомпенсировать этот недостаток API D3D9 и отдельных игр для API D3D10 путём реализации в драйверах возможности форсирования MSAA в играх на движке UE3.

Первой здесь была компания NVIDIA, которая реализовала возможность форсировать MSAA в игре Rainbow Six Vegas, а затем — в BioShock, Unreal Tournament 3 и пр.

Компания AMD довольно долгое время собиралась с мыслями и лишь в марте текущего года выпустила драйвер Catalyst 8.3, позволяющий форсировать MSAA в играх на UE3, правда, пока только в использующих API D3D9.

Чтобы читателю было проще сопоставить результаты нашего исследования с не участвующими в нём играми на движке UE3, давайте разделим все игры на UE3 на четыре группы:

  1. Игры, использующие API D3D9 и умеющие сами управлять антиалиасингом.
  2. Игры, использующие API D3D9 и не умеющие сами управлять антиалиасингом.
  3. Игры, использующие API D3D9 и D3D10 и не умеющие сами управлять антиалиасингом.
  4. Игры, использующие API D3D9 и D3D10 и умеющие сами управлять антиалиасингом.

К первой группе относятся игры, отказавшиеся от использования несовместимых с MSAA алгоритмов движка UE3. Как правило, этим играм присуща относительно слабая графика. Например: Tom Clancy's Rainbow Six Vegas 2.

Вторая группа — игры, как правило, разрабатывавшиеся в первую очередь для игровых консолей и лишь потом для ПК. Они не используют API D3D10, но при этом не чураются несовместимых с MSAA алгоритмов движка UE3. Например: Unreal Tournament 3.

Третья группа включает в себя игры по тем или иным причинам портированные на API D3D10, но при этом не воспользовавшиеся представляемой этим API возможностью реализовать управление MSAA из самой игры при сохранении всех особенностей рендерера движка UE3. Как правило, это первые попытки переноса игр на Unreal Engine под API Direct3D 10. В таких играх также имеется и «обычный» D3D9-рендерер, присущий играм предыдущей группы. Например: BioShock.

Последняя, четвёртая группа — наиболее «прогрессивная» группа UE3-игр: эти игры используют API D3D10 для включения и управления режимами MSAA непосредственно из своих настроек. В них также, как правило, есть «обычный» D3D9-рендерер, присущий играм второй группы, однако возможность включения MSAA в нём ожидаемо отсутствует. Например: Gears of War.

Потенциально также возможны пятая и шестая группы: это группы игр, использующих исключительно API D3D10 и умеющих или не умеющих самостоятельно управлять MSAA. Пока, однако, таких игр не существует.

Стоит также отметить, что мы надеемся, что по мере распространения API D3D10 среди геймеров последняя, четвёртая группа игр на базе движка UE3, будет постепенно увеличиваться относительно всех остальных групп, ликвидируя тем самым необходимость в поддержке форсирования MSAA в играх на UE3 при помощи драйверов.

Вместе с тем, учитывая влияние игровых консолей, мы не удивимся, если окажется, что вторая или третья группы «растут» в своих размерах быстрее четвёртой, а потому возможность форсирования MSAA в играх на Unreal Engine 3 всяко не будет лишней.

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

  • AMD Athlon 64 X2 4600+ / NVIDIA nForce4 SLI / 4 ГБ DDR400 ОЗУ
  • ОС Microsoft Windows Vista 64-bit
  • AMD Radeon HD 2900 XT, драйверы Catalyst 8.3 (8.471)
  • NVIDIA GeForce 8800 Ultra, драйверы ForceWare 174.74

Предвидя вопросы о том, почему мы в этом тестировании взяли в качестве «соперника» для GF8800U устаревшую и откровенно слабую видеокарту Radeon HD 2900 XT, отвечаем: мы не хотели, но нас заставили. Кто? Компания AMD, а точнее — программисты, ответственные за разработку драйверов Catalyst.

Всё дело в том, что возможность форсирования MSAA для UE3-игр в Catalyst 8.3 реализована с ошибкой: форсирование не срабатывает в случае если включен режим CrossFire. При этом, по стародавней традиции драйверов Catalyst, которую мы уже откровенно устали называть нелепой, форсирование MSAA работает ТОЛЬКО при включенном Catalyst A.I. Продолжать или уже догадались?..

Хорошо, для тех, кто не догадался, поясняем: чтобы отключить CrossFire на Radeon HD 3870 X2, необходимо отключить Catalyst A.I.. А чтобы включить форсирование MSAA в UE3-играх нужно этот самый Catalyst A.I. включить. В результате возможность форсирования MSAA в играх на движке UE3, разрекламированная перед релизом Catalyst 8.3, оказалась попросту недоступна для видеокарты-флагмана Radeon HD 3870 X2.

А у нас появилось подозрение, что программисты AMD на этот раз сами запутались в абсолютной алогичности переключателей Catalyst Control Center. Снова вопрошаем: не пора ли, уважаемые господа, «разгрузить» несчастный переключатель Catalyst A.I., убрав с него хотя бы управление режимами Crossfire?..

Так или иначе, но мы были вынуждены воспользоваться старой видеокартой, потому как на новой заявленная AMD функция попросту не работала. Предполагалось, что числа fps на скриншотах помогут вам оценить примерное быстродействие при форсировании AA, однако кого интересует быстродействие давно снятой с производства видеокарты? Нам остаётся лишь пообещать, что в одном из будущих выпусков мы обновим эту статью скриншотами с Radeon HD 3870 X2 — если верить release notes вышедшего буквально в момент набора этих строк драйвера Catalyst 8.4, эта проблема в нём была устранена.

Читателям также следует помнить, что скриншоты с видеокарты Radeon в очередной раз снимались с включенными оптимизациями текстурной фильтрации: они «привязаны» к Catalyst A.I., без включения которого форсирование попросту не будет работать.

Игры, в которых производилось тестирование

По одному представителю обозначенных выше групп (за вычетом неинтересной нам группы D3D9-игр, умеющих самостоятельно управлять MSAA):

  1. BioShock v1.1, DX9 и DX10, нет управления MSAA
  2. Gears of War v1.2, DX9 и DX10, есть (зачаточное) управление MSAA
  3. Unreal Tournament 3 v1.2, DX9, нет управления MSAA

Здесь стоит заметить, что приличных игр на UE3 пока не так много — по сути, этим списком они и исчерпываются. Однако уже в ближайшие месяцы этот список должен существенно пополниться, а потому наше сегодняшнее исследование можно считать в некотором роде попыткой заглянуть в будущее.

BioShock v1.1, DX9/DX10, нет MSAA

Игра BioShock, в строгом смысле, не является игрой на UE3 — в её случае правильнее говорить о развитии движка UE2.5 силами самих разработчиков до уровня возможностей движка UE3, а также об использовании некоторых методик и инструментов, присущих движку UE3.

Вместе с этим, BioShock, как и другие игры на UE3, не умеет управлять MSAA и не позволяет его форсировать без дополнительных ухищрений, которыми и приходится заниматься производителям видеокарт.


  2900 XT AI On 8800U HQ
D3D9, No AA
D3D9, AA 8x
D3D9, AA 8x, TAA MS
D3D9, AA 8x, TAA SS

Обе видеокарты неплохо справились с форсированием MSAA в D3D9-версии BioShock. Присутствующая на скриншотах минимальная разница в качестве объясняется работой оптимизаций фильтрации на Radeon.

При этом, правда, обоим видеокартам несколько нехватает производительности — это особенно очевидно в случае Radeon, демонстрирующей fps вдвое ниже порога играбельности.

Включение сглаживания прозрачных текстур не сказалось ни на производительности, ни на качестве: в наших тестовых сценах попросту нет прозрачных текстур.

В драйверах серии 174 компания NVIDIA реализовала возможность форсирования MSAA и в D3D10-рендерере BioShock — по-своему уникальную возможность, и не только потому что конкурент ей пока не обладает, но еще и потому, что она не является универсальной. То есть, возможность форсировать MSAA в D3D10-рендерере пока распространяется только на BioShock.

Давайте посмотрим, как это работает:


  8800U HQ
D3D10, No AA
D3D10, AA 8x
D3D10, AA 8x, TAA MS
D3D10, AA 8x, TAA SS

D3D10-рендерер BioShock мало в чём отличается от D3D9-рендерера. Чуть медленнее работает да некоторые эффекты прорисовывает чуть качественнее. AA форсировался абсолютно аналогично D3D9-версии, качество было полностью идентичным.

Однако после форсирования MSAA и запуска D3D10-версии BioShock на GF8800U нас ждал один приятный сюрприз: D3D10-версия игры при форсировании AA работает местами почти в два раза быстрее, нежели D3D9-версия при форсировании той же степени AA!

Мы не знаем, чем это объяснить, и потому просто констатируем факт: если вы хотите поиграть в BioShock с AA на видеокартах GeForce, то смело форсируйте АА и запускайте D3D10-версию игры — падение fps при этом будет сравнительно небольшое, а сами fps — весьма играбельными.

Интересно, реализует ли компания AMD аналогичную возможность и если да, то сохранится ли на Radeon подобный эффект?..

Gears of War v1.2, DX9/DX10, MSAA

GeoW была хронологически первой игрой на «полноценном» UE3, снабжённой D3D10-рендерером и позволяющей управлять AA из своих настроек.

При этом управление AA в GeoW пребывает в «зачаточной» стадии: по сути, вы можете включить АА и выключить АА, но не можете контролировать степень сглаживания.

К тому же, это доступно только в D3D10-версии игры, в то время как сама игра может работать и в Windows XP, в которой отсутствует API DirectX 10.

Всё это сподвигло производителей видеокарт реализовать возможность форсирования MSAA и в Gears of War, несмотря на наличие в самой игре возможности включения антиалиасинга.

Давайте посмотрим, что из этого получилось:


  2900 XT AI On 8800U HQ
D3D9, No AA
D3D9, AA 4x
D3D9, AA 4x, TAA MS
D3D9, AA 4x, TAA SS
D3D10, No AA
D3D10, AA 4x
D3D10, AA 4x, TAA MS
D3D10, AA 4x, TAA SS

Ни Radeon, ни GeForce не смогли форсировать AA в D3D10-рендерере GeoW, поэтому представленные выше шоты из D3D10-рендерера получены включением AA в настройках игры.

В целом, качество «форсированного» AA ничем не отличается от качества «нативного». Более того, в случае видеокарты Radeon качество форсированного АА в D3D9-рендерере, пожалуй, даже выше, потому как видеокарта Radeon корректно обработала включение сглаживания прозрачных текстур. На GeForce включение сглаживания прозрачных текстур методом MSAA не привело ни к каким изменениям в качестве, а переход к методу SSAA вылился в появление неприятных мерцающих точек-артефактов на прозрачных текстурах.

Включение сглаживания прозрачных текстур в сумме с включением АА в D3D10-рендерере игры на обоих видеокартах не привело ни к чему: прозрачные текстуры остались не сглаженными.

Давайте взглянем на последнюю игру нашего мартовского тестирования.

Unreal Tournament 3 v1.2, DX9, нет MSAA

UT3 является второй игрой от разработчиков самого движка UE3 — первой стала Gears of War.

Несмотря на свою очевидную ПК-направленность, UT3 разрабатывалась параллельно для PlayStation 3 и Xbox 360, что, в итоге, наложило характерный отпечаток на технологии и интерфейс игры.

Так, в UT3 отсутствует D3D10-рендерер, созданные несколькими месяцами ранее для ПК-версии Gears of War. Соответственно, «легально» использовать MSAA с UT3 нельзя — и тут нам на помощь снова приходят производители видеокарт.


  2900 XT AI On 8800U HQ
D3D9, No AA
D3D9, AA 8x
D3D9, AA 8x, TAA MS
D3D9, AA 8x, TAA SS

Первая сцена весьма интересна: на первый взгляд, АА в ней ни в одном режиме на обеих видеокартах не включился, но если посмотреть повнимательнее, то станет видно, что АА всё-таки есть, просто он не распространяется на края, оказавшиеся на фоне тумана...

Чем это вызвано мы не знаем, однако подозреваем, что для исправления именно таких проблем с MSAA и был придуман DirectX 10.1 вообще и «программный ресолв» в частности.

На втором скриншоте на GeForce отсутствует что-то типа «солнечных лучей» в ветках дерева — мы заметили этот артефакт только начав сравнивать скриншоты. Чем он вызван сказать опять-таки не возьмёмся. Возможно, баг игры; возможно — драйвера; а может так и задумывалось.

Гораздо важнее, что GeForce опять проигнорировала включение сглаживания TAA MS, а при переходе к TAA SS выдала артефакты (см. на растительность на стене чуть левее центра экрана) и сгладила листву дерева на переднем плане существенно хуже Radeon. Интересно, чем вызваны такие проблемы со сглаживанием прозрачных текстур на GeForce в UE3-играх?.. Ведь по качеству сглаживания краёв треугольников GeForce и Radeon равны.

Выводы

Идея воспользоваться возможностями новых чипов для форсирования антиалиасинга в старых играх витает в воздухе давно.

Первой покусившейся на практическую реализацию стала компания ATI, сделавшая для своих видеокарт Radeon X1000 возможность форсирования AA в игре The Elder Scrolls 4: Oblivion.

Затем наступил черёд компании NVIDIA, которая в довольно сжатые сроки, после выпуска видеокарт серии GeForce 8, реализовала возможность форсирования AA в целом ряде игр, лишённых по разнообразным причинам возможности управлять антиалиасингом из своих настроек.

Нам некоторое время казалось, что отрыв NVIDIA от конкурента стал непреодолимым, но выход Catalyst 8.3 подарил надежду на то, что он всё-таки будет сокращаться.

Итак, форсирование AA в играх на Unreal Engine 3 теперь доступно и на видеокартах Radeon.

Причём, если видеокарты GeForce пока еще остаются впереди по количеству игр, в которых им разрешается форсировать AA (например, форсировать AA на GeForce сейчас можно в S.T.A.L.K.E.R., которая никакого отношения к UE3 не имеет), то видеокарты Radeon потихоньку захватывают пальму первенства по качеству форсированного АА.

Общее впечатление на данном этапе такое:

  • программисты NVIDIA куда-то спешат и делают алгоритмы форсирования небрежно, не особенно задумываясь, но зато быстро и для большого количества игр;
  • программисты AMD потратили большое время на раздумья о том, как нужно форсировать AA в играх на UE3, и в результате у них не только форсируется сам MSAA, но и нормально работает сглаживание прозрачных текстур.

Вместе с этим, видеокарта GeForce, в среднем, работает ощутимо быстрее с форсированным АА, а кривая реализация отличных алгоритмов форсирования в Catalyst 8.3 заставляет сомневаться в том, что эту реализацию в AMD хоть кто-то тестировал.

Напоследок нам остаётся лишь вновь пообещать вернуться к теме сегодяшнего исследования в будущем и проверить, как форсирование AA работает на Radeon HD 3870 X2.

Вообще, судя по всему, несколько ближайших выпусков i3D-Quality будет посвящено «зачистке хвостов», накопившихся с прошлой осени.





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

i3D-Quality - Под микроскопом - Март 2008 - Форсирование AA в играх на Unreal Engine 3.0

i3D-Quality — Под микроскопом: Март 2008, Форсирование AA в играх на Unreal Engine 3.0

Игровой движок Unreal Engine в настоящее время является одним из самых популярных и распространённых кроссплатформенных движков. Особенно очевидным его лидерство стало после появления 3-й версии движка, на которой уже вышел примерно десяток игр и в ближайшем будущем к выходу запланировано еще несколько десятков.

Вот далеко не полный (мы оставили лишь наиболее интересные проекты) список грядущих игр на движке UE3:

  • Aliens: Colonial Marines (Gearbox Software)
  • Alpha Protocol (Obsidian Entertainment)
  • Brothers In Arms: Hell's Highway (Gearbox Software)
  • Borderlands (Gearbox Software)
  • Earth No More (Recoil Games / 3D Realms)
  • Gears of War 2 (Epic Games)
  • Halo Wars (Ensemble Studios)
  • Mass Effect (BioWare)

Из уже вышедших на ПК игр на UE3 следует выделить BioShock, Gears of War и Unreal Tournament 3. Именно эти три игры станут «героями» нашего сегодняшнего исследования.

Одной из наиболее противоречивых особенностей этого движка является несовместимость некоторых использованных в нём алгоритмов (в частности, «отложенного» затенения) со стандартной для современных GPU методикой антиалиасинга MSAA при работе с API DirectX 9.

Разумеется, современная игра без возможности включить антиалиасинг — это звучит грустно. Поэтому производители видеочипов решили скомпенсировать этот недостаток API D3D9 и отдельных игр для API D3D10 путём реализации в драйверах возможности форсирования MSAA в играх на движке UE3.

Первой здесь была компания NVIDIA, которая реализовала возможность форсировать MSAA в игре Rainbow Six Vegas, а затем — в BioShock, Unreal Tournament 3 и пр.

Компания AMD довольно долгое время собиралась с мыслями и лишь в марте текущего года выпустила драйвер Catalyst 8.3, позволяющий форсировать MSAA в играх на UE3, правда, пока только в использующих API D3D9.

Чтобы читателю было проще сопоставить результаты нашего исследования с не участвующими в нём играми на движке UE3, давайте разделим все игры на UE3 на четыре группы:

  1. Игры, использующие API D3D9 и умеющие сами управлять антиалиасингом.
  2. Игры, использующие API D3D9 и не умеющие сами управлять антиалиасингом.
  3. Игры, использующие API D3D9 и D3D10 и не умеющие сами управлять антиалиасингом.
  4. Игры, использующие API D3D9 и D3D10 и умеющие сами управлять антиалиасингом.

К первой группе относятся игры, отказавшиеся от использования несовместимых с MSAA алгоритмов движка UE3. Как правило, этим играм присуща относительно слабая графика. Например: Tom Clancy's Rainbow Six Vegas 2.

Вторая группа — игры, как правило, разрабатывавшиеся в первую очередь для игровых консолей и лишь потом для ПК. Они не используют API D3D10, но при этом не чураются несовместимых с MSAA алгоритмов движка UE3. Например: Unreal Tournament 3.

Третья группа включает в себя игры по тем или иным причинам портированные на API D3D10, но при этом не воспользовавшиеся представляемой этим API возможностью реализовать управление MSAA из самой игры при сохранении всех особенностей рендерера движка UE3. Как правило, это первые попытки переноса игр на Unreal Engine под API Direct3D 10. В таких играх также имеется и «обычный» D3D9-рендерер, присущий играм предыдущей группы. Например: BioShock.

Последняя, четвёртая группа — наиболее «прогрессивная» группа UE3-игр: эти игры используют API D3D10 для включения и управления режимами MSAA непосредственно из своих настроек. В них также, как правило, есть «обычный» D3D9-рендерер, присущий играм второй группы, однако возможность включения MSAA в нём ожидаемо отсутствует. Например: Gears of War.

Потенциально также возможны пятая и шестая группы: это группы игр, использующих исключительно API D3D10 и умеющих или не умеющих самостоятельно управлять MSAA. Пока, однако, таких игр не существует.

Стоит также отметить, что мы надеемся, что по мере распространения API D3D10 среди геймеров последняя, четвёртая группа игр на базе движка UE3, будет постепенно увеличиваться относительно всех остальных групп, ликвидируя тем самым необходимость в поддержке форсирования MSAA в играх на UE3 при помощи драйверов.

Вместе с тем, учитывая влияние игровых консолей, мы не удивимся, если окажется, что вторая или третья группы «растут» в своих размерах быстрее четвёртой, а потому возможность форсирования MSAA в играх на Unreal Engine 3 всяко не будет лишней.

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

  • AMD Athlon 64 X2 4600+ / NVIDIA nForce4 SLI / 4 ГБ DDR400 ОЗУ
  • ОС Microsoft Windows Vista 64-bit
  • AMD Radeon HD 2900 XT, драйверы Catalyst 8.3 (8.471)
  • NVIDIA GeForce 8800 Ultra, драйверы ForceWare 174.74

Предвидя вопросы о том, почему мы в этом тестировании взяли в качестве «соперника» для GF8800U устаревшую и откровенно слабую видеокарту Radeon HD 2900 XT, отвечаем: мы не хотели, но нас заставили. Кто? Компания AMD, а точнее — программисты, ответственные за разработку драйверов Catalyst.

Всё дело в том, что возможность форсирования MSAA для UE3-игр в Catalyst 8.3 реализована с ошибкой: форсирование не срабатывает в случае если включен режим CrossFire. При этом, по стародавней традиции драйверов Catalyst, которую мы уже откровенно устали называть нелепой, форсирование MSAA работает ТОЛЬКО при включенном Catalyst A.I. Продолжать или уже догадались?..

Хорошо, для тех, кто не догадался, поясняем: чтобы отключить CrossFire на Radeon HD 3870 X2, необходимо отключить Catalyst A.I.. А чтобы включить форсирование MSAA в UE3-играх нужно этот самый Catalyst A.I. включить. В результате возможность форсирования MSAA в играх на движке UE3, разрекламированная перед релизом Catalyst 8.3, оказалась попросту недоступна для видеокарты-флагмана Radeon HD 3870 X2.

А у нас появилось подозрение, что программисты AMD на этот раз сами запутались в абсолютной алогичности переключателей Catalyst Control Center. Снова вопрошаем: не пора ли, уважаемые господа, «разгрузить» несчастный переключатель Catalyst A.I., убрав с него хотя бы управление режимами Crossfire?..

Так или иначе, но мы были вынуждены воспользоваться старой видеокартой, потому как на новой заявленная AMD функция попросту не работала. Предполагалось, что числа fps на скриншотах помогут вам оценить примерное быстродействие при форсировании AA, однако кого интересует быстродействие давно снятой с производства видеокарты? Нам остаётся лишь пообещать, что в одном из будущих выпусков мы обновим эту статью скриншотами с Radeon HD 3870 X2 — если верить release notes вышедшего буквально в момент набора этих строк драйвера Catalyst 8.4, эта проблема в нём была устранена.

Читателям также следует помнить, что скриншоты с видеокарты Radeon в очередной раз снимались с включенными оптимизациями текстурной фильтрации: они «привязаны» к Catalyst A.I., без включения которого форсирование попросту не будет работать.

Игры, в которых производилось тестирование

По одному представителю обозначенных выше групп (за вычетом неинтересной нам группы D3D9-игр, умеющих самостоятельно управлять MSAA):

  1. BioShock v1.1, DX9 и DX10, нет управления MSAA
  2. Gears of War v1.2, DX9 и DX10, есть (зачаточное) управление MSAA
  3. Unreal Tournament 3 v1.2, DX9, нет управления MSAA

Здесь стоит заметить, что приличных игр на UE3 пока не так много — по сути, этим списком они и исчерпываются. Однако уже в ближайшие месяцы этот список должен существенно пополниться, а потому наше сегодняшнее исследование можно считать в некотором роде попыткой заглянуть в будущее.

BioShock v1.1, DX9/DX10, нет MSAA

Игра BioShock, в строгом смысле, не является игрой на UE3 — в её случае правильнее говорить о развитии движка UE2.5 силами самих разработчиков до уровня возможностей движка UE3, а также об использовании некоторых методик и инструментов, присущих движку UE3.

Вместе с этим, BioShock, как и другие игры на UE3, не умеет управлять MSAA и не позволяет его форсировать без дополнительных ухищрений, которыми и приходится заниматься производителям видеокарт.


  2900 XT AI On 8800U HQ
D3D9, No AA
D3D9, AA 8x
D3D9, AA 8x, TAA MS
D3D9, AA 8x, TAA SS

Обе видеокарты неплохо справились с форсированием MSAA в D3D9-версии BioShock. Присутствующая на скриншотах минимальная разница в качестве объясняется работой оптимизаций фильтрации на Radeon.

При этом, правда, обоим видеокартам несколько нехватает производительности — это особенно очевидно в случае Radeon, демонстрирующей fps вдвое ниже порога играбельности.

Включение сглаживания прозрачных текстур не сказалось ни на производительности, ни на качестве: в наших тестовых сценах попросту нет прозрачных текстур.

В драйверах серии 174 компания NVIDIA реализовала возможность форсирования MSAA и в D3D10-рендерере BioShock — по-своему уникальную возможность, и не только потому что конкурент ей пока не обладает, но еще и потому, что она не является универсальной. То есть, возможность форсировать MSAA в D3D10-рендерере пока распространяется только на BioShock.

Давайте посмотрим, как это работает:


  8800U HQ
D3D10, No AA
D3D10, AA 8x
D3D10, AA 8x, TAA MS
D3D10, AA 8x, TAA SS

D3D10-рендерер BioShock мало в чём отличается от D3D9-рендерера. Чуть медленнее работает да некоторые эффекты прорисовывает чуть качественнее. AA форсировался абсолютно аналогично D3D9-версии, качество было полностью идентичным.

Однако после форсирования MSAA и запуска D3D10-версии BioShock на GF8800U нас ждал один приятный сюрприз: D3D10-версия игры при форсировании AA работает местами почти в два раза быстрее, нежели D3D9-версия при форсировании той же степени AA!

Мы не знаем, чем это объяснить, и потому просто констатируем факт: если вы хотите поиграть в BioShock с AA на видеокартах GeForce, то смело форсируйте АА и запускайте D3D10-версию игры — падение fps при этом будет сравнительно небольшое, а сами fps — весьма играбельными.

Интересно, реализует ли компания AMD аналогичную возможность и если да, то сохранится ли на Radeon подобный эффект?..

Gears of War v1.2, DX9/DX10, MSAA

GeoW была хронологически первой игрой на «полноценном» UE3, снабжённой D3D10-рендерером и позволяющей управлять AA из своих настроек.

При этом управление AA в GeoW пребывает в «зачаточной» стадии: по сути, вы можете включить АА и выключить АА, но не можете контролировать степень сглаживания.

К тому же, это доступно только в D3D10-версии игры, в то время как сама игра может работать и в Windows XP, в которой отсутствует API DirectX 10.

Всё это сподвигло производителей видеокарт реализовать возможность форсирования MSAA и в Gears of War, несмотря на наличие в самой игре возможности включения антиалиасинга.

Давайте посмотрим, что из этого получилось:


  2900 XT AI On 8800U HQ
D3D9, No AA
D3D9, AA 4x
D3D9, AA 4x, TAA MS
D3D9, AA 4x, TAA SS
D3D10, No AA
D3D10, AA 4x
D3D10, AA 4x, TAA MS
D3D10, AA 4x, TAA SS

Ни Radeon, ни GeForce не смогли форсировать AA в D3D10-рендерере GeoW, поэтому представленные выше шоты из D3D10-рендерера получены включением AA в настройках игры.

В целом, качество «форсированного» AA ничем не отличается от качества «нативного». Более того, в случае видеокарты Radeon качество форсированного АА в D3D9-рендерере, пожалуй, даже выше, потому как видеокарта Radeon корректно обработала включение сглаживания прозрачных текстур. На GeForce включение сглаживания прозрачных текстур методом MSAA не привело ни к каким изменениям в качестве, а переход к методу SSAA вылился в появление неприятных мерцающих точек-артефактов на прозрачных текстурах.

Включение сглаживания прозрачных текстур в сумме с включением АА в D3D10-рендерере игры на обоих видеокартах не привело ни к чему: прозрачные текстуры остались не сглаженными.

Давайте взглянем на последнюю игру нашего мартовского тестирования.

Unreal Tournament 3 v1.2, DX9, нет MSAA

UT3 является второй игрой от разработчиков самого движка UE3 — первой стала Gears of War.

Несмотря на свою очевидную ПК-направленность, UT3 разрабатывалась параллельно для PlayStation 3 и Xbox 360, что, в итоге, наложило характерный отпечаток на технологии и интерфейс игры.

Так, в UT3 отсутствует D3D10-рендерер, созданные несколькими месяцами ранее для ПК-версии Gears of War. Соответственно, «легально» использовать MSAA с UT3 нельзя — и тут нам на помощь снова приходят производители видеокарт.


  2900 XT AI On 8800U HQ
D3D9, No AA
D3D9, AA 8x
D3D9, AA 8x, TAA MS
D3D9, AA 8x, TAA SS

Первая сцена весьма интересна: на первый взгляд, АА в ней ни в одном режиме на обеих видеокартах не включился, но если посмотреть повнимательнее, то станет видно, что АА всё-таки есть, просто он не распространяется на края, оказавшиеся на фоне тумана...

Чем это вызвано мы не знаем, однако подозреваем, что для исправления именно таких проблем с MSAA и был придуман DirectX 10.1 вообще и «программный ресолв» в частности.

На втором скриншоте на GeForce отсутствует что-то типа «солнечных лучей» в ветках дерева — мы заметили этот артефакт только начав сравнивать скриншоты. Чем он вызван сказать опять-таки не возьмёмся. Возможно, баг игры; возможно — драйвера; а может так и задумывалось.

Гораздо важнее, что GeForce опять проигнорировала включение сглаживания TAA MS, а при переходе к TAA SS выдала артефакты (см. на растительность на стене чуть левее центра экрана) и сгладила листву дерева на переднем плане существенно хуже Radeon. Интересно, чем вызваны такие проблемы со сглаживанием прозрачных текстур на GeForce в UE3-играх?.. Ведь по качеству сглаживания краёв треугольников GeForce и Radeon равны.

Выводы

Идея воспользоваться возможностями новых чипов для форсирования антиалиасинга в старых играх витает в воздухе давно.

Первой покусившейся на практическую реализацию стала компания ATI, сделавшая для своих видеокарт Radeon X1000 возможность форсирования AA в игре The Elder Scrolls 4: Oblivion.

Затем наступил черёд компании NVIDIA, которая в довольно сжатые сроки, после выпуска видеокарт серии GeForce 8, реализовала возможность форсирования AA в целом ряде игр, лишённых по разнообразным причинам возможности управлять антиалиасингом из своих настроек.

Нам некоторое время казалось, что отрыв NVIDIA от конкурента стал непреодолимым, но выход Catalyst 8.3 подарил надежду на то, что он всё-таки будет сокращаться.

Итак, форсирование AA в играх на Unreal Engine 3 теперь доступно и на видеокартах Radeon.

Причём, если видеокарты GeForce пока еще остаются впереди по количеству игр, в которых им разрешается форсировать AA (например, форсировать AA на GeForce сейчас можно в S.T.A.L.K.E.R., которая никакого отношения к UE3 не имеет), то видеокарты Radeon потихоньку захватывают пальму первенства по качеству форсированного АА.

Общее впечатление на данном этапе такое:

  • программисты NVIDIA куда-то спешат и делают алгоритмы форсирования небрежно, не особенно задумываясь, но зато быстро и для большого количества игр;
  • программисты AMD потратили большое время на раздумья о том, как нужно форсировать AA в играх на UE3, и в результате у них не только форсируется сам MSAA, но и нормально работает сглаживание прозрачных текстур.

Вместе с этим, видеокарта GeForce, в среднем, работает ощутимо быстрее с форсированным АА, а кривая реализация отличных алгоритмов форсирования в Catalyst 8.3 заставляет сомневаться в том, что эту реализацию в AMD хоть кто-то тестировал.

Напоследок нам остаётся лишь вновь пообещать вернуться к теме сегодяшнего исследования в будущем и проверить, как форсирование AA работает на Radeon HD 3870 X2.

Вообще, судя по всему, несколько ближайших выпусков i3D-Quality будет посвящено «зачистке хвостов», накопившихся с прошлой осени.