Библиотека 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 |
Объект, используемый для создания последовательности команд графического процессора в буфере команд. |