WebGPU для Android

Библиотека Android Jetpack WebGPU предоставляет идиоматические привязки Kotlin к стандарту WebGPU , обеспечивая высокопроизводительную, современную 3D-графику и вычислительные возможности в ваших приложениях Android.

WebGPU — это преемник WebGL и идейный потомок OpenGL, разработанный с нуля с учетом принципов работы современных графических процессоров и обеспечивающий кроссплатформенный, безопасный и эргономичный доступ к возможностям графических процессоров.

Почему именно WebGPU?

  • Упрощенное использование : В то время как Vulkan является основным низкоуровневым графическим API на Android, WebGPU предлагает современный, высокоуровневый API, который более удобен в использовании и значительно менее многословен по сравнению с Vulkan .
  • Пакетная обработка и сериализация. WebGPU записывает несколько команд в буферы команд , что является частью его архитектуры для минимизации избыточности протокола. Это также сводит к минимуму необходимость вызова внешних методов при использовании привязок Kotlin.
  • Универсальная поддержка : код шейдеров WebGPU (WGSL) может напрямую использоваться в различных реализациях WebGPU на разных платформах, включая веб.
  • Оптимизированные вычисления : Бесперебойное, не требующее копирования совместное использование буферов между вычислительными и графическими задачами повышает производительность и упрощает разработку по сравнению с устаревшими API.

Для кого предназначена эта библиотека?

Эта библиотека предназначена для создания высокопроизводительных приложений, требующих прямого доступа к графическому процессору:

  • Фильтры обработки изображений и видео
  • Визуализация данных
  • Вывод машинного обучения
  • Игры и симуляции

Примечание : Это графический API, а не игровой движок. Вы сами отвечаете за управление циклом рендеринга, матрицами камеры и графом сцены.

Основные концепции WebGPU

Понимание основных объектов WebGPU и принципов их взаимодействия имеет важное значение для разработки приложений WebGPU.

Концепция

Описание

Пример

Точка входа в WebGPU, предоставляющая доступ к адаптерам и интерфейсам.

Адаптер

Представляет собой конкретный графический процессор (GPU) на устройстве.

Устройство

Ваше логическое соединение с графическим процессором, где создаются ресурсы.

Очередь

Механизм, используемый для отправки команд на графический процессор.

Модуль шейдера

Ваш код для графического процессора, написанный на языке шейдинга WebGPU (WGSL).

Трубопроводы

Объекты, описывающие всё состояние графического процессора (шейдеры, смешивание) для задачи.

Группы связывания

Связывает буферы данных (например, текстуры) с шейдерами.

Командный кодировщик

Объект, используемый для формирования последовательности команд графического процессора в буфер команд.