3DGiТоги ноябрь 2001 года: Исследование анизотропной фильтрации на примере Serious Sam


Как уже широко известно, видеочипсеты NVIDIA GeForce256, GeForce2, GeForce3, ATI RADEON, RADEON 7500, RADEON 8500, STM KYRO, KYRO II обладают такой ныне популярной функцией, как анизотропная фильтрация. Как и билинейная, она служит для улучшения восприятия наблюдателем трехмерной сцены. Если трилинейная фильтрация служит для размытия границ между MIP-уровнями, обеспечивая плавность размытия текстур по мере удаления от наблюдателя, то анизотропная фильтрация — это как бы более высокая степень билинейной, она работает не на границах MIP-уровней, а по всей сцене. Ее задача — увеличить четкость изображения, не портя при этом результаты работы MIP-mapping-а, то есть разбиения сцены на уровни с разной детализацией текстур. Анизотропия может применяться совместно с трилинейной фильтрацией или без оной. Как и любая функция в трехмерной графике, анизотропная фильтрация не бесплатна, за качество приходится платить производительностью:



Как мы видим, в весьма выгодном положении NVIDIA GeForce2-карты, а также клоны ATI RADEON. Почему же так сильно падает производительность у NVIDIA GeForce3? Частично мы отвечали на этой вопрос в обзоре по этому GPU. Я лишь напомню, что GeForce2-карты — очень несбалансированы, поэтому у них графический процессор подчас простаивает в ожидании прокачки данных через шину памяти. Почему бы ему тогда не заняться дополнительным делом — поработать над анизотропией? Поэтому и падение производительности при активизации анизотропной фильтрации не столь велико. А GeForce3 — очень сбалансированный чип, отсюда и вывод: когда он занимается анизотропией, то это сразу же сказывается на общей производительности, так как в обычном режиме чипу не приходится "ожидать" более медленную память. Впрочем, ниже мы еще посмотрим на качество предоставляемой нам анизотропной фильтрации всеми участниками соревнований. И быть может, что быстр и скор, но выполнил свою задачу "тяп-ляп".

Обратите внимание на катастрофическое падение производительности у STM KYRO (у KYRO II ситуация с анизотропией аналогичная, только надо отметить, что форсирование этой фильтрации в OpenGL не работает, поэтому увидеть ее можно только в играх, поддерживающих анизотропию самостоятельно). Такое падение делает наличие у KYRO анизотропии фикцией, и только. А теперь давайте посмотрим на качество анизотропии, чтобы убедиться в том, что малая потеря в производительности еще не гарантирует отличное качество этой фильтрации.

Для начала покажем так сказать "эталонный" скриншот, демонстрирующий... отсутствие анизотропии, где видна по всей своей красе трилинейная фильтрация (поклонники Voodoo аж крякнут от удовольствия, глядя на размытый пол :-).

Трилинейная фильтрация:

    


Ну вот, а теперь отправимся смотреть на то, как каждый из чипсетов "умеет" реализовывать анизотропную фильтрацию.

STM KYRO / KYRO II

Анизотропная фильтрация:

    


Как видно, качеством эта анизотропная фильтрация не блещет, при этом имея непомерные аппетиты. Это подтверждает вышесказанное, что данная функция у этой карты остается невостребованной (в самом деле, никто не будет играть при 15 fps, получая сомнительный прирост в качестве).

ATI RADEON

Анизотропная (максимальный уровень):

    


Если обратить внимание на вышеприведенные диаграммы падения производительности при активизации анизотропии, то становится очевидно, что нет никакого смысла включать промежуточный (High) уровень, а использовать следует только максимальный (Highest). И, как видим, качество весьма отменное! Тем не менее, должен отметить, что использование промежуточного уровня анизотропии дает артефакт с приближением размытого MIP-уровня:

    


ATI RADEON 7500

Анизотропная (максимальный уровень):

    


В принципе, учитывая, что RADEON 7500 по сути является разогнанной версией RADEON, то каких-либо изменений в части анизотропной фильтрации ждать не приходится, что и доказано скриншотом.

ATI RADEON 8500

Анизотропная (максимальный уровень):

    


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

NVIDIA GeForce2 Pro

Анизотропная фильтрация (Level 2):

    


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

NVIDIA GeForce3

Анизотропная фильтрация (Level 2):

    


Анизотропная фильтрация (Level 4):

    


Анизотропная фильтрация (Level 8):

    


Интересно отметить, что Level 2 анизотропия у GeForce3 по качеству чуть выше, чем аналогичная у GeForce2, но при этом и падение производительности больше. Остальные типы анизотропной фильтрации можно посмотреть только ради интереса, вследствие того, что ради них приходится жертвовать очень большой долей производительности (и обратите внимание на то, что разницы в качестве между Level4 и Level8 почти нет). Должен сказать, что жесткое соответствие типа анизотропии числу текстурных сэмплов — это всего лишь предположение, так как нигде это не регламентируется. Вполне возможно, что число текстурных сэмплов соответствует Level 2,4,8 как 8, 16 или 32, но при этом задается максимальное количество, то есть предел числа выборки сэмплов, на практике же процессор может использовать гораздо меньшие значения в зависимости от сцены. То есть присутствует так называемая адаптивная анизотропия, иначе говоря "приспосабливаемая". Повторяю, что это всего лишь предположения, тем более, что способы реализации анизотропной фильтрации у NVIDIA, например, совершенно иные, чем у ATI. Поэтому мы можем только сравнивать качество и степень расплаты производительностью за него.

