Vulkan
Vulkan это современная графика API, которая работает на нескольких платформах, включая мобильные и настольные. Unity поддерживает Vulkan позволяя вам нацелиться Vulkan-способных устройств и обеспечивает прямой контроль над GPU.
Совместимость платформ
Unity поддерживает Vulkan API для разработки приложений на следующих платформах:
- Android
- Встроенный Linux
- Linux
- Windows
Для разработки XR приложения, Unity поддержки Vulkan по вопросу Android платформа. Vulkan не активно поддерживается для XR на Windows, но Unity не мешает вам включить его.
Vulkan на Android
При создании нового проекта Android, Unity включает Vulkan в качестве графики по умолчанию API. Для других платформ, где Vulkan не является графикой по умолчанию API, вы можете включить ее через настройки проигрывателя Unity Editor. Дополнительную информацию см. в Переопределение графики по умолчанию APIs.
При разработке проекта Unity Android с Vulkan, учитывайте следующие рекомендации и особенности:
Vulkan фильтрация устройств
Вы можете управлять поддержкой Vulkan на устройствах Android, чтобы точно определить, какие устройства используют Vulkan API с помощью Vulkan Ассет фильтрации устройств. Этот ассет позволяет исключить конкретные устройства Android, на которых Vulkan может привести к неоптимальной производительности.
Предварительная ротация свопов
Рекомендуется включить ориентацию кадрового буфера через настройки Android Player. Для более подробной информации, см. документацию по Ориентация кадрового буфера.
Vulkan слои проверки
Можно включить слои проверки для отладки плагинов, использующих графику Vulkan API, с помощью аргумента командной строки -force-vulkan-layers. Дополнительные сведения о требованиях к плагинам при использовании слоев проверки см. в разделе Плагин с использованием графики Vulkan API.
Преимущества и ограничения
Рассмотрите следующие преимущества и ограничения использования Vulkan в качестве графики API в вашем проекте Unity.
- Vulkan включает поддержку High Definition Render Pipeline (HDRP) на Linux.
- На Linux и Android, Vulkan обычно поддерживает больше возможностей, таких как графические задания и прямое управление GPU, которые недоступны в OpenGL Основной на Linux или OpenGL ES на Android.
- Unity не поддерживает Vulkan для Windows на устройствах Arm. Если ваше приложение предназначено для таких устройств, рассмотрите возможность использования альтернативной графики APIs, поддерживаемой Unity.
- На Windows некоторые функции, такие как асинхронные вычисления и трассирование лучей, в настоящее время не реализованы для Vulkan. Наилучшей практикой Unity является использование D3D12 для этих функций.
Основные особенности и различия в Vulkan API
Vulkan поддерживает несколько функций и возможностей, которые отличают его от других графиков APIs, таких как OpenGL.
- Графические задания: Vulkan поддерживает графические задания, возможность, которая позволяет выполнять задачи рендеринга на нескольких потоках. Это может помочь повысить производительность вашего приложения. Функция графических заданий не поддерживается с OpenGL.
- Динамическое разрешение: Vulkan поддерживает динамическое масштабирование разрешения на устройствах, позволяющее регулировать разрешение отдельных целей рендеринга в реальном времени. Эта функция снижает нагрузку на GPU тем самым повышая производительность вашего приложения.
- Тексты рендеринга без памяти: На некоторых платформах, совместимых с Vulkan, текстуры рендеринга без памяти временно хранят данные в памяти плитки во время рендеринга. Это может помочь повысить производительность и уменьшить использование памяти приложения.
- Прямое управление GPU: Unity использует возможность Vulkan напрямую управлять GPU для поддержки параметра
-force-device-index, позволяющего выбрать GPU для Standalone Player Unity. Эта возможность Vulkan помогает оптимизировать производительность приложения. OpenGL её не поддерживает. - XR особенности: Unity рекомендует использовать Vulkan для Android XR и Meta Quest устройств, потому что некоторые более новые графические функции поддерживаются только с Vulkan. Например, Области рендеринга Multiview является Vulkan специфической функцией. Vulkan API более стабилен и обеспечивает лучшую производительность по сравнению с OpenGL в URP проектах, нацеленных на XR платформы.
Дополнительные ресурсы
- Vulkan руководящие принципы
- Vulkan слои проверки на Android