WebGPU для Android

Библиотека WebGPU Android Jetpack предоставляет идиоматические привязки 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, предоставляющая доступ к адаптерам и поверхностям.

Адаптер

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

Устройство

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

Очередь

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

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

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

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

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

Bind Groups

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

Command Encoder

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