Анизотропия в Direct3D

Надо отметить, что в драйверах от NVIDIA, начиная с 10.*, появилась возможность форсирования анизотропии в Direct3D. Я всем рекомендую установить Riva Tuner (автор Алексей Николайчук AKA Unwinder unwinder@medicom-mtd.com). Последняя версия этой утилиты уже адаптирована под Детонаторы последних выпусков — 12.*. C помощью этой утилиты очень удобно настраивать анизотропию в обоих API. Начиная с версии драйверов 12.90, в Direct3D реализована активация уже не только Level 2, но и Level 8 — анизотропии. Поэтому в следующем выпуске мы рассмотрим, что нам дает эта функция в Direct3D.

А вот у ATI RADEON в Direct3D форсирования анизотропии, к сожалению, нет, и поэтому мы не можем оценить уровень анизотропной фильтрации у RADEON в Direct3D прежде всего потому, что приложений, "знающих" эту функцию, очень мало. В обзоре по RADEON 8500 мы упоминали игру Max Payne, которая имеет возможность активизировать эту функцию, поэтому я приведу скриншоты, демонстрирующие качество анизотропии у RADEON 8500 и GeForce3.

RADEON 8500GeForce3
Трилинейная фильтрация
Анизотропная фильтрация


Я повторю выводы, сделанные в том обзоре по RADEON 8500:

"Я отмечу, что скриншот на GeForce3 был получен при максимально возможной степени анизотропии Level8 (напоминаю про катастрофическое падение производительности при этом), а уровень анизотропной фильтрации у RADEON 8500 неизвестен, поскольку игра не дает возможности его задавать (полагаю, что используется Highest уровень). Мы видим, что качество у обеих карт превосходное, а значит RADEON 8500 можно отнести в лидеры и по данной игре даже без измерений производительности, зная какое падение претерпит GeForce3 при активизации Level8."

Надо сказать, что качество анизотропии в Direct3D у обычного RADEON (как и RADEON 7500) ничуть не хуже, чем у RADEON 8500, поэтому выводы можно сделать самостоятельно о пригодности или непригодности этой функции.




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

3DGiТоги ноября 2001 года: Исследование анизотропной фильтрации на примере Serious Sam

3DGiТоги ноябрь 2001 года: Исследование анизотропной фильтрации на примере Serious Sam

Как уже широко известно, видеочипсеты NVIDIA GeForce256, GeForce2, GeForce3, ATI RADEON, RADEON 7500, RADEON 8500, STM KYRO, KYRO II обладают такой ныне популярной функцией, как анизотропная фильтрация. Как и билинейная, она служит для улучшения восприятия наблюдателем трехмерной сцены. Если трилинейная фильтрация служит для размытия границ между MIP-уровнями, обеспечивая плавность размытия текстур по мере удаления от наблюдателя, то анизотропная фильтрация — это как бы более высокая степень билинейной, она работает не на границах MIP-уровней, а по всей сцене. Ее задача — увеличить четкость изображения, не портя при этом результаты работы MIP-mapping-а, то есть разбиения сцены на уровни с разной детализацией текстур. Анизотропия может применяться совместно с трилинейной фильтрацией или без оной. Как и любая функция в трехмерной графике, анизотропная фильтрация не бесплатна, за качество приходится платить производительностью:



Как мы видим, в весьма выгодном положении NVIDIA GeForce2-карты, а также клоны ATI RADEON. Почему же так сильно падает производительность у NVIDIA GeForce3? Частично мы отвечали на этой вопрос в обзоре по этому GPU. Я лишь напомню, что GeForce2-карты — очень несбалансированы, поэтому у них графический процессор подчас простаивает в ожидании прокачки данных через шину памяти. Почему бы ему тогда не заняться дополнительным делом — поработать над анизотропией? Поэтому и падение производительности при активизации анизотропной фильтрации не столь велико. А GeForce3 — очень сбалансированный чип, отсюда и вывод: когда он занимается анизотропией, то это сразу же сказывается на общей производительности, так как в обычном режиме чипу не приходится "ожидать" более медленную память. Впрочем, ниже мы еще посмотрим на качество предоставляемой нам анизотропной фильтрации всеми участниками соревнований. И быть может, что быстр и скор, но выполнил свою задачу "тяп-ляп".

Обратите внимание на катастрофическое падение производительности у STM KYRO (у KYRO II ситуация с анизотропией аналогичная, только надо отметить, что форсирование этой фильтрации в OpenGL не работает, поэтому увидеть ее можно только в играх, поддерживающих анизотропию самостоятельно). Такое падение делает наличие у KYRO анизотропии фикцией, и только. А теперь давайте посмотрим на качество анизотропии, чтобы убедиться в том, что малая потеря в производительности еще не гарантирует отличное качество этой фильтрации.

