WebGPU 会取代 WebGL 吗?
前言
你知道WebGL
并使用过吗?如果没有,那你也一定使用Three.js
。在本文,我将向你介绍一下WebGL
和其后起之秀 WebGPU
。
什么是 WebGL ?
WebGL 的起源
说起WebGL
的起源,就不得不提起OpenGL
。
在个人计算机的早期,使用最广泛的3D
图形渲染技术是Direct3D
和OpenGL
。Direct3D
是微软DirectX
技术的一部分,并主要用于Windows
平台。而OpenGL
是一种开源的跨平台技术,并赢得了众多开发者的青睐。
然后,就是一个特殊的版本 - OpenGL ES。它专门为嵌入式计算机,智能手机,家用游戏机和其他设备而设计。他从OpenGL
中移除了很多旧的和无用的特性,并为其添加了一些新的特性。例如,去除了矩形等多余的多边形,而只保留了点、线、三角形等基本图形。这使它在保持轻量级的同时仍然保留足够强大的能力来渲染漂亮的3D
图形。
最后,WebGL
就是从OpenGL ES
衍生而来的。它专注于web
的3D
图形渲染。
下图显示了它们之间的关系:
WebGL 的历史
从上图可以看出,WebGL
已经很老了。不仅仅是因为它的存在时间长,还有它的标准是继承自OpenGL
的。
而OpenGL
的设计理念可以追溯到1992
年,这些古老的概念已经和如今GPU
的工作原理不相符合了。
对于浏览器开发者来说,适配不同GPU
的特性,给他们带来了诸多不便。
从上图中我们可以看到苹果在2014
年发布了Metal
。而Steve Jobs
是OpenGL ES
的忠实支持者,他认为这是行业的未来,所以当时Apple
设备上的游戏依然依赖于OpenGL ES
(例如愤怒的小鸟,水果忍者)。但在Steve Jobs
去世后,苹果放弃了OpenGL ES
,开发了新的图形框架Metal
。
微软也在2015
年发布了自己的D3D12
[Direct3D 12]图形框架。紧随其后的是Khronos Group
。
Khronos Group
是图形行业的一个国际组织,类似于前端圈的W3C
和TC39
。它的标准是WebGL
。甚至他们也逐渐淡化了WebGL
,转而支持现在的Vulkan
。
到此为止,Metal
、D3D12
[Direct3D 12] 和Vulkan
并列为三大现代图形框架。这些框架充分释放了GPU
的可编程能力,让开发者可以最大程度地自由控制GPU
。
另外,今天的主流操作系统不再将OpenGL
作为主要支持。这意味着我们今天编写的每一行WebGL
代码90%
的不会被OpenGL
绘制。在Windows
计算机上将使用DirectX
绘制,而在Mac
计算机上则使用Metal
绘制。
从这些可以看出OpenGL
已经很老了。但这并不意味着它会消失。它继续会在嵌入式和科学研究等特殊领域发挥作用。
而WebGL
也是如此,大量的适配工作使其难以向前推进。于是推出了WebGPU
。
什么是 WebGPU?
WebGPU
的目标是提供现代3D
图形和计算能力。它是由W3C
组织(前端的老朋友)制定的标准。与WebGL
不同,WebGPU
不是OpenGL
的包装。并且恰恰相反,它指的是当前的图形渲染技术,一种新的跨平台高性能图形界面。
它的设计更容易被三大图形框架实现,从而减轻了浏览器开发者的负担。它也是一个精确的图形API
,完全开放了整个显卡的能力。而不再是像WebGL
这样的上层API
。
更具体的优点有:
- 减少了
CPU
开销 - 对多线程的良好支持
- 使用计算着色器将通用计算 (GPGPU) 的强大功能引入
Web
- 全新的着色器语言 - WebGPU Shading Language (WGSL)
- 未来将支持 实时光线追踪 的技术
WebGPU 的发展现状
目前,WebGPU
的API
仍在开发迭代中,但我们可以在Chrome Canary
中试用
在目前的前端框架中,Three.js
已经开始实现WebGPU
的后端渲染器,Babylon.js
计划在5.x
版本中支持 WebGPU
。
结论
我认为WebGPU
取代WebGL
是大势所趋。而且我相信它在元宇宙场景中有很大的潜力。
你如何看待WebGL
?你看好WebGPU
吗?
作者:Ylimhs
链接:https://juejin.cn/news/7103527513875447845
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。