Реализация FSAA в драйверах серии Detonator 3 от NVIDIA


После выпуска последнего драйвера Detonator 3 было много шумихи по поводу его значительно улучшенной производительности. Но многие почему-то не замечают потрясающие изменения в новых драйверах в реализации возможностей антиалиасинга.

Если вы помните наш обзор Voodoo5, в котором мы отмечали, что единственное преимущество Voodoo 5 над NVIDIA GeForce 2 — это великолепная реализация антиалиасинга. Мы вам покажем, что с улучшением возможностей драйвера D3 может быть достигнуто или даже превзойдено качество антиалиасинга V5.

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

Замечательный пример — очень популярная онлайновая RPG/приключенческая игра Everquest. Я обнаружил, что возможности FSAA новых драйверов сказываются фантастически на восприятие игры, а улучшения в качестве визуализации настолько бросаются в глаза, что удовольствие от этой великолепной игры значительно возрастает.

Мы посмотрим несколько примеров, которые проиллюстрируют различные установки в панели управления настроек D3D и OpenGL антиалиасинга, проясним различия и посмотрим на результаты, визуально сравнив скриншоты.

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

Более того, антиалиасинг от NVIDIA работает и в полноэкранном (FSAA) и в оконном режимах. Теоретически, у вас нет никаких ограничений, вы можете произвести антиалиасинг в нескольких окнах, если вы обладаете достаточным количеством памяти в буфере кадра. Это особенно хорошая новость для игроков в Everquest, так как вы получаете полные преимущества от антиалиасинга, когда играете в оконном режиме, который устанавливается по умолчанию, тогда как в предыдущей версии драйверов антиалиасинг, похоже, работал только в полноэкранном режиме. И я должен отметить, что есть игра, которая действительно преображается от использования FSAA — это Everquest, без сомнения. Она выглядит ГОРАЗДО лучше при использовании FSAA!

Так что же означают и на что влияют все эти настройки FSAA в OpenGL и D3D, и какая разница между различными установками? Мы разберем различные установки и объясним, чем они между собой отличаются, и в каких случаях лучше всего применять именно эту установку. В OpenGL режиме NVIDIA предлагает следующие установки:

  • 2x антиалиасинг (задний буфер в 2.25 раза больше разрешения экрана). Это установка по умолчанию.
  • 4x антиалиасинг с уровнями детализации (MIP Map) в родном разрешении игры (задний буфер в 4 раза больше разрешения экрана).
  • 4x антиалиасинг с уровнями детализации (MIP Map) в 4-х кратном разрешении (задний буфер в 4 раза больше разрешения экрана).

Первая установка (2x) — это просто прямой метод, где все увеличивается в 2.25 раза относительно реального разрешения игры. Так, если вы играете в Quake 3 в разрешении 800x600, то действительный размер отрендеренного изображения в заднем буфере будет равен 1800x1350. Затем это изображение собирается до оригинального разрешения игры (800x600), которое фильтруется, переносится во фронтовой буфер и отображается на монитор. Теперь вы понимаете, откуда появляется такое падение производительности. Вы просто запускаете игру в разрешении 1800x1350 с графическим выводом в разрешение 800x600. Не удивительно, что при использовании FSAA падает производительность.

Вторая установка по качеству эквивалентна 4x антиалиасингу 3dfx, она реализуется с использованием уровней детализации (MIP Map) в действительном разрешении экрана, при применении этих уровней детализации в заднем буфере, разрешение которого в 4 раза больше реального. Применение этого метода позволяет снизить действительный поток данных, что, в свою очередь, снижает загрузку полосы пропускания графической системы, а это ведет к увеличению производительности системы. Единственный недостаток этого метода в том, что уровни детализации (MIP Map) высокого разрешения будут, возможно, более детализованные, чем уровни детализации для нормального разрешения экрана. Третья установка действительно лучше по качеству, чем 4x антиалиасинг от 3dfx, но и падение производительности от применения данного метода соответствующее. Еще раз напомним, что все в этом методе рендерится в 4 раза большем разрешении, что, в свою очередь, сильно сказывается на нагрузке на полосу пропускания. Если у вас на карте 32 MB памяти, то вам стоит ограничиться первыми двумя установками, либо играть в разрешении 640x480 или ниже. Владельцы карт с 64MB памяти смогут играть и в более высоких разрешениях с дополнительными 32 MB памяти, но самой высокой установкой OGL FSAA смогут пользоваться только владельцы самых быстрых процессоров.

