ATI Temporal AA - новый качественный алгоритм полноэкранного сглаживания в текущих драйверах Catalyst!

30 апреля 2004, пятница 15:48
для раздела Новости Software

Некоторое время назад представители ATI недвусмысленно намекали на появление каких-то совершенно новых потрясающих функций в драйверах Catalyst уже в июне-июле сего года. Возможно, именно эти функции и обнаружили некоторые пользователи в текущих драйверах ATI, когда около недели назад появились первые сообщения о возможности включения полноэкранного сглаживания по методу Temporal AA на уже существующем оборудовании. Точку во всех сомнениях и неопределенности относительно функционирования нового метода поставил сайт EliteBastards.com, опубликовав весьма подробное исследование данной функции.

Мы знаем, что теоретически возможна реализация в драйверах и приложениях методов полноэкранного сглаживания, отличных от предоставленных разработчиками видеочипов, но на практике этим до сих пор никто не пользовался. Теперь же ATI впервые реализовала новый метод (Temporal AA) и добавила его в драйверы. Сообщается, что вместо использования постоянного паттерна для сглаживания Temporal AA использует целый набор предустановленных, переключаясь на следующий паттерн в каждом кадре. Таким образом, каждый кадр отличается от предыдущего, но при достаточно высокой частоте кадров человеческий глаз просто не улавливает разницу. Глаз одновременно "видит" результат действия сразу всех паттернов и перед ним предстает нечто "среднее", визуально отражаясь как более высоким качеством сглаживания. Для каждого из режимов FSAA 2x, 4x и 6x используется аналогичный по количеству семплов набор паттернов.

Побочный эффект данного явления - возможное "мерцание" изображения, более заметное при низких значениях FPS или частотах обновления монитора, когда глаз уже начнет замечать разницу.  Экспериментальным путем обозревателями было установлено "магическое число" в 60 FPS (кадров в секунду), ниже которого мерцание обычно заметно, а выше - нет. Получается, что данный метод применим только для игр, в которых видеокарта показывает достаточно высокую производительность, ведь при падении минимального FPS меньше 60 будет заметно мерцание. Как вариант в драйверах предусмотрено отключение Temporal AA и использование обычного статического полноэкранного сглаживания при падении числа FPS ниже указанного порога. С другой стороны, при использовании Temporal AA можно применять меньшую степень сглаживания для такого же визуального эффекта, что приведет к росту скорости, но обо всем этом - ниже .

Еще один "побочный эффект", исходящий из принципа реализации метода проявляется в необходимости обязательного включения вертикальной синхронизации (V-sync) при использовании Temporal AA, что ограничивает максимальный FPS частотой развертки монитора. Драйверы ATI принудительно включают V-sync при активации Temporal AA.

А теперь - долгожданные инструкции по включению Temporal AA . В текущей реализации метод работает только в Direct3D, вам потребуется видеокарта на базе чипов R(V)3xx, т.е. Radeon 9500 и выше, а также драйверы Catalyst 4.4. Для активации функции требуется создать  в реестре новые строковые параметры (string) по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{GUID}\0000 (где {GUID} может различаться и иметься в нескольких вариантов из-за ранее установленных драйверов, требуется найти именно ветку от Catalyst 4.4), см. пример на скриншоте:

Главный создаваемый нами параметр TemporalAAMultiplier может принимать значения от 1 до 3, где "1" - отключение Temporal AA, "2" и "3" - различные методы Temporal AA. При этом метод "3" более подходит для высоких показателей FPS и в большинстве случаев вы предпочтете метод "2" как создающий меньше мерцания.

Параметр TemporalAAFrameThreshold позволяет установить значение FPS, ниже которого Temporal AA не будет использоваться и драйвер переключится на стандартный метод сглаживания с аналогичным количеством семплов. При установке значения "0" Temporal AA будет использоваться всегда, а при установке, например, "60" - только при 60 FPS и выше. 

