Оригинал материала: https://3dnews.ru./589315

Аппаратная тесселяция в GPU - возможности и требования

Стр.1 - Тестирование в Unigine Heaven 2.0

Вопрос фотореализма в компьютерных играх неоднократно поднимался на протяжении многих лет. Казалось бы, неуклонный рост вычислительной мощности ГП давно должен был обеспечить фотореалистичные 3D-изображения на экранах наших мониторов. Но, несмотря на все обещания, до сих пор ещё очень мало игр, которые по качеству графики хотя бы отдалённо напоминают фотографии. Основной причиной этого, безусловно, является относительная слабость современных GPU, однако, это не единственная причина. Подавляющее большинство современных компьютерных игр для ПК создаётся под ОС Windows, а основная масса этих игр работает с помощью встроенного в операционную систему API DirectX. Набор API DirectX за всё время своего существования (примерно 15 лет) эволюционировал очень сильно. Новейшая, на сегодняшний день, версия DirectX под номером 11 вышла осенью прошлого года в составе операционной системы Windows 7. C выходом DirectX 11, в распоряжении разработчиков появился целый ряд технологий, позволяющих существенно поднять уровень реализма современных компьютерных игр. В данном материале мы сосредоточим своё внимание лишь на одной, но зато очень важной технологии - тесселляции. Напомним, что трёхмерные модели, используемые в актуальных 3D-играх, состоят из множества многоугольников – полигонов. Причем графический адаптер получает для обработки модель, состоящую из самых простых полигонов – треугольников, описываемых координатами их вершин. Чем из большего количества полигонов состоит геометрическая модель, тем более детализированной и, как следствие, более реалистичной она кажется. Однако, даже для современных CPU создание сцены, состоящей из сотен миллионов взаимодействующих в режиме реального времени полигонов – задача непосильная. Как же быть? Решением данной задачи как раз и служит технология тесселляции, позволяющая переложить создание и обработку дополнительных вершин на графический процессор. Увеличение детализации объёктов с помощью тесселляции реализовано достаточно просто и эффективно – подробнее об этом вы можете прочитать в обзоре архитектуры Fermi. Следует отметить, что технология тесселляции вовсе не нова – она давно и успешно (инженеры Silicon Graphics реализовали программно соответствующие алгоритмы еще в 80-х годах прошлого века) применяется в профессиональной компьютерной графике, в том числе в кинематографе. Однако компьютерные игры требуют реализации подобных механизмов в реальном времени (в то время как в кинематографе на рендеринг каждого кадра могут тратиться часы и дни) с частотой в десятки кадров в секунду, а это требует не только большей вычислительной мощности, но и некоторого усложнения архитектуры GPU. Теперь, с выходом DirectX 11 и совместимых с этим API видеокарт, следует ожидать появления все большего количества игр, активно использующих эту технологию. Первой видеокартой с полной поддержкой всех функций DirectX 11 и, в том числе, тесселляции стал ускоритель Radeon HD 5870 производства AMD, затем линейка серии HD 5xxx стала шире и теперь практически во всех сегментах у AMD есть представители с поддержкой DX11. Спустя полгода после выхода Radeon HD 5870, компания NVIDIA выпустила графический процессор GF100 и видеокарты на его основе - GeForce GTX 470/480, которые, как и решения AMD, полностью поддерживают DirectX 11. Можно сказать, что теперь между двумя гигантами IT-индустрии наблюдается технологический паритет. Однако, формальная поддержка той или иной технологии, зачастую не гарантирует высокую производительность при её (технологии) использовании. В процессе создания архитектуры Fermi и графических чипов GF100, инженеры компании NVIDIA постарались сделать новый GPU быстрым не только в существующих приложениях, но также и немного заглянуть в будущее. По заявлению представителей компании NVIDIA, тесселляция является одной из сильных сторон GF100, поскольку, как считают в NVIDIA, эта технология будет использоваться во всех DirectX 11 играх ближайшего будущего. Для демонстрации преимуществ тесселляции на своих новых ускорителях GeForce GTX 470 и GeForce GTX 480 программисты NVIDIA создали специальные программы. Ознакомиться с ними можно здесь. Оценить производительность новинки в базовых для Hi-End ускорителя режимах можно в нашем предыдущем обзоре GeForce GTX 480, а сегодня нашей целью является практическая проверка возможностей этого ускорителя в приложениях, поддерживающих тесселляцию. Также мы посмотрим, на что в аналогичных условиях способны самые быстрые видеокарты AMD – Radeon HD 5870 и Radeon HD 5970. Участники тестирования:
  • AMD Radeon HD 5870
  • AMD Radeon HD 5970
  • NVIDIA GeForce GTX 480
    • Тестирование всех видеокарт в данном обзоре проводилось на стенде следующей конфигурации:
      Тестовый стенд
      Центральный процессор Intel Core i7 870 @ 4.0 ГГц (182x22)
      Система охлаждения CPU Glacialtech F101 + 2 x 120 мм
      Материнская плата ASUS Maximus III Extreme
      Оперативная память Super Talent DDR3 @ 1890, 9-9-9-24-1T
      Жёсткий диск Samsung SpinPoint 750 ГБ
      Блок питания IKONIK Vulcan 1200 Вт
      Корпус Cooler Master test bench 1.0
      Операционная система Microsoft Windows 7 x64 Ultimate
      Версии драйверов: Для видеокарт NVIDIA использовались драйверы ForceWare 197.17;
      Для видеокарт AMD использовались драйверы Catalyst 10.3 c Catalyst CrossFireX Profiles 10.3
      Тестовые приложения:
      Приложение Разрешение Графические режимы Варианты настроек тесселяции
      STALKER: Call of Pripyat. Сцена Sun Shafts 1680x1050
      1920x1200
      DX 11, Max. Detail, No AA/AF, Real Shadows
      DX 11, Max. Detail, 4xAA/16xAF, Real Shadows
      Tessellation Off
      Tessellation On
      Colin MCRae DiRT 2 1680x1050
      1920x1200
      DX 9 Ultra Detail, No AA/AF
      DX 9 Ultra Detail, 4xAA/16xAF
      DX 11 Ultra Detail, No AA/AF, Tessellation On
      DX 11 Ultra Detail, 4xAA/16xAF, Tessellation On
      Unigine Heaven v 2.0 1680x1050
      1920x1200
      DX11, High Detail, No AA/4xAF Tessellation Off
      Tessellation Moderate
      Tessellation Normal
      Tessellation Extreme

      #Unigine Heaven 2.0

      Начнём мы, пожалуй, с новой версии синтетического тестового пакета Unigine Heaven 2.0. Основной акцент в Heaven 2.0 был сделан на демонстрации различных режимов тесселляции. Пользователь может выбрать один из нескольких режимов работы этой технологии: выключена (Off), умеренная (Moderate), нормальная (Normal) и экстремальная (Extreme). Чтобы наглядно проиллюстрировать различия между вышеозначенными режимами, мы сделали несколько скриншотов:
       P-1920x1200-off-s.jpg
       1920x1200-disabled-s.jpg
      Тесселляция выключена
       P-1920x1200-Moderate-s.jpg
       1920x1200-Moderate-s.jpg
      Умеренная тесселляция
       P-1920x1200-normal-s.jpg
       1920x1200-norma-s.jpg
      Нормальная тесселляция
       P-1920x1200-Extreme-s.jpg
       1920x1200-Extreme-s.jpg
      Экстремальная тесселляция
      Разница между режимами видна невооружённым глазом. Включение тесселляции в Unigine Heaven 2.0 придаёт изображению больше реализма. Часть объектов приобрела “жизненный” объём, благодаря чему, виртуальный мир стал восприниматься намного лучше. Ну что же, посмотрим какие результаты в этом тесте покажут самые мощные модели AMD и NVIDIA.
       1-UnigineHeavenBenchmarkv20(DX.png
       2-UnigineHeavenBenchmarkv20(DX.png
       3-UnigineHeavenBenchmarkv20(DX.png
       4-UnigineHeavenBenchmarkv20(DX.png
      Во всех без исключения режимах тесселляции при разрешении 1680x1050 NVIDIA GeForce GTX 480 оказывается заметно быстрее своего основного конкурента – AMD Radeon HD 5870. Более того, при включении тесселляции, по минимальному показателю fps GeForce GTX 480 оказывается быстрее Radeon HD 5870 в разы! Самая большая разница между этими видеокартами в экстремальном режиме тесселляции. Видеокарта AMD Radeon HD 5970 оказывается быстрее топ-модели NVIDIA, но только до тех пор, пока не активирована тесселляция. В режиме moderate двухчиповый монстр от AMD всё ещё лидирует по среднему значению частоты кадров, однако проигрывает около 10 fps по минимальному значению. Переход к режиму Normal позволяет GeForce GTX 480 выйти почти на равных с Radeon HD 5970 по среднему значению частоты смены кадров, а по минимальному – опередить двухчипового соперника на всё те же 10 fps, как и в режиме moderate. Активация экстремального режима тесселляции кладёт на лопатки Radeon HD 5970, а вот GeForce GTX 480 как ни в чём не бывало, продолжает показывать приличную частоту смены кадров. Очень интересно, посмотрим, что будет при переходе к более тяжёлому разрешению.
       5-UnigineHeavenBenchmarkv20(DX.png
       6-UnigineHeavenBenchmarkv20(DX.png
       7-UnigineHeavenBenchmarkv20(DX.png
       8-UnigineHeavenBenchmarkv20(DX.png
      Более высокое разрешение не изменило общее положение дел. В Unigine Heaven 2.0 после активации тесселляции, особенно в экстремальных режимах, идёт “на дно” даже Radeon HD 5970. В то же время детище NVIDIA производит благоприятное впечатление. Сложные сцены даются этому ускорителю заметно легче, чем конкурентам производства AMD. Справедливости ради, стоит отметить, что тестовый пакет Unigine Heaven 2.0 является синтетическим, что не позволяет переносить полученные в нём результаты производительности на реальные игры. Более того, пока что сложно сказать, будут ли игры, выпущенные в ближайшее время, поддерживать настолько сложные режимы тесселляции. От синтетики – к реальным играм, на очереди Colin McRae DiRT 2.

      Стр.2 - Тестирование в реальных играх. Выводы

      #ColinMcRae DiRT 2

      Разработчики DiRT 2 не стали включать в свой продукт поддержку DirectX 10, их детище работает либо с 9-й, либо с 11-й версией DirectX. Говоря откровенно, во время игры в DiRT 2 довольно сложно почувствовать разницу между визуализацией с помощью DX9 и DX11. Без пристального изучения скриншотов и демонстрационных роликов не обойтись.
       DIRT2-Crowd_DX9-s.jpg
      DirectX 9 (тесселляция отсутствует)
       DIRT2-Crowd_DX11-s.jpg
      DirectX 11 (тесселляция включена)
       DIRT2-Flag_DX9-s.jpg
      DirectX 9 (тесселляция отсутствует)
       DIRT2-Flag_DX11-s.jpg
      DirectX 11 (тесселляция включена)
       DIRT2-Water_DX9-s.jpg
      DirectX 9 (тесселляция отсутствует)
       DIRT2-Water_DX11-s.jpg
      DirectX 11 (тесселляция включена)

      Ну что же, посмотрим, как изменится производительность участников нашего теста при переходе от DirectX 9 к DirectX 11.

       11-ColinMcRaeDiRT2(1680x1050,Ul.png
      Все без исключения герои нашего теста в разрешении 1680x1050 показывают отличную производительность во всех режимах. Без полноэкранного сглаживания и анизотропной фильтрации, в DirectX 9 лидером оказывается видеокарта GeForce GTX 480, которая обходит как по минимальному, так и по среднему показателю частоты смены кадров даже Radeon HD 5970. Переход к DirectX 11 и включение тесселляции меняет расстановку сил и вот уже показатель минимальной частоты смены кадров выше у Radeon HD 5970, а средний наравне с GeForce GTX 480. Видеокарта AMD Radeon HD 5870 как в DirectX 9, так и в DirectX 11 оказывается медленнее GeForce GTX 480. Включение полноэкранного сглаживания и анизотропной фильтрации не влияет на расстановку сил между новинкой NVIDIA и Radeon HD 5870, а вот Radeon HD 5970 и в DirectX 9 и в DirectX 11 обходит GeForce GTX 480 как по минимальному, так и по среднему показателю fps.
       12-ColinMcRaeDiRT2(1920x1200,Ul.png
      В целом, повышение разрешения заметно повлияло на производительность всех участников тестирования, особенно в режимах со сглаживанием. Расстановка сил между Radeon HD 5870 и GeForce GTX 480 не изменилась, детище NVIDIA по-прежнему быстрее во всех режимах. А вот схватка GeForce GTX 480 с Radeon HD 5970 как со сглаживанием, так и без него, почти везде закончилась победой последнего.

      #S.T.A.L.K.E.R.: Зов Припяти.

      В сцене Sun Shafts из игры S.T.A.L.K.E.R.: Зов Припяти не демонстрируют высокой частоты смены кадров даже самые мощные ускорители. Посмотрим, какую производительность покажут нам наши герои в DirectX 11 с включённой тесселляцией и без неё. Но для начала, несколько скриншотов.
       STALKER-No-tess-s.jpg
      Тесселляция отсутствует
       STALKER-Tess-s.jpg
      Тесселляция включена
       9-STALKERЗовПрипяти(DX11,1680x.png

      Без тесселляции и сглаживания видеокарта AMD Radeon HD 5870 идёт наравне с GeForce GTX 480, с небольшим перевесом представителя NVIDIA по средней частоте смены кадров. Однако, стоит включить тесселляцию и GeForce GTX 480 обходит своего основного конкурента как по минимальному, так и по среднему значению fps. А вот после включения полноэкранного сглаживания GeForce GTX 480 сдаёт позиции и практически на равных выступает с Radeon HD 5870. Обратите внимание на то, что разница в производительности между режимами с включённой тесселляцией и без неё невелика. Это вполне закономерно, поскольку отличия в качестве картинки после активации тесселляции минимальны. Абсолютным чемпионом в разрешении 1680x1050 является видеокарта Radeon HD 5970, которая показывает лучшие результаты как с тесселляцией, так и без неё.

       10-STALKERЗовПрипяти(DX11,1920x.png
      Рост разрешения не сильно изменил картину. Ускоритель Radeon HD 5970 всё ещё лидирует во всех режимах, GeForce GTX 480 слегка обгоняет Radeon HD 5870, за исключением, пожалуй, самого тяжёлого режима без тесселляции, но с включённым полноэкранным сглаживанием и анизотропной фильтрацией.

      #Выводы

      Включение тесселляции в современных компьютерных играх и тестовых утилитах, если те, конечно, поддерживают эту технологию, безусловно, самым лучшим образом влияет на качество картинки. Окружающий трёхмерный мир уже не кажется таким безжизненным нереально правильным. Те элементы, которые ранее были обычными текстурированными прямоугольниками, теперь выглядят более естественно, а игра света на их поверхностях буквально завораживает. Стоит отметить блестящее исполнение трёхмерного мира в Unigine Heaven Benchmark 2.0. Однако, что касается реальных игр, то здесь ситуация не столь однозначная. Без пристального рассмотрения скриншотов и видеороликов не так просто сходу ответить на вопрос, что же изменилось после включения тесселляции. Так что по-настоящему яркие впечатления от применения тесселляции в игровых проектах – это вопрос скорее перспективных игр. Будет ли в них эта технология задействована так же глубоко, как в Unigine Heaven 2.0? Хочется верить, что да. Что же касается расстановки сил между участниками нашего теста, то в режимах с включённой тесселляцией GeForce GTX 480 опережает Radeon HD 5870, как в «синтетике», так и в реальных играх. Противостояние GeForce GTX 480 и Radeon HD 5970 в современных играх оканчивается победой последнего, но в «синтетике» впереди GeForce, что позволяет предположить, что в перспективных играх результаты GeForce GTX 480 и Radeon HD 5970 будут ближе.


Оригинал материала: https://3dnews.ru./589315