La biblioteca de WebGPU de Android Jetpack proporciona vinculaciones idiomáticas de Kotlin para el estándar de WebGPU, lo que permite capacidades de procesamiento y gráficos 3D modernos de alto rendimiento en tus aplicaciones para Android.
WebGPU es el sucesor de WebGL y el descendiente espiritual de OpenGL. Se creó desde cero para reflejar cómo funcionan las GPUs modernas y exponer las capacidades de la GPU de una manera multiplataforma, segura y ergonómica.
¿Por qué WebGPU?
- Usabilidad optimizada: Si bien Vulkan es la principal API de gráficos de bajo nivel en Android. WebGPU ofrece una API moderna de nivel superior que es más accesible y mucho menos detallada de usar en comparación con Vulkan.
- Procesamiento por lotes y serialización: WebGPU registra varios comandos en búferes de comandos, que forman parte de su diseño para minimizar la comunicación excesiva del protocolo. Esto también minimiza la necesidad de llamar a métodos externos cuando se usan vinculaciones de Kotlin.
- Compatibilidad universal: El código de sombreador de WebGPU (WGSL) se puede compartir directamente entre las implementaciones de WebGPU en todas las plataformas, incluida la Web.
- Optimización del procesamiento: El uso compartido de búferes sin copias y sin problemas entre las tareas de procesamiento y gráficos mejora el rendimiento y simplifica el desarrollo en comparación con las APIs heredadas.
Para quiénes es esta biblioteca
Esta biblioteca está diseñada para compilar aplicaciones de alto rendimiento que requieren acceso directo a la GPU:
- Filtros de procesamiento de imágenes y videos
- Visualizaciones de datos
- Inferencia de aprendizaje automático
- Juegos y simulaciones
No se incluyen los siguientes objetivos: Esta es una API de gráficos, no un motor de juegos. Eres responsable de administrar tu propio bucle de renderización, matrices de cámara y gráfico de escena.
Conceptos básicos de WebGPU
Comprender los objetos fundamentales de WebGPU y cómo interactúan es esencial para el desarrollo de WebGPU.
Concepto |
Descripción |
Instancia |
Es el punto de entrada a WebGPU, que otorga acceso a adaptadores y superficies. |
Adaptador |
Representa una GPU específica en el dispositivo |
Dispositivo |
Tu conexión lógica a la GPU en la que se crean los recursos |
Queue |
Mecanismo que se usa para enviar comandos a la GPU |
Shader Module |
Tu código de GPU, escrito en el lenguaje de sombreado de WebGPU (WGSL) |
Canalizaciones |
Objetos que describen el estado completo de la GPU (sombreadores, combinación) para una tarea |
Grupos de vinculaciones |
Vincula los búferes de datos (p. ej., texturas) a los sombreadores. |
Codificador de comandos |
Objeto que se usa para compilar una secuencia de comandos de GPU en un búfer de comandos |