Страница 5: MFAA (Multiframe Sampled Anti-Aliasing)

Вторая инновация заключается в многокадровом сглаживании MFAA (Multiframe Sampled Anti-Aliasing). Новый алгоритм обеспечивает качество картинки высоких уровней MSAA, но накладывает в два раза меньшую нагрузку по производительности.

MFAA (Multiframe Sampled Anti-Aliasing)
MFAA (Multiframe Sampled Anti-Aliasing)

Чтобы понять MFAA, сначала следует рассмотреть работу алгоритма AA. На приведённом выше примере показан геометрический объект, на границе которого взяты четыре пикселя. Без сглаживания объект закрывает только один центр пикселя из четырёх, который и будет семплирован на финальном кадре. И видеокарта в пути рендеринга считает, что объект покрывает только один этот пиксель.

При сглаживании 4xMSAA учитываются уже четыре семпла покрытия на каждый пиксель. Они могут распределяться в пределах пикселя по-разному. Если взять тот же самый пример с четырьмя пикселями, то объект закрывает один семпл во втором пикселе и три семпла в четвертом. Соответственно, для пикселей считается покрытие 1/4 и 3/4, соответственно, на картинке же мы получаем более плавный переход границ объекта.

MFAA (Multiframe Sampled Anti-Aliasing)
MFAA (Multiframe Sampled Anti-Aliasing)

В методе MFAA используются два семпла покрытия, которые удваиваются благодаря учёту предыдущего кадра. На приведённом примере NVIDIA использовала две схемы распределения семплов покрытия по пикселю. Обе схемы поочерёдно используются в разных кадрах (в чётных n и нечётных n-1), что приводит к разному покрытию в двух случаях. NVIDIA называет подобную технику временным синтезирующим фильтром.

MFAA (Multiframe Sampled Anti-Aliasing)MFAA (Multiframe Sampled Anti-Aliasing)

MFAA (Multiframe Sampled Anti-Aliasing)

Фильтр учитывает два расчёта разных кадра, в результате качество 4xMFAA получается на уровне обычного сглаживания 4xMSAA. Так что MFAA, по сути, соответствует 2xMSAA, но даёт качество картинки на уровне 4xMSAA. При этом MFAA работает примерно на 30 процентов быстрее. Падение производительности из-за фильтра невелико, не больше двух процентов.

MFAA (Multiframe Sampled Anti-Aliasing)
MFAA (Multiframe Sampled Anti-Aliasing)

В примерах, показанных NVIDIA, нет разницы в попиксельном представлении. На практике, конечно, отличия имеются, но их можно заметить только на движущихся объектах. Именно по этой причине для работы MFAA требуется определенный минимальный уровень частоты кадров, чтобы сглаживание можно было рассчитывать на основе двух кадров. Сегодня NVIDIA утверждает, что частоты кадров 30-40 fps должно быть достаточно. К сожалению, тесты сглаживания мы провести не смогли, поскольку MFAA в драйвере недоступно. NVIDIA требуется ещё некоторое время на доработку и улучшение сглаживания MFAA, после чего в драйвере появится поддержка MFAA. В играх никакой специализированной поддержки не требуется. MFAA будет активироваться в эффективном режиме 4xMFAA, соответствующем 2xMSAA (или 4xMSAA).

Следующий видеоролик даёт лучшее представление о работе MFAA: