注册

WebGPU 会取代 WebGL 吗?

前言


你知道WebGL并使用过吗?如果没有,那你也一定使用Three.js。在本文,我将向你介绍一下WebGL和其后起之秀 WebGPU


什么是 WebGL ?


WebGL 的起源


说起WebGL的起源,就不得不提起OpenGL


在个人计算机的早期,使用最广泛的3D图形渲染技术是Direct3DOpenGLDirect3D是微软DirectX技术的一部分,并主要用于Windows平台。而OpenGL是一种开源的跨平台技术,并赢得了众多开发者的青睐。


然后,就是一个特殊的版本 - OpenGL ES。它专门为嵌入式计算机,智能手机,家用游戏机和其他设备而设计。他从OpenGL中移除了很多旧的和无用的特性,并为其添加了一些新的特性。例如,去除了矩形等多余的多边形,而只保留了点、线、三角形等基本图形。这使它在保持轻量级的同时仍然保留足够强大的能力来渲染漂亮的3D图形。


最后,WebGL就是从OpenGL ES衍生而来的。它专注于web3D图形渲染。


下图显示了它们之间的关系:


image.png


WebGL 的历史


image.png


从上图可以看出,WebGL已经很老了。不仅仅是因为它的存在时间长,还有它的标准是继承自OpenGL的。
OpenGL的设计理念可以追溯到1992年,这些古老的概念已经和如今GPU的工作原理不相符合了。


对于浏览器开发者来说,适配不同GPU的特性,给他们带来了诸多不便。


从上图中我们可以看到苹果在2014年发布了Metal。而Steve JobsOpenGL ES的忠实支持者,他认为这是行业的未来,所以当时Apple设备上的游戏依然依赖于OpenGL ES(例如愤怒的小鸟,水果忍者)。但在Steve Jobs去世后,苹果放弃了OpenGL ES,开发了新的图形框架Metal


微软也在2015年发布了自己的D3D12[Direct3D 12]图形框架。紧随其后的是Khronos Group


image.png


Khronos Group是图形行业的一个国际组织,类似于前端圈的W3CTC39。它的标准是WebGL。甚至他们也逐渐淡化了WebGL,转而支持现在的Vulkan


到此为止,MetalD3D12 [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)
  • 未来将支持 实时光线追踪 的技术

image.png


WebGPU 的发展现状


目前,WebGPUAPI仍在开发迭代中,但我们可以在Chrome Canary中试用


image.png


在目前的前端框架中,Three.js 已经开始实现WebGPU的后端渲染器,Babylon.js计划在5.x版本中支持 WebGPU


结论


我认为WebGPU取代WebGL是大势所趋。而且我相信它在元宇宙场景中有很大的潜力。


你如何看待WebGL?你看好WebGPU吗?


作者:Ylimhs
链接:https://juejin.cn/news/7103527513875447845
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0 个评论

要回复文章请先登录注册