从WebGL迁移到WebGPU

迁移到即将推出的 WebGPU 不仅仅意味着切换图形 API。这也是迈向 Web 图形未来的一步。但如果做好准备并理解,迁移将会更加顺利 — 本文将帮助您做好准备。

在本文中,我们将讨论 WebGL 和即将推出的 WebGPU 之间的区别,并阐述如何为项目迁移做好准备。

WebGL 和 WebGPU 的时间线

WebGL 与许多其他 Web 技术一样,其历史可以追溯到很久以前。要了解转向 WebGPU 背后的动态和动机,首先快速回顾一下 WebGL 开发的历史会有所帮助:

  • OpenGL 桌面版(1993 年) OpenGL 桌面版首次亮相。
  • WebGL 1.0(2011):这是 WebGL 的第一个稳定版本,基于 2007 年推出的 OpenGL ES 2.0。它为 Web 开发人员提供了直接在浏览器中使用 3D 图形的能力,而无需额外的插件。
  • WebGL 2.0(2017 年):WebGL 2.0 在第一版发布六年后推出,基于 OpenGL ES 3.0(2012 年)。此版本带来了许多改进和新功能,使 Web 上的 3D 图形更加强大。

近年来,人们对新的图形 API 的兴趣日益浓厚,这些 API 可以为开发人员提供更多的控制力和灵活性:

  • Vulkan(2016 年):由 Khronos 集团创建的跨平台 API 是 OpenGL 的“后继者”。Vulkan 提供对图形硬件资源的低级访问,让高性能应用程序能够更好地控制图形硬件。
  • D3D12(2015):此 API 由 Microsoft 创建,专用于 Windows 和 Xbox。D3D12 是 D3D10/11 的后继者,为开发人员提供了对图形资源的更深层次的控制。
  • Metal(2014):由 Apple 创建,是 Apple 设备的专属 API。其设计初衷是实现 Apple 硬件的最大性能。

WebGPU 的现状以及未来发展

如今,从 113 版本开始,WebGPU 可通过 Google Chrome 和 Microsoft Edge 浏览器在 Windows、Mac 和 ChromeOS 等多个平台上使用。预计在不久的将来会支持 Linux 和 Android。

以下是一些已经支持(或提供实验性支持)WebGPU 的引擎:

  • Babylon JS:全面支持 WebGPU。
  • ThreeJS:目前正在实验性支持。
  • PlayCanvas:正在开发中,但前景非常光明。
  • Unity:在 2023.2 alpha 版本中宣布了非常早期且实验性的 WebGPU 支持。
  • Cocos Creator 3.6.2:正式支持 WebGPU,成为该领域的先驱之一。
  • Construct:目前仅支持 Windows、macOS 和 ChromeOS 的 v113+ 版本。

考虑到这一点,过渡到 WebGPU 或至少为这种过渡准备项目似乎是近期及时的一步。

高层概念差异

让我们缩小范围,看看 WebGL 和 WebGPU 之间的一些高级概念差异,从初始化开始。

初始化

开始使用图形 API 时,第一步是初始化交互的主要对象。此过程在 WebGL 和 WebGPU 之间有所不同,两个系统都有一些特殊之处。

WebGL:上下文模型

在 WebGL 中,此对象称为“上下文”,它本质上表示在 HTML5 Canvas 元素上绘图的界面。获取此上下文非常简单:

const gl = canvas.getContext('webgl');

WebGL 的上下文实际上是与特定画布绑定的。这意味着如果您需要在多个画布上进行渲染,则需要多个上下文。

WebGPU:设备模型

WebGPU 引入了一个名为“设备”的新概念。此设备代表您将与之交互的 GPU 抽象。初始化过程比 WebGL 稍微复杂一些,但它提供了更大的灵活性:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉达曼迪斯II

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值