Обзор ATI RADEON 9700 PRO. Часть 2 - новые методы антиалиасинга и анизотропной фильтрации.

Автор: Tim
Дата: 07.10.2002
Все фото статьи

Новый метод анизотропной фильтрации


Подробнее об идее и различных способах реализации анизотропной фильтрации текстур можно прочитать в Обзоре ATI RADEON 7500, на чипах от NVIDIA - в Обзоре Leadtek WinFast GeForce3 TD, Matrox Parhelia - в статье, посвященной Matrox Parhelia.
Как известно, анизотропная фильтрация текстур на чипах ATI RADEON, RADEON 7xxx, 8500, 9000 / PRO приводит к совсем незначительному падению производительности. Однако, на полигонах, расположенных относительно зрителя по-разному, качество фильтрации текстур получается совершенно разным. Если на "стенах", "полах" и т.д., то есть, на плоскостях, чьи нормали проецируются на экран горизонтально или вертикально, качество обработки текстур значительно превосходит качество анизотропной фильтрации чипов NVIDIA GeForce3 Ti / GeForce4 Ti, то на плоскостях, лежащих под другими углами, качество фильтрации текстур чипов от ATI может столь же значительно уступать конкурентам.
Это не позволяет дать однозначного ответа на вопрос: "Что же лучше, анизотропная фильтрация от ATI или же анизотропная фильтрация в исполнении NVIDIA GeForce3 Ti / GeForce4 Ti?". На стороне чипов от ATI находится высокая скорость при неоднозначном качестве, соперники в лице чипов от NVIDIA подкупают гарантированно высоким качеством фильтрации текстур, но смущают высокими потерями производительности.

Для того, чтобы проверить, изменилась ли эта ситуация с выходом ATI RADEON 9700 PRO, я выбрал сцену из Serious Sam :The Second Encounter, и, включив режим "полета" ( команда /cht_bFly=1 в консоли ) посмотрел на эту сцену под разными углами наклона:



В сравнении участвуют ATI RADEON 8500, ATI RADEON 9700 PRO при активизации анизотропной фильтрациии в режимах "Speed" и "Quality" и NVIDIA GeForce4 Ti4600. Для каждой из видеокарт установлена анизотропная фильтрация максимального уровня - 16 для ATI RADEON 8500, ATI RADEON 9700 PRO и 8 - для NVIDIA GeForce4 Ti4600. Дополнительно в настройках игры включена трилинейная фильтрация.

Итак, начинаем с нормального положения игрока - он стоит, как полагается трезвому человеку, вертикально, а полы расположены по горизонтали :). Ниже - фрагменты скриншотов, полученных на разных видеокартах, рядом с ними - фрагменты скриншотов, снятых при включенной "подсветке" MIP-уровней ( команда /tex_bColorizeMipmaps=1 в консоли, при этом исходная текстура никак не подсвечивается, её первый MIP-уровень - текстура с пониженным вчетверо разрешением - подсвечивается красным, второй - зеленым, третий - синим, и т.д. ).

Угол наклона 0 (0 град.):






Качество анизотропной фильтрации текстур на чипах ATI RADEON 8500 и ATI RADEON 9700 PRO превосходит качество фильтрации текстур на NVIDIA GeForce4 Ti 4600 - чипы от ATI находятся в "благоприятной" для них ситуации.
Режим "Quality" анизотропной фильтрации на ATI RADEON 9700 PRO визуально по качеству не отличается от "Speed", отличие становится видно лишь при "подсветке" MIP-уровней: в режиме "Quality" вместе с анизотропной нормально работает трилинейная фильтрация текстур.

Слегка "наклоняем" игрока, чтобы повернуть горизонтальную поверхность вокруг оси Z, то есть, вокруг линии зрения:

Угол наклона 1:






Ага! :) Анизотропная фильтрация на ATI RADEON 8500 уже не превосходит по качеству NVIDIA GeForce4 Ti4600. ATI RADEON 9700 PRO также теряет в качестве фильтрации. Однако, пока о том, что чипы от ATI значительно уступают NVIDIA GeForce4 Ti4600 в качестве фильтрации, говорить рано.

