Перейти к содержанию

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


Рекомендуемые сообщения

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

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

 
 

sm.01.750 (1).jpg

 

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

 

sm.02.750.jpg


Проект 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 запланирован на осень.

 

sm.01.750.jpg

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

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

____________________________________________________________
♦♦♦♦♦♦♦♦◄♫►WeissRussland◄♫►♦♦♦♦♦♦◄♠GRODNO♠►♦♦♦♦♦♦♦♦
---------------------------------------------------------------------------------------------------------
♠ 75.0°e ♣ 53.0°e ♦ 36.0°e ♥ 19.2°e ♠ 13.0°e ♥ 4.8°e ♠ 4.0°w ♣ 5.0°w ♦
____________________________________________________________

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...