Для начала покажем так сказать "эталонный" скриншот, демонстрирующий... отсутствие анизотропии, где видна по всей своей красе трилинейная фильтрация (поклонники Voodoo аж крякнут от удовольствия, глядя на размытый пол :-).

Трилинейная фильтрация:

    


Ну вот, а теперь отправимся смотреть на то, как каждый из чипсетов "умеет" реализовывать анизотропную фильтрацию.

STM KYRO / KYRO II

Анизотропная фильтрация:

    


Как видно, качеством эта анизотропная фильтрация не блещет, при этом имея непомерные аппетиты. Это подтверждает вышесказанное, что данная функция у этой карты остается невостребованной (в самом деле, никто не будет играть при 15 fps, получая сомнительный прирост в качестве).

ATI RADEON

Анизотропная (максимальный уровень):

    


Если обратить внимание на вышеприведенные диаграммы падения производительности при активизации анизотропии, то становится очевидно, что нет никакого смысла включать промежуточный (High) уровень, а использовать следует только максимальный (Highest). И, как видим, качество весьма отменное! Тем не менее, должен отметить, что использование промежуточного уровня анизотропии дает артефакт с приближением размытого MIP-уровня:

    


ATI RADEON 7500

Анизотропная (максимальный уровень):

    


В принципе, учитывая, что RADEON 7500 по сути является разогнанной версией RADEON, то каких-либо изменений в части анизотропной фильтрации ждать не приходится, что и доказано скриншотом.

ATI RADEON 8500

Анизотропная (максимальный уровень):

    


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

NVIDIA GeForce2 Pro

Анизотропная фильтрация (Level 2):

    


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

NVIDIA GeForce3

Анизотропная фильтрация (Level 2):

    


Анизотропная фильтрация (Level 4):

    


Анизотропная фильтрация (Level 8):

    


Интересно отметить, что Level 2 анизотропия у GeForce3 по качеству чуть выше, чем аналогичная у GeForce2, но при этом и падение производительности больше. Остальные типы анизотропной фильтрации можно посмотреть только ради интереса, вследствие того, что ради них приходится жертвовать очень большой долей производительности (и обратите внимание на то, что разницы в качестве между Level4 и Level8 почти нет). Должен сказать, что жесткое соответствие типа анизотропии числу текстурных сэмплов — это всего лишь предположение, так как нигде это не регламентируется. Вполне возможно, что число текстурных сэмплов соответствует Level 2,4,8 как 8, 16 или 32, но при этом задается максимальное количество, то есть предел числа выборки сэмплов, на практике же процессор может использовать гораздо меньшие значения в зависимости от сцены. То есть присутствует так называемая адаптивная анизотропия, иначе говоря "приспосабливаемая". Повторяю, что это всего лишь предположения, тем более, что способы реализации анизотропной фильтрации у NVIDIA, например, совершенно иные, чем у ATI. Поэтому мы можем только сравнивать качество и степень расплаты производительностью за него.

Анизотропия в Direct3D

Надо отметить, что в драйверах от NVIDIA, начиная с 10.*, появилась возможность форсирования анизотропии в Direct3D. Я всем рекомендую установить Riva Tuner (автор Алексей Николайчук AKA Unwinder unwinder@medicom-mtd.com). Последняя версия этой утилиты уже адаптирована под Детонаторы последних выпусков — 12.*. C помощью этой утилиты очень удобно настраивать анизотропию в обоих API. Начиная с версии драйверов 12.90, в Direct3D реализована активация уже не только Level 2, но и Level 8 — анизотропии. Поэтому в следующем выпуске мы рассмотрим, что нам дает эта функция в Direct3D.

А вот у ATI RADEON в Direct3D форсирования анизотропии, к сожалению, нет, и поэтому мы не можем оценить уровень анизотропной фильтрации у RADEON в Direct3D прежде всего потому, что приложений, "знающих" эту функцию, очень мало. В обзоре по RADEON 8500 мы упоминали игру Max Payne, которая имеет возможность активизировать эту функцию, поэтому я приведу скриншоты, демонстрирующие качество анизотропии у RADEON 8500 и GeForce3.

RADEON 8500GeForce3
Трилинейная фильтрация
Анизотропная фильтрация


Я повторю выводы, сделанные в том обзоре по RADEON 8500:

"Я отмечу, что скриншот на GeForce3 был получен при максимально возможной степени анизотропии Level8 (напоминаю про катастрофическое падение производительности при этом), а уровень анизотропной фильтрации у RADEON 8500 неизвестен, поскольку игра не дает возможности его задавать (полагаю, что используется Highest уровень). Мы видим, что качество у обеих карт превосходное, а значит RADEON 8500 можно отнести в лидеры и по данной игре даже без измерений производительности, зная какое падение претерпит GeForce3 при активизации Level8."

Надо сказать, что качество анизотропии в Direct3D у обычного RADEON (как и RADEON 7500) ничуть не хуже, чем у RADEON 8500, поэтому выводы можно сделать самостоятельно о пригодности или непригодности этой функции.