Поворачиваем плоскость дальше:

Угол наклона 2:






Поворот плоскости на больший угол привел к еще большей потере качества анизотропной фильтрации текстур на ATI RADEON 8500 и, что печально, на ATI RADEON 9700 PRO тоже. Впрочем, ATI RADEON 9700 PRO обеспечивает чуть более приятную картинку: нет характерной для ATI RADEON 8500 "ряби", а в режиме "Quality", благодаря нормальному функционированию трилинейной фильтрации, пропадают и заметные линиии переключения MIP-уровней.
По скриншотам прекрасно видно, что в этой ситуации чипы от ATI однозначно проигрывают NVIDIA GeForce4 Ti4600 по качеству фильтрации текстур.

Что будет дальше? Сейчас посмотрим. Увеличиваем угол наклона плоскости:

Угол наклона 3:






Ситуация усугубляется: MIP-уровни сдвигаются ближе к наблюдателю, и новый чип от ATI, как и RADEON 8500, при таком угле наклона плоскости не впечатляет качеством анизотропной фильтрации.
NVIDIA GeForce4 Ti4600, по-прежнему, обеспечивает одинаковое качество фильтрации текстуры при любых углах наклона плоскости.

Продолжаем эксперимент:

Угол наклона 4:






Чёткость текстур на ATI RADEON 8500 падает и падает. Однако, на ATI RADEON 9700 PRO при таком угле наклона текстура выглядит уже лучше, чем в предыдущем случае - алгоритм анизотропной фильтрации на ATI RADEON 9700 был изменен, и новый чип от ATI в этой ситуации выглядит уже не так беспомощно, как ATI RADEON 8500. В то же время, сцена, построенная NVIDIA GeForce4 Ti4600, по-прежнему, выглядит лучше, чем на чипах от ATI.

Заканчиваем издеваться над видеокартами, установив угол наклона плоскости к горизонтали равным 45 градусов:

Угол наклона 5:






ATI RADEON 8500 окончательно сдает позиции, в то время как ATI RADEON 9700 PRO возвращает потерянное преимущество и в обоих режимах, "Speed" и "Quality", обеспечивает более качественную фильтрацию текстур по сравнению с NVIDIA GeForce4 Ti4600.

Итак, можно сделать однозначное заключение: алгоритм анизотропной фильтрации текстур на ATI RADEON 9700 PRO усовершенствован по сравнению с тем, что было реализовано в ATI RADEON 8500, и, в целом, качество анизотропной фильтрации текстур на новом чипе от ATI значительно улучшилось. Несомненным плюсом является наличие режима "Quality", при котором вместе с анизотропной можно задействовать и трилинейную фильтрацию текстур. Это окончательно избавляет новый чип от ряда "болезней" анизотропной фильтрации ATI RADEON 8500 - "ряби" на удаленных текстурах, видимых границ переключения MIP-уровней.
Однако, самое неприятное качество анизотропной фильтрации текстур от ATI сохранилось - новый чип, как и ATI RADEON 8500, теряет в качестве фильтрации текстур при некоторых углах наклона. Впрочем, по сравнению с ATI RADEON 8500 всё уже не так фатально: если для первого самыми "неудобными" были поверхности, чьи нормали проецируются на экран под углами +/- 45 градусов, то ATI RADEON 9700 PRO на таких углах наклона обеспечивает отменное качество фильтрации текстур и теряет в качестве уже на "промежуточных" углах - расположенных между горизонталью, вертикалью и диагоналями. При этом качество фильтрации текстур падает весьма заметно, но, всё же, ненастолько сильно, как у ATI RADEON 8500.

Осталось лишь выяснить, к каким потерям в производительности приводит включение анизотропной фильтрации на ATI RADEON 9700 PRO. Об этом - в следующей части статьи.

Новый метод полноэкранного сглаживания - SMOOTHVISION 2.0