В Direct3D NVIDIA предлагает следующие варианты антиалиасинга, согласно положению ползунка:

УстановкаНазвание в панели управленияУровни детализации (MIP Map)Масштаб заднего буфера
AA Off------
2x1x2Задний буфер2:1
4x2x2 low detailРазрешение игры4:1
4x2x2Задний буфер4:1
4x2x2 specialЗадний буфер; сглаживание по Гаусу4:1
9x3x3 low detailРазрешение игры9:1
9x3x3Задний буфер9:1
16x4x4 low detailРазрешение игры16:1
16x4x4Задний буфер16:1

В D3D мы снова видим, что уровни детализации в родном разрешении игры используются для снижения требований к полосе пропускания, что позволяет добиться большей производительности (установки low detail — низкая детализация). Как вы можете заметить, установка 2x2 special (особенная) включает в себя сглаживание по Гаусу. Уже в течение нескольких лет этот способ применяют для сглаживания краев в компьютерной графике, вы могли видеть этот способ в Adobe Photoshop (фильтр Gaussian blur). Однако, особой разницы между установками 2x2 и 2x2 special, вы можете не заметить, поэтому установка "special" обычно не очень полезна.

Установка 9x превосходит по качеству самые лучшие установки качества антиалиасинга 3dfx. Но, если вам и этого еще мало, то вы всегда можете воспользоваться самыми максимальными установками. Самая лучшая установка 16x очень сильно сказывается на производительности большинства игр и работает только в режиме 512x384 на картах с 32 MB памяти. В принципе, на картах с 64 MB памяти мы, теоретически, смогли бы воспользоваться этой установкой и в режиме 1024x768. Однако такая исключительно высококачественная установка стоит весьма дорого в терминах производительности, даже на самых быстрых современных GPU, но она является важной вехой в движении к производительности антиалиасинга следующего поколения. Другими словами, NVIDIA уже готовится к будущему, когда антиалиасинг получит более широкое применение, а мы не сможем получить преимущества от потрясающих возможностей FSAA до тех пор, пока не появятся GPU, способные справиться с такой задачей. Хотя, возможно, некоторые владельцы карт с 64 MB памяти могут использовать максимальные установки АА в D3D для игр с небольшим количеством полигонов, например, в летных симуляторах и т.д.

Так какая же визуальная разница между различными уровнями FSAA? Для большинства случаев разница либо минимальна, либо ее совсем не заметно, все зависит от конкретной игры. В играх с большим количеством полигонов, таких как Quake 3 и Messiah часто можно заметить потрясающую разницу картинки с разными установками. Но стоит четко уяснить для себя, что FSAA по определенным причинам действительно более полезен для низких разрешений. Первая из них — это потеря производительности. Играбельность Q3 при 40 fps без FSAA и при 25 fps с FSAA абсолютно разная. Выигрыш в качестве картинки не стоит потери играбельности. Вторая причина в том, что в некоторые игры можно играть в достаточно большом разрешении с приличной скоростью, тогда от FSAA нет никакого смысла. Зачем использовать FSAA, если можно играть в режиме 1290x1024 при 60 fps?

Итак, давайте посмотрим и сравним некоторые скриншоты из игры Everquest, как уже упоминалось ранее, эта игра значительно лучше выглядит от применения FSAA.

*Скриншоты выполнены в формате JPEG, но с очень хорошим качеством, поэтому предупреждаю, что размер странички со скриншотами около 700 KB.

[ Далее: Скриншоты ]





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

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.