کتابخانه WebGPU در Android Jetpack اتصالهای اصطلاحی Kotlin را برای استاندارد WebGPU ارائه میدهد و قابلیتهای محاسباتی و گرافیک سهبعدی مدرن و با عملکرد بالا را در برنامههای Android شما فعال میکند.
WebGPU جانشین WebGL و نسل بعدی OpenGL است که از ابتدا ساخته شده است تا نحوه عملکرد واحدهای پردازش گرافیکی مدرن را منعکس کند و قابلیتهای واحد پردازش گرافیکی را بهصورت چندسکویی، ایمن، و ارگونومیک ارائه دهد.
چرا WebGPU؟
- قابلیت استفاده ساده: Vulkan میانای برنامهسازی کاربردی گرافیک سطح پایین اصلی در Android است. WebGPU میانای برنامهسازی کاربردی مدرن و سطح بالاتری ارائه میدهد که درمقایسه با Vulkan، دردسترستر است و استفاده از آن بهطور قابلتوجهی به کدنویسی کمتری نیاز دارد.
- دستهبندی و سریالسازی WebGPU چندین فرمان را در بافرهای فرمان ثبت میکند که بخشی از طراحی آن برای بهحداقل رساندن پرحرفی پروتکل است. این کار همچنین نیاز به فراخوانی روشهای خارجی را هنگام استفاده از اتصالهای Kotlin به حداقل میرساند.
- پشتیبانی جهانی: کد سایهزن WebGPU (WGSL) را میتوان مستقیماً در پیادهسازیهای WebGPU در پلاتفرمهای مختلف، ازجمله وب، همرسانی کرد.
- محاسبه بهینهشده: همرسانی میانگیر یکپارچه و بدون کپی بین محاسبه و تکالیف گرافیکی عملکرد را بهبود میبخشد و توسعه را درمقایسه با میاناهای برنامهسازی کاربردی قدیمی ساده میکند.
این کتابخانه برای چه کسانی است
این کتابخانه برای ساختن برنامههای با عملکرد بالا طراحی شده است که به دسترسی مستقیم به GPU نیاز دارند:
- فیلترهای پردازش تصویر و ویدیو
- مصورسازی دادهها
- استنتاج یادگیری ماشین
- بازیها و شبیهسازیها
غیرهدف: این یک میانای برنامهسازی کاربردی گرافیکی است، نه موتور بازی. شما مسئول مدیریت حلقه پردازش، ماتریسهای دوربین، و نمودار صحنه خودتان هستید.
مفاهیم اصلی WebGPU
درک اشیای بنیادی WebGPU و نحوه تعامل آنها برای توسعه WebGPU ضروری است.
مفهوم |
شرح |
نمونه |
نقطه ورودی به WebGPU، اعطای دسترسی به آداپتورها و سطوح |
آداپتور |
نشاندهنده GPU خاصی در دستگاه است |
دستگاه |
اتصال منطقی شما به GPU که منابع در آن ایجاد میشود |
صف |
سازوکار مورداستفاده برای ارسال فرمانها به GPU |
Shader Module |
کد GPU شما، نوشتهشده به زبان سایهزنی WebGPU (WGSL) |
خطوط لوله |
اشیاء توصیفکننده کل وضعیت GPU (سایهزنها، ترکیب) برای یک تکلیف |
گروههای Bind |
میانگیرهای داده (مثلاً بافتها) را به سایهزنها متصل میکند |
کدبند فرمان |
شیئی که برای ساختن توالی فرمانهای GPU در میانگیر فرمان استفاده میشود |