Vulkan теперь предлагает поддержку трассировки лучей. Khronos опубликовал окончательные спецификации Vulkan Ray Tracing, среды разработки, которая позволяет ускорять функции трассировки лучей в этом стандарте с открытым исходным кодом для разработки видеоигр и 3D-приложений.
Трассировка лучей – это метод представления, который реалистично моделирует пересечение световых лучей и взаимодействие с геометрией сцен, материалов и источников света для создания фотореалистичных изображений. Он широко используется для рендеринга фильмов и другой видеопродукции, также он используется в видеоиграх и начинает использоваться в других типах приложений.
До сих пор этот тип функции ускорения лучей ограничивался выделенной графикой NVIDIA RTX и библиотеками DirectX 12 Ultimate. Появление Vulkan Ray Tracing может открыть его использование для других типов оборудования, любым разработчиком и для любого программного обеспечения, которое использует 3D-изображения.
Следует помнить, что Vulkan – это набор библиотек с открытым исходным кодом, которые обеспечивают низкоуровневый доступ, позволяя программистам максимизировать производительность оборудования. Открытый, бесплатный, многоплатформенный API, который постоянно совершенствовался в течение последних нескольких лет и стал единственной альтернативой Microsoft DirectX.
Khronos опубликовал окончательные спецификации набора спецификаций, которые позволят аппаратное ускорение следа молнии. Это важно, потому что это первый открытый стандарт, допускающий такой тип функций.
Vulkan Ray Tracing интегрирует согласованную структуру трассировки лучей в Vulkan API, обеспечивая гибкое объединение растеризации и ускорения трассировки лучей. Трассировка лучей Vulkan разработана так, чтобы не зависеть от оборудования и поэтому может быть ускорена как на существующих вычислениях на графическом процессоре, так и на выделенных ядрах трассировки лучей, если они доступны.
Общая архитектура этих библиотек будет знакома пользователям существующих API-интерфейсов трассировки лучей, что позволит напрямую переносить существующий контент трассировки лучей, но эта структура также предоставляет новые функциональные возможности и гибкость в реализации.
Vulkan Ray Tracing состоит из серии расширений Vulkan, SPIR-V и GLSL, некоторые из которых являются необязательными. Основное расширение VK_KHR_ray_tracing обеспечивает поддержку для создания структур ускорения, этапов трассировки лучей и конвейеров шейдера и управления ими, а также внутренних запросов для всех этапов шейдера.
Другое важное расширение – VK_KHR_pipeline_library, предоставляющее набор шейдеров, которые могут быть эффективно связаны с конвейерами трассировки лучей, в то время как VK_KHR_deferred_host_operations позволяет загружать интенсивные операции контроллера, включая компиляцию трассировки лучей или построение структуры ускорения на основе ЦП, в группы потоков, управляемые применение.
Все эти функции уже определены в окончательной версии спецификаций, хотя процесс их реализации не является автоматическим и должен определяться каждым разработчиком для каждой игры или приложения. Vulkan может использовать широкий спектр оборудования. Теоретически любой графический процессор может запускать Vulkan RT с использованием существующих ядер «вычислений на графическом процессоре», хотя производительность, вероятно, не будет максимально возможной.
Хорошая новость заключается в том, что Vulkan консолидируется как отличная альтернатива монополии Microsoft на DirectX и во всех типах функций, включая трассировку лучей, которая стала одним из методов эталонного представления. У Khronos есть большое количество производителей, которые их поддерживают (AMD, Intel, NVIDIA, Qualcomm, Imagination, ARM…) и поставщиков графических движков, таких как iDTech, Unreal, Unity, Frostbite или CryEngine. Скоро будет нетрудно увидеть Vulkan Ray Tracing в отличных играх.