webGPU主要功能:使得浏览器能够访问更多的GPU显卡底层功能,同时增强基于网页端的本地AI加速性能
一、Web3D渲染发展
- 最早时期:浏览器必须使用Flash插件实现3D渲染
- H5时期:通过Canvas组件实现一些动画效果
- WebGL时期:利用浏览器哪盒对OpenGL打包封装,利用web环境调用底层图形学能力
- WebGPU时期:和WebGL一样,是对原生图形API:DX12、Vulkan、Metal的打包,在浏览器里直接调用,实现高质量渲染
二、WebGPU性能提升
- WebGL渲染过程:数据转化为图像后传至GPU,并通过
getPixelsData方法同步读取从而获得canvas上的一组像素并进行渲染 - WebGPU渲染过程:数据作为缓存传至GPU,GPU异步计算并重新转化为缓存进行渲染
WebGPU相较于WebGL无需再将数据转为图像传至GPU,而是通过缓存,性能得到显著提升;计算是异步执行的,不再阻塞JS主进程;不需要创建canvas进行渲染
WebGPU计算着色器比使用像素着色器的WebGL计算速度快 3.5 倍,同时在处理大量数据量方面表现的更强,且它阻塞主线程
WebGPU强大的性能使得浏览器能够实现视频与音频编辑工作,实时物理模拟器以及展示更逼真的视觉效果
三、兼容性
3.1操作系统
支持在所有主流操作系统上进行GPU计算
- Vulkan:Windows7/8,Linux,Chrome OS,Android,Android WebView
- Metal:Mac,iOS
- Direct3D 12:Windows10/11
3.2浏览器方面
目前正式版的Chrome已经更新为113版本且已经支持WebGPU
3.3electron版本方面
目前正式版的electron(v24.2.0)还没有支持WebGPU,但是Beta版本的electron(v25.0.0)已经支持WebGPU