Microsoft анонсировала API трассировки лучей для DirectX 12

17f07e50d1b9972088e5d6f191affef5

Microsoft с пaртнёрaми, кaк и oжидaлoсь, сдeлaлa вaжный aнoнс в рaмкax мeрoприятия NVIDIA GDC 2018 — в грaфичeскoм API DirectX 12 пoявится нoвaя функциoнaльнoсть в лицe DirectX Raytracing (DXR). Рeчь идёт o стaндaртe прoгрaммнoй и, чтo кудa интeрeснee, aппaрaтнoй трaссирoвки лучeй (ray tracing) в рaмкax DirectX.

Дo сиx пoр трaссирoвкa oстaвaлaсь oблaстью, мaлoпригoднoй для игр и иныx грaфичeскиx прилoжeний рeaльнoгo врeмeни из-зa oбилия рaсчётoв и в кoнeчнoм счётe нeвысoкoй прoизвoдитeльнoсти. Тeм нe мeнee, oнa в oтличиe oт oбычнoгo рaстрoвoй визуaлизaции сoврeмeнныx видeoкaрт, кoтoрaя эмулирует тени и отражения с помощью шейдеров и других уловок, позволяет создавать более физически точную модель отражений и затенений путём отслеживания обратной траектории распространения лучей света.

Что такое DirectX Raytracing (DXR)? На самом высоком уровне речь идёт о четырёх новых концепциях API DirectX 12:

  • Структура ускорения (acceleration structure) — объект, представляющий полную 3D-среду в формате, оптимальном для обработки графическим ускорителем. Представленная в качестве двухуровневой иерархии, структура обеспечивает как оптимизированное отслеживания лучей с помощью GPU, так и эффективную модификацию динамических объектов со стороны приложения.
  • Новый метод списка команд DispatchRays, который является отправной точкой для трассировки лучей в сцене. Именно с его помощью игра фактически передаёт рабочие нагрузки DXR на GPU.
  • Набор новых шейдерных типов HLSL, включая ray-generation, closest-hit, any-hit и miss. Они определяют, какими именно вычислениями затенения нагружает DXR ускоритель. Когда вызывается DispatchRays, запускается шейдер генерации лучей ray-generation. Используя новую внутреннюю функцию TraceRay в HLSL, этот шейдер отслеживается в сцене. В зависимости от того, куда луч направлен, в точке пересечения может быть вызван один из нескольких шейдеров hit или miss. Это позволяет игре назначать каждому объекту свой собственный набор шейдеров и текстур, что приводит к уникальному материалу.
  • Режим конвейера трассировки, совпадающий по духу с сегодняшними режимами графического или вычислительного конвейеров, подразумевает использование шейдеров трассировки лучей и прочие соответствующие вычислительные нагрузки.
  • Проект PICA PICA от команды EA SEED показывает, как трассировка лучей в реальном времени при помощи DXR может выглядеть в будущих играх

    DXR не требует наличия новой видеокарты — по словам Microsoft, рабочие нагрузки DXR могут возлагаться на любой из существующих движков DX12. Дело в том, что по своей сути DXR является нагрузкой вычислительного типа. По словам Microsoft, современные аппаратные графические ускорители становятся всё более универсальными, и в конечном итоге большинство блоков фиксированной функциональности будут заменены на универсальный HLSL-код.

    Microsoft вместо традиционного подхода, предусматривающего создание для режима трассировки лучей нового метода CreateRaytracingPipelineState, предпочла более общий и гибкий метод CreateStateObject. Он может использоваться как для активации конвейера трассировки, так и для графического, вычислительного или любого другого будущего конвейера GPU. Теоретически это означает, что разработчики смогут создавать свои DXR-рейтрейсеры, в той или иной степени смешанные с традиционной растеризацией, чтобы достигать приемлемых результатов с точки зрения качества и производительности.

    Любопытно, что опробовать DXR разработчики могут уже сейчас. Microsoft выпустила пакет экспериментальных SDK-инструментов с примерами кода. Для работы с ним требуется участие в программе Windows Insider и грядущий весенний пакет обновлений Windows 10 Redstone 4 (RS4). Полноценный же запуск API DXR запланирован на осень.

    Впрочем, судя по всему, пока единственной по-настоящему оптимизированной под DXR аппаратной архитектурой является NVIDIA Volta, которой пока нет на игровом рынке. AMD ещё работает над драйвером, который обеспечит поддержку технологии. Возможно, с выходом DXR на рынок использование анонсированного ещё на GDC 2014 низкоуровневого графического API DirectX 12 станет более широким.

    Стоит отметить, что некоторые известные компании и игровые студии, как отмечает Microsoft, уже около года знают о создании DXR и в той или иной степени работают над разработкой стандарта и внедрением его в свои графические движки. Среди прочих названы имена Epic Games, Electronic Arts и DICE, Unity, Remedy, 4A Games, Allegorithmic и Futuremark.

    Источник:

    Комментарии и уведомления в настоящее время закрыты..

    Комментарии закрыты.