Library WebGPU Android Jetpack menyediakan binding Kotlin idiomatis untuk standar WebGPU, sehingga memungkinkan grafis 3D dan kemampuan komputasi modern berperforma tinggi dalam aplikasi Android Anda.
WebGPU adalah penerus WebGL dan keturunan spiritual OpenGL, yang dibangun dari awal untuk mencerminkan cara kerja GPU modern dan mengekspos kemampuan GPU dengan cara lintas platform, aman, dan ergonomis.
Mengapa WebGPU?
- Kegunaan yang Disederhanakan: Meskipun Vulkan adalah API grafis tingkat rendah utama di Android. WebGPU menawarkan API tingkat tinggi yang modern dan lebih mudah didekati dan jauh lebih tidak bertele-tele untuk digunakan dibandingkan dengan Vulkan.
- Batching dan Serialisasi WebGPU merekam beberapa perintah ke dalam Buffer Perintah, yang merupakan bagian dari desainnya untuk meminimalkan interaksi protokol. Hal ini juga meminimalkan kebutuhan untuk memanggil metode eksternal saat menggunakan binding Kotlin.
- Dukungan Universal: Kode shader WebGPU (WGSL) dapat langsung dibagikan di seluruh implementasi WebGPU di berbagai platform, termasuk web.
- Compute yang Dioptimalkan: Berbagi buffer yang lancar dan bebas salinan antara tugas komputasi dan grafis meningkatkan performa dan menyederhanakan pengembangan dibandingkan dengan API lama.
Target pengguna pustaka ini
Library ini didesain untuk membuat aplikasi berperforma tinggi yang memerlukan akses langsung ke GPU:
- Filter pemrosesan gambar dan video
- Visualisasi data
- Inferensi Machine Learning
- Game dan simulasi
Non-Tujuan: Ini adalah API grafis, bukan game engine. Anda bertanggung jawab untuk mengelola loop render, matriks kamera, dan grafik adegan Anda sendiri.
Konsep inti WebGPU
Memahami objek WebGPU dasar dan cara interaksinya sangat penting untuk pengembangan WebGPU.
Konsep |
Deskripsi |
Instance |
Titik entri ke WebGPU, yang memberikan akses ke Adapter dan Surface |
Adaptor |
Mewakili GPU tertentu di perangkat |
Perangkat |
Koneksi logis Anda ke GPU tempat resource dibuat |
Antrean |
Mekanisme yang digunakan untuk mengirimkan perintah ke GPU |
Shader Module |
Kode GPU Anda, yang ditulis dalam WebGPU Shading Language (WGSL) |
Pipelines |
Objek yang menjelaskan seluruh status GPU (shader, blending) untuk suatu tugas |
Bind Group |
Mengikat buffer data (misalnya: tekstur) ke shader |
Command Encoder |
Objek yang digunakan untuk membuat urutan perintah GPU ke dalam buffer perintah |