Документация
ОС Аврора 5.2.0

Работа с Vulkan API

Начиная с ОС Аврора 5.2, в приложения можно подключать Vulkan API. Vulkan API — это низкоуровневый, кроссплатформенный графический интерфейс, предоставляющий прямой доступ к оборудованию для высокопроизводительной и гибкой разработки графических приложений с поддержкой многопоточности.

Более подробно узнать об его архитектуре и функциональности можно в данной статье.

Сравнение Vulkan API и OpenGL ES

Помимо Vulkan API для работы с графикой также можно использовать OpenGL ES. Подробнее ознакомиться с данной технологией можно из источников, указанных здесь.

Выбор между OpenGL ES и Vulkan API зависит от конкретных требований проекта:

  • OpenGL ES подходит для разработки на мобильных устройствах, особенно если важна простота и скорость разработки, а требования к производительности умеренные.
  • Vulkan API целесообразно использовать в проектах, где требуется максимальная производительность, низкоуровневый контроль над аппаратными ресурсами и поддержка современных графических технологий.

Ниже приведено более подробное сравнение Vulkan API и OpenGL ES по различным критериям:

Критерий OpenGL ES Vulkan API
Платформы Мобильные устройства (Android, iOS), встраиваемые системы, Аврора ОС Кроссплатформенный (Android, Linux, Windows, macOS/iOS через слой совместимости), Аврора ОС
Поддержка на устройствах Все устройства под управлением Аврора ОС Поддерживается не на всех устройствах под управлением Аврора ОС — должна быть обеспечена поддержка со стороны производителя
Уровень абстракции Высокий (упрощенное управление) Низкий (прямой контроль над железом)
Производительность Подходит для простых приложений Высокая (оптимизация для сложных сцен и многопоточности)
Сложность разработки Низкая (меньше кода, проще обучение) Высокая (требует глубоких знаний)
Использование в движках Мобильные движки и библиотеки (например, OpenSceneGraph) Современные движки (VulkanSceneGraph)
GPGPU Возможно, но не оптимально Прямая поддержка через вычислительные шейдеры, можно применять для запуска нейросетей
Современные технологии Ограниченная поддержка новейших функций Полная поддержка (трассировка лучей, сеточные шейдеры)

Подключение

  1. Подключить следующие зависимости в .spec-файле:

    BuildRequires: vulkan-headers
    BuildRequires: vulkan-devel
    
  2. Подключить модуль в системе сборки qmake:

    CONFIG += link_pkgconfig
    PKGCONFIG += vulkan
    

    Или же в cmake:

    find_package(Vulkan REQUIRED)
    target_link_libraries(${PROJECT_NAME} Vulkan::Vulkan ${AURORA_LDFLAGS})
    
  3. В результате необходимый функционал можно будет импортировать в C++ код:

    #include "vulkan/vulkan.h"
    

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.