WebGL vs. WebGPU

WebGL vs. WebGPU

你可能使用过 WebGL,如果没有,那么一定使用过 Three.js,不是吗?本文将向你介绍 WebGL 和后起之秀 WebGPU。

1、WebGL 的起源

说起起源,就不得不说OpenGL。

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

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

而 WebGL 是从 OpenGL ES 衍生而来的。它专注于 Web 的 3D 图形渲染。

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

2、WebGL 的历史

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

对于浏览器开发者来说,他们需要适应GPU的不同特性,这给他们带来了很多不便。虽然这些对于我们的上层开发者来说是不可见的。

从上图我们可以看到,苹果在 2014 年发布了 Metal。Steve Jobs 是 OpenGL ES 的支持者,他认为这是行业的未来。所以当时Apple设备上的游戏依赖于OpenGL ES。你玩过吗?

但在乔布斯去世后,苹果放弃了 OpenGL ES,开发了新的图形框架 Metal。

微软也在2015年发布了自己的D3D12[Direct3D 12]图形框架。紧随其后的是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。

3、什么是 WebGPU?

WebGPU 的目的是提供现代 3D 图形和计算能力。它是前端的老朋友W3C组织制定的标准。与 WebGL 不同,WebGPU 不是 OpenGL 的包装器。相反,它指的是当前的图形渲染技术,一种新的跨平台高性能图形界面。

它的设计更容易被三大图形框架实现,减轻了浏览器开发者的负担。它是一个精确的图形API,完全开放了整个显卡的能力。不再是像 WebGL 这样的上层 API。

更具体的优点如下:

  • 减少 CPU 开销
  • 对多线程的良好支持
  • 使用计算着色器将通用计算 (GPGPU) 的强大功能引入 Web
  • 全新的着色器语言——WebGPU Shading Language (WGSL)
  • 未来将支持“实时光线追踪”的技术

这里我挑出多线程支持来详细说一下:

在 WebGL 中,你可以使用 OffscreenCanvas 进行多线程处理,但 Safari 尚不支持此功能。而且它的操作也很有限,你必须将整个 Canvas 的所有操作都转移到单个 Worker 上。

webGPU 上下文可以由多个工作人员共享。这些worker只要在时间线上没有互斥操作,都可以正常运行。这无疑带 来了良好的开发体验。

这是因为 WebGL 全局状态的设置。它在设置状态后立即执行,这使得 WebGL 无法支持多线程。

而WebGPU用来Pipeline Object设置渲染管线中的相关信息。它分为两个阶段:“记录命令”和“提交命令”。

“记录命令”是一个纯 CPU 进程。可以分别记录在多个worker(多线程)中,然后提交到同一个队列中。

“提交命令”就是让GPU根据队列中的命令顺序执行。

4、WebGPU的发展现状

WebGPU 的 API 仍在开发迭代中,但我们可以在 Chrome Canary 中试用。

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

5、结束语

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


原文链接:http://www.bimant.com/blog/webgpu-is-webgl-killer/

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
用户投稿
上一篇 2022年7月3日 22:03
下一篇 2022年7月3日 22:03

相关推荐

  • ios手游模拟器(手游模拟器ios)

    本文主要讲的是ios手游模拟器,以及和手游模拟器ios相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 哪个iOS模拟器能多开手游账号?可以推荐个好用的模拟器给我吗…

    2022年11月27日
  • 我国首台130吨级重复使用液氧煤油补燃循环发动机试车成功

    新华社西安11月26日电记者26日从中国航天科技集团六院获悉,由该院自主研制的首台130吨级重复使用液氧煤油补燃循环发动机两次起动试车取得圆满成功。 该型发动机是瞄准我国新一代运载…

    2022年11月27日
  • 世界领先!我国已应用于新一代战机→

    本文转自【央视军事】; “3D打印技术在飞机上的应用 我们已达到规模化、工程化 处于世界领先位置” 如何运用3D打印设备 生产新一代战机的零部件? 规模化+工程化 3D打印件批量装…

    2022年11月27日
  • 短视频策划内容的3个要点(短视频策划内容怎么做)

    短视频在制作时,内容框架非常重要。如果直奔主题,然后结束,聚卓告诉你,这样的短视频已经过时了。现在的短视频需要框架的,但不是任何框架,它需要一种易于理解和消化的框架。而且,现在大多…

    2022年11月27日
  • cad连续标注快捷键(cad连续标注快捷键)

    本文主要讲的是cad连续标注快捷键,以及和cad连续标注快捷键相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 cad中连续标注快捷键 CAD尺寸标准快捷命令:DL…

    2022年11月27日
  • 怎么转行总结出成功转行的3个步骤

    01 前段时间,由麦可思研究院发布的《就业蓝皮书:2019年中国大学生就业报告》显示,2018大学毕业生半年内的离职率为33%,主动离职的主要原因是“个人发展空间不够”和“薪资福利…

    2022年11月26日
  • 开个内衣店利润有多大(新手开内衣店怎么开)

    想当老板的人,想去做一件事的人,想去提高能力的人,只要有了这个想法,他只要想行动,你拦都拦不住。 只不过说有些人会寻到正确的方法,不管是机缘巧合,还是漫无目的之后的巧遇,你不行动,…

    2022年11月26日
  • 游戏平台有哪些(游戏平台有哪些)

    简要回答 游戏平台指的是多人通过互联网在线游戏的平台,例如qq游戏,联众世界,浩方电竞平台,VS竞技游戏平台等,只要你下载平台,下载相关游戏,就能实现对战,摆脱了局域网的限制。 详…

    2022年11月25日
  • 个人怎么做抖音带货(个人做抖音带货能赚钱吗)

    抖音如今是大家很熟悉的短视频平台,不过现在的抖音却不只是短视频那么简单,它的功能非常丰富,其中一个就是可以带货,相信很多小伙伴都有在抖音上买过东西,抖音如今的变现能力也是不容小觑的…

    2022年11月25日
  • 英雄联盟暗裔传说11.24答案分享 暗裔传说第四天答案攻略

    英雄联盟手游能力者·叁-暗裔传说第四天答案是什么?暗裔传说11月24日是活动的第四天,今天的题目也更新了三个新问题,题目和答案小编已经分享在下面,大家直接通过攻略就可以了解到暗裔传…

    2022年11月25日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息