Через додаткову перевірку, яку WebGL потребує для забезпечення веб-безпеки, відомо, що накладні витрати на ЦП під час роботи програм WebGL вищі порівняно з власними програмами OpenGL.
Існує ряд найкращих практик, яких можна дотримуватися, щоб оптимізувати продуктивність ігор WebGL.
- Малювати дзвінки. …
- Інстансування. …
- Зміни текстури. …
- Інструменти профілювання. …
- requestAnimationFrame. …
- Мініфікатор коду. …
- Бути в курсі подій. …
- Висновок.
Графік WebGL отримує переваги від виконання матриць перетворень (наприклад, масштабування) на GPU, тоді як 2D Canvas зобов’язаний виконувати це на ЦП, тому продуктивність значно знижується зі збільшенням кількості точок даних.
Щоб відповісти, це не вузьке місце мови, а використання api-версії. WebGL базується на OpenGL ES, який має деякі плюси, але також працює трохи повільніше і він має більше рівнів абстракції для обробки коду, ніж чистий OpenGL, і це є причиною зниження продуктивності – більше коду потрібно оцінити.
WebGL™ — це міжплатформний, безкоштовний відкритий веб-стандарт для низькорівневого API 3D-графіки на основі OpenGL ES, доступний для ECMAScript через елемент HTML5 Canvas.
Перевірте статус WebGL Якщо вказано «Апаратне прискорення», це означає, що на графічній карті запущено WebGL. Якщо статус не «Апаратне прискорення», то список «Виявлені проблеми» (під списком «Стан графічної функції») може пояснити, чому апаратне прискорення недоступне.