Для финальной активации требуется перезапуск Direct3D-части драйвера (указывается, что наиболее простой способ его провести - включить и отключить эффекты SmartShader в Direct3D) и включение любого из режимов сглаживания - 2x, 4x или 6x, напомню, что при включении Temporal AA принудительно активируется V-Sync. Быстрый способ убедится в функционировании нового метода - скачать небольшую утилиту Colourless' Direct3D FSAA viewer (205 КБ), предназначенную для определения используемых при полноэкранном сглаживании паттернов. Примеры того, что вы должны увидеть можно посмотреть, открыв ряд изображений здесь (например, для 2x и 4x).

Тестирование производительности в новом режиме дело не совсем тривиальное из-за принудительного включения V-sync, который ограничивает максимальный FPS частотой обновления вашего монитора, поэтому сравнительные тесты производились при включенном V-Sync в обоих случаях. Система на базе Pentium 4 2.8 FSB 800, i875P и Radeon 9800 Pro показала следующую производительность в 3DMark 2003 при частоте обновления монитора в 100 Гц:

Аналогичные показатели наблюдаем и в новейшей игре Colin McRae 04:

Как видим, о разнице в производительности между Temporal AA и стандартными методами сглаживания говорить не приходится, она вполне укладывается в погрешность измерения. Зато визуально при высоких значениях FPS новый метод давал превосходное качество картинки, который пользователи оценили как двукратно превосходящее базовое, т.е. эффективность "обычного" сглаживания 4x при включенном Temporal AA 2x, 8x при Temporal AA 4x и 12x при Temporal AA 6x! При низких значениях FPS становилось заметно мерцание на краях объектов, но разные люди начинали воспринимать его при различном количестве кадров в секунду. Зато, как отмечалось выше, возможно использование методов Temporal AA, дающих настолько же высокое качество картинки при меньших потерях в производительности (2x Temporal AA вместо AA 4x, например)!

Вероятно, вы удивились отсутствию скриншотов, наглядно демонстрирующих преимущества от нового метода. К сожалению, их создание невозможно, т.к. скриншот "выхватит" только один из кадров, а метод использует особенности глаза "схватывать" сразу все. Поэтому единственное что вы можете - попытаться взглянуть собственными глазами .

На текущий момент механизм реализации Temporal AA еще явно не завершен, сообщается о некоторых "глюках" в его активации. Значительные ограничения на использование данного режима не смогут сделать его "базовым", он будет лишь эффективно дополнять уже существующие. Тем не менее, при наличии монитора, поддерживающего высокие частоты обновления, и игр, показывающих высокую производительность на вашей комбинации видеокарты/процессора, вы можете насладиться новым уровнем качества сглаживания уже сейчас, и это "бесплатное дополнение" не может не радовать .

Еще со времен выпуска Radeon 9700 компания ATI захватила абсолютное лидерство в качестве реализации и быстродействии полноэкранного сглаживания и только сейчас Nvidia смогла приблизиться к тому уровню с новым GeForce 6800. Вот уж чего никто не ожидал от ATI - еще одного качественного и скачка в реализации данной функции, а тем более даже на существующем оборудовании! Самое время выпускать громкие радостные/победные вопли фанатам и владельцам видеокарт ATI, а также всем прочим - ведь новый метод наверняка будет рано или поздно скопирован (как и намекал Терри Мейкдон) другими компаниями (читай - Nvidia ). И, разумеется, Temporal AA будет работать и на R420, который как раз и сможет выдать достаточное количество FPS для его применения даже в новейших играх .

Присоединяйтесь к обсуждению любых вопросов по функционированию нового метода в этой ветке нашей конференции. Кстати, идея аналогичного или похожего механизма уже звучала в нашем форуме в декабре прошлого года - интересно, не ее ли "подхватили" и реализовали за полгода товарищи из ATI? 

Оценитe материал

Возможно вас заинтересует

Сейчас обсуждают