SMOOTHVISION 2.0 - развитие SMOOTHVISION на ATI RADEON 8500, 9000/PRO - суперсэмплинга с упорядоченным расположением субпикселов на сетке и числом субпикселов от 2 до 6. SMOOTHVISION 2.0 столь значительно отличается от старого доброго SMOOTHVISION, что, по большому счету, общим в двух этих технологиях является лишь часть названия :).

Итак, каким же стал антиалиасинг от ATI при выходе ATI RADEON 9700 PRO?

SMOOTHVISION 2.0 - это мультисэмплинг. В отличие от SMOOTHVISION, антиалиасинг на ATI RADEON 9700 PRO не является суперсэмплингом - отныне, как и чипы от NVIDIA серии GeForce3 Ti /GeForce4 Ti, новый чип от ATI не производит никаких дополнительных вычислений на "внутренностях" полигона. Два, четыре, либо шесть субпикселов рассчитываются только у тех пикселов, которые лежат на границах полигона. Таким образом значительно снижается количество вычислений и нагрузка на шину памяти. Подробнее о суперсэмплинге и мультисэмплинге, о SMOOTHVISION от ATI и HRAA от NVIDIA можно прочитать в статье "На пути к Идеальной Картинке" или антиалиасинг на современных игровых видеокартах.

SMOOTHVISION 2.0 не имеет ограничений на максимальное разрешение. Как Вы помните, SMOOTHVISION на ATI RADEON 8500, 9000 / PRO имеет ограничения на разрешение.
Это объясняется тем, что максимальные размеры буфера, в котором чипы ATI RADEON 8500, 9000 / PRO строят увеличенное изображение, составляют 2048х2048 пикселей, поэтому, например, суперсэмплинг 4х Quality (2x2) доступен в разрешениях не выше 1024х768 (при этом увеличенный буфер будет иметь размеры 2048х1536), а 6х Quality (2x3) - в разрешениях не выше 800х600 (буфер будет иметь размеры 1600х1800).
С одной стороны, это не столь существенное ограничение - суперсэмплинг 6х буквально "убивает" скорость, поэтому разрешения выше 800х600 для SMOOTHVISION 6x Quality, выходит, не нужны. Однако, с другой стороны, есть еще масса игр, в которых не требуется высокая скорость или нагрузка на видеокарту не столь велика, как в Quake 3 или Serious Sam, и такая вариация суперсэмплинга вполне бы позволила играть без неприятных ощущений...

И что же мы видим? В SMOOTHVISION 2.0 эта проблема исчезла бесследно.

Наконец, самое интересное, - субпикселы при активизации SMOOTHVISION 2.0 располагаются не на упорядоченной сетке (Ordered Grid) (!).
Это можно проиллюстрировать следующим рисунком:



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

Но я отвлекся, возвращаемся к SMOOTHVISION 2.0. Из чего следует вывод, что субпикселы в SMOOTHVISION 2.0 расположены не на упорядоченной, а на искаженной сетке? Из анализа скриншотов. Ниже Вы увидите скриншоты, полученные на различных видеокартах при активизации различных методов антиалиасинга. Скриншоты, на которых границы полигонов расположены близко к горизонтали и вертикали, показывают явное преимущество SMOOTHVISION 2.0 над всеми остальными реализациями антиалиасинга.
Судите сами: если при активизации SMOOTHVISION 2.0 2x разницы по сравнению со SMOOTHVISION 2x Quality и HRAA 4x практически нет, то SMOOTHVISION 2.0 4x и 6х обеспечивают большее количество градаций цветов на границах полигона, а значит, и лучшее качество сглаживания "ступенек".

Рассмотрим частный случай - антиалиасинг SMOOTHVISION 4х Quality или SMOOTHVISION 2.0 4x:



