NVIDIA опубликовала демо для Turing Mesh Shaders

Опубликовано:

turing-gpuФокус архитектуры NVIDIA Turing и видеокарт GeForce RTX - на аппаратной поддержке трассировки лучей (RTX или DXR в Battlefield V) и DLSS (deep learning super sampling). Но NVIDIA с новыми видеокартами представила и ряд других улучшений, которые получили не так много внимания со стороны геймеров.

Например, стоит отметить технологию NVIDIA Adaptive Shading (NAS), которая на данный момент поддерживается только игрой Wolfenstein II: The New Colossus. Новые Mesh Shaders тоже относятся к преимуществам архитектуры Turing. Суть в том, что большое число объектов на 3D-сцене приводит к слишком "тяжелым" расчетам геометрии. Частично эти расчеты выполняются процессором, и здесь можно образовываться "узкое место".

NVIDIA разработала техническую демонстрацию Asteroids, которую компания показывала в рамках презентации архитектуры Turing. Теперь демо Asteroids можно скачать напрямую с сайта NVIDIA. Подробности приведены в блоге NVIDIA. Когда именно мы получим реализацию Mesh Shaders в конкретных играх - неизвестно.

Что такое Mesh Shading?

Уже давно для выбора уровня детализации объектов используется LOD (Level of Detail), зависящий от расстояния. Большинство игровых движков используют фиксированный LOD, иногда его можно менять. Но параметр не динамический, то есть он не зависит от сложности 3D-сцены.

Для сцены с 200.000 объектами на расчет геометрии остается только 2 мс - если требуется получить 60 FPS. Что приводит к 10 нс на каждый объект, включая необходимые расчеты LOD и вызовы Draw Call. В результате современные 3D-движки могут оперировать 20.000-30.000 объектами на сцене, не больше. С адаптивным LOD и Mesh Shading геометрия сцены может включать 200.000 объектов.

Mesh-шейдеры архитектуры Turing могут гибко определять LOD в зависимости от загрузки движка рендеринга. Теперь процессору уже не придется выполнять определенное количество вычислений для фиксированного LOD и object culling (отсечение невидимых объектов) - ему достаточно лишь выполнить процедуры Draw Call для Mesh Shaders. В данном случае шейдеры (Vertex и Hull) объединены в Task-шейдеры, которые и отвечают за выбор LOD и отсечение невидимых объектов. Шейдеры доменов и геометрии теперь объединены в Mesh-шейдеры.

На сцене присутствовало между 200.000 и 300.000 астероидов. В зависимости от LOD, на самом высоком уровне геометрии число полигонов достигает почти 4.000.000.000.000. Что вряд ли по силам современным аппаратным ресурсам.

Архитектура Turing теперь может определять, какие объекты следует рассчитывать, а какие - нет. Также динамически регулируется и LOD. NVIDIA показала используемые LOD через разные цвета. Синий, фиолетовый и синий соответствуют высокому LOD, зеленый и желтый - низкому LOD. Изменение LOD в зависимости от расстояния выполняется динамически, незаметно для геймера.