Biblioteka WebGPU Androida Jetpack zapewnia idiomatyczne powiązania Kotlin z standardem WebGPU, umożliwiając wysoką wydajność, nowoczesną grafikę 3D i możliwości obliczeniowe w aplikacjach na Androida.
WebGPU to następca WebGL i duchowy spadkobierca OpenGL. Został zaprojektowany od podstaw, aby odzwierciedlać sposób działania nowoczesnych procesorów graficznych i udostępniać ich możliwości w sposób bezpieczny, ergonomiczny i działający na różnych platformach.
Dlaczego WebGPU?
- Uproszczona obsługa: Vulkan jest głównym interfejsem API grafiki niskiego poziomu na Androidzie. WebGPU to nowoczesny interfejs API wyższego poziomu, który jest łatwiejszy w użyciu i znacznie mniej złożony niż Vulkan.
- Grupowanie i serializacja WebGPU rejestruje wiele poleceń w buforach poleceń, co jest częścią jego konstrukcji mającej na celu zminimalizowanie liczby komunikatów protokołu. Minimalizuje to też konieczność wywoływania metod zewnętrznych podczas korzystania z powiązań Kotlin.
- Uniwersalna obsługa: kod shadera WebGPU (WGSL) można bezpośrednio udostępniać w implementacjach WebGPU na różnych platformach, w tym w internecie.
- Zoptymalizowane obliczenia: bezproblemowe udostępnianie bufora bez kopiowania między zadaniami obliczeniowymi a graficznymi zwiększa wydajność i upraszcza programowanie w porównaniu ze starszymi interfejsami API.
Dla kogo jest przeznaczona ta biblioteka
Ta biblioteka jest przeznaczona do tworzenia aplikacji o wysokiej wydajności, które wymagają bezpośredniego dostępu do procesora graficznego:
- Filtry przetwarzania obrazów i filmów
- Wizualizacje danych
- Wnioskowanie w uczeniu maszynowym
- Gry i symulacje
Cele, których nie chcemy osiągnąć: to interfejs API grafiki, a nie silnik gry. Odpowiadasz za zarządzanie własną pętlą renderowania, macierzami kamery i grafem sceny.
Podstawowe pojęcia związane z WebGPU
Zrozumienie podstawowych obiektów WebGPU i sposobu ich interakcji jest niezbędne do tworzenia aplikacji w WebGPU.
Koncepcja |
Opis |
Instancja |
Punkt wejścia do WebGPU, który zapewnia dostęp do adapterów i powierzchni. |
Ładowarka |
Reprezentuje konkretny procesor graficzny na urządzeniu. |
Urządzenie |
Połączenie logiczne z procesorem GPU, na którym tworzone są zasoby. |
Kolejka |
Mechanizm używany do przesyłania poleceń do procesora GPU |
Shader Module |
kod GPU napisany w języku cieniowania WebGPU (WGSL); |
Pipelines |
Obiekty opisujące cały stan procesora graficznego (shadery, mieszanie) dla zadania |
Grupy powiązań |
Powiązanie buforów danych (np. tekstur) z shaderami |
Koder poleceń |
Obiekt służący do tworzenia sekwencji poleceń GPU w buforze poleceń. |