Эти методы используют разбиение пиксела на 4 субпиксела. Соответственно, граница полигона относительно этих субпикселов может располагаться так, что в пределах полигона останутся все 4 субпиксела, только 3 из них, только 2, только 1, и последний вариант - все субпикселы останутся за пределами полигона. При получении конечного цвета пиксела цвета всех его субпикселов смешиваются, соответственно, если сцена состоит из красного треугольника на белом фоне, то мы, помимо белого и красного цветов, на границе полигона увидим еще и полутона: 25% красного, 50% красного и 75% красного.
Однако, если граница полигона расположена очень близко к горизонтали или, как показано на рисунке, к вертикали, то вероятность возникновения полутонов "25% красного" и "75% красного" почти нулевая, а при строго вертикальном расположении границы полигона - строго нулевая. То есть, несмотря на то, что используется разбиение пиксела на 4 субпиксела, в этом случае мы увидим лишь один полутон - "50% красного".
В случае же с расположением субпикселов на искаженной сетке наша вертикальная граница получит все полутона с примерно одинаковой вероятностью, и сглаживание "ступенек" будет более качественным.

Итак, SMOOTHVISION 2.0 использует расположение субпикселов на искаженной сетке, и в некоторых случаях это обеспечивает значительно более качественное сглаживание "ступенек".

А теперь - обещанные скриншоты. Для демонстрации антиалиасинга на видеокартах от ATI, NVIDIA и Matrox я использовал сцену из Serious Sam: The Second Encounter. Сцена неинтересная, скучная, зато прекрасно подходящая для наших целей:



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













ATI RADEON 9700 PRO в режимах SMOOTHVISION 2.0 4х и 6х демонстрирует наибольшее количество полутонов на границах полигонов и наилучшее качество сглаживания среди всех протестированных видеокарт. Результат более удачного расположения субпикселов - налицо.












Здесь, как и следовало ожидать, заметного преимущества в качестве SMOOTHVISION 2.0 уже не имеет и все протестированные видеокарты обеспечивают примерно одинаковое качество сглаживания "ступенек" в сравнимых режимах.












На углах наклона границ полигонов в районе 20 градусов и 60 градусов, которые, предположительно, могут оказаться "неудобными" для SMOOTHVISION 2.0, большой разницы в качестве сглаживания границ полигонов на разных видеокартах нет. Разумеется, методы "2х" и "4х", уступают в качестве режимам "6х" SMOOTHVISION, SMOOTHVISION 2.0 и режиму FAA-16x Matrox Parhelia.

Итак, очевидно, SMOOTHVISION 2.0 на ATI RADEON 9700 PRO по качеству сглаживания "ступенек" в большинстве случаев не превосходит SMOOTHVISON на ATI RADEON 8500, 9000 / PRO, но в определенных ситуациях, то есть, когда границы полигонов расположены почти горизонтально или почти вертикально, обеспечивает гораздо более качественное сглаживание "ступенек".
Наличие режима 6x позволяет говорить о том, что в сравнении с антиалиасингом от NVIDIA, использующем максимум 4 субпиксела, SMOOTHVISION 2.0 будет смотреться более выгодно.

SMOOTHVISION 2.0 - это полноценный мультисэмплинг, поэтому при задействовании этой функции текстуры на полигонах останутся без изменений, в отличие от того случая, когда используется суперсэмплинг. Прекрасный пример, иллюстрирующий различия суперсэмплинга и мультисэмплинга при отображении текстур - "прозрачные" текстуры.
Для демонстрации работы различных методов антиалиасинга на видеокартах от ATI, NVIDIA и Matrox я взял сцену из Serious Sam: The Second Encounter. Здесь ветви дерева сделаны в виде полигонов с наложенной на них "прозрачной" текстурой, изображающей листья:



Фрагменты скриншотов этой сцены на разных видеокартах при выключенном и включенном полноэкранном сглаживании:






Прекрасно видно, что только ATI RADEON 8500 и Matrox Parhelia в режиме суперсэмплинга 4х обрабатывают и границы, и внутренние области полигонов - "сглаженными" оказались и хвост ракеты, и края листьев, представленных в виде текстуры с использованием прозрачности. Во всех остальных случаях видеокарты обрабатывают лишь границы полигонов - "сглаженным" оказался лишь хвост ракеты.

О том, к каким потерям производительности приводит включение антиалиасинга на ATI RADEON 9700 PRO и видеокартах-соперниках - в следующей части статьи.



Далее: Часть 3 - тестирование.