WebGPU是由W3C GPU for the Web社区组所发布的规范,目标是允许网页代码以高性能且安全可靠的方式访问GPU功能。谷歌在Chrome 113 Beta版本中已正式启用全新的WebGPU图形API,开发人员能够使用底层系统的GPU进行高性能计算并绘制可在浏览器中渲染的复杂图形。WebGPU还为现代GPU提供更好的兼容、支持更通用的GPU计算、更快的操作以及能够访问到更高级的GPU特性。
{背景}
1、WebGL的时代
在介绍WebGPU前,不得不提一下WebGL。WebGL是 OpenGL ES2.0 图形库的JavaScript端口,它允许web页面直接将渲染计算传递给设备的GPU,这会以非常高的速度处理,并在 内渲染结果。可以说,WebGL 在2011年左右首次出现后,在图形功能方面彻底改变了web。
2、WebGL的问题
虽然WebGL功能强大,但依旧存在一些问题,主要包括以下几个方面:
1.硬件兼容性:WebGL需要在支持OpenGL ES2.0的硬件下才能运行,而一些老旧的设备并不支持该标准。
2.WebGL完全基于绘制图形并将它们渲染到画布的用例。它并不能很好地处理通用GPU(GPGPU)的计算。GPGPU计算对于很多不同的用例显得越来越重要,例如那些基于机器学习的模型。
3.无论是在同时渲染的对象方面,还是新渲染特性的使用方面,3D图形应用程序的需求都在逐渐变高。
如今,源自上世纪90年代的OpenGL几乎已经被PC和智能手机抛弃,现在主流的图形API则是Direct12、Meta和Vulkan。在WebGL的时代里,Web环境的3D渲染和Native环境有着5年以上的差距,Web平台的图形渲染能力没有跟上现代硬件的发展,于是WebGPU走上了舞台。
{WebGPU的进步}
图片来源于网络
WebGPU解决了这些问题,其提供了与现代GPU API兼容的更新的通用架构,会让你感到更加丝滑。它支持图形渲染,同时对GPGPU计算也有一流的支持。在CPU端渲染单个对象的成本要低得多,并且它支持现代化的GPU渲染特性,例如,基于计算的粒子和用于后期处理的滤镜,如颜色效果、锐化和景深模拟。此外,它也可以直接在GPU上处理诸如剔除和骨骼动画模型等耗费大量计算资源的任务。
#高性能
WebGPU专为现代图形硬件设计,充分利用了GPU的并行计算能力。通过显式的资源管理、多线程渲染和低开销的API调用,WebGPU可以实现比WebGL更高的性能。
#低功耗
WebGPU支持自动功耗管理,可以根据设备的性能和功耗需求自动调整渲染质量。这使得WebGPU在移动设备和笔记本电脑上更加节能。
#易用性
WebGPU使用JavaScript和WebIDL作为编程接口,使得开发者可以使用熟悉的Web技术进行开发。此外,WebGPU还提供了一套统一的着色语言(WGSL),简化了跨平台开发的复杂性。
#安全性
WebGPU在设计时充分考虑了安全性,通过严格的资源验证和错误处理机制,确保了在浏览器环境中的安全运行。
#可扩展性
WebGPU支持可扩展的功能集,可以根据硬件和软件的发展逐步引入新的特性,确保API的长期可用性。
{WebGPU的未来}
从时间上来看,WebGPU的出现时间稍晚,但也正因如此,让WebGPU得以借助次时代图形API的经验,做出更好的设计。未来随着WebGPU标准在主流浏览器的逐步落地,其能力将给H5、小程序等的内容创作与性能表现带来更多可能,也一定会在Web平台出现不逊于原生app的图形渲染效果,同时基于Web端的优势给用户带来更轻量和便捷的体验。
文章作者:陶宏鋆
原文始发于微信公众号(EBCloud):下一代图形和计算API-WebGPU
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论