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)删除。
(0)
用户投稿
上一篇 2022年7月3日
下一篇 2022年7月3日

相关推荐

  • 精辟人生哲理句子精选

    1、人生不是靠心情活着,而要靠心态去生活。调整心态看生活,处处都是阳光。 2、真正的强大是宽容的,不是原谅别人,而是放过自己。 3、在选择的时候,一定要清楚自己的支付能力。不同的选…

    2022年8月18日
  • 学李隼主动让贤?秦志戬固执让刘国梁为难,刘国正二度回归有难度

    刘国正还有回归的希望!为了更好的备战世乒赛,国乒青年教练员陈玘又一次回到国乒教练组,只不过从公开的消息来看,只有短短一个月的时间,之后陈玘将会返回江苏省队继续任职,继续培养年轻球员…

    2022年8月21日
  • 如何开拼多多网店(拼多多无货源开店流程)

    无货源一件代发这个概念,只要做网店的朋友应该不陌生。现在无货源开店应该也是不少卖家们想要选择的模式,而且在不少电商平台上面都有这种模式,一些拼多多卖家也想要尝试无货源开店,具体应该…

    2022年4月11日
  • 数据安全公司Fortanix完成C轮融资,一种新的企业数据安全方法

    近日,数据安全公司Fortanix宣布完成9000万美元C轮融资,由高盛资产管理公司(Goldman Sachs)旗下的成长股权业务领投。新投资者GianLeap Capital以…

    2022年9月23日
  • 跨越科技成果转化“最后一公里”

    作者:姜文宁(上海交通大学安泰经济与管理学院党委书记、上海市知识竞争力与区域发展研究中心研究员) 经过改革开放的快速发展,中国的综合国力大大提高。与此同时,传统上依靠要素驱动的粗放…

    2022年6月17日
  • 为什么会社恐?

    当你看到人的时候是不是会感觉到焦急顾虑?是不是想逃避与其交往?是不是不知道说什么?是不是怕别人生气?是不是怕起冲突?是不是怕自己哪里做的不够好,怕犯错误?是不是想用讨好别人的方式获…

    2022年5月6日
  • 数码资讯:p50发布新壳,iQOO10 Pro充满只要12分钟,穿戴第一华为

    关注馒头看每天数码 资讯 1、华为P50 Pocket新配色素皮版将于7月4日和华为nova10一起发布,素皮版上下折叠手机有一种钱包的感觉,大家觉得这个新配色怎么样 ?#数码快讯…

    2022年6月27日
  • 城乡居民养老保险怎么领取养老金,什么时候领取?

    城乡居民养老保险怎么领取养老金,什么时候领取?我国的城乡居民养老保险制度,是根据国发(2014)8号文件精神,即《国务院关于建立统一的城乡居民基本养老保险制度的意见》精神,建立和发…

    2022年4月18日
  • 淘宝直播新人主播流量扶持是一个月吗(淘宝直播前十名主播)

    直播卖货已经是电商行业的引流新渠道,而作为目前直播卖货的主要平台之一,很多人都会开通淘宝直播,在淘宝上有很多主播其实是新手,对于直播的一些技巧和方法可能不太清楚,那么淘宝直播新人主…

    2022年10月26日
  • 选大学和选专业,究竟哪一个更重要?

    按题目分析,面临的是2个选择: 1 好大学的一般专业 2 一般大学的好专业 这两个是平分秋色的选择,各有优势,但若一定要选择,我会选择1 好大学的一般专业。原因如下: 1 从宏观角…

    2022年6月29日

联系我们

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