我们重视您的隐私。我们使用cookies来提升您在我们网站的体验。使用本网站即表示您同意我们的隐私政策.

前五大WebXR框架对比

前五大WebXR框架对比

想要开始WebXR开发吗?这里有前五大框架的对比以帮助你入门。

API简要概述 

2019年12月13日,Chrome 79成为首个默认启用WebXR 1.0的浏览器。这意味着克服WebXR最大障碍之一的第一步终于解决了:稳定性。在此之前,维护WebXR/WebVR/WebAR项目非常困难,因为它们所基于的浏览器API仍在不断变化:WebVR 1.0很快被WebVR 1.1取代,这虽然只是次要版本号的提升,但其变化足以打破用WebVR 1.0编写的任何应用。

在WebVR 1.1之后,出现了一系列无版本号的中间版本WebXR。要搞清楚你正在使用哪个版本非常困难,还需要申请Google Chrome Origin Trials令牌才能让用户运行你的应用,而无需切换实验性标志。

有了Chrome 79中的WebXR 1.0,这种麻烦终于结束,我们可以假设我们的应用在未来的Chrome版本中依然能够正常运行。这也意味着你终于可以启动你一直想做的项目了!今天,甚至连Apple Vision PRO也支持WebXR,这是一个很好的构建跨平台XR应用的机会。

但是应该使用哪个框架呢?

以下是我们认为适合的框架列表:

目录 

5 - Unity 3D 

Unity 3D与Unreal Engine一起,是目前最受欢迎的3D开发平台之一,支持HTML5作为目标平台,因此可以_理论上_用于WebXR开发。

不过,WebXR并不支持开箱即用:你需要一个插件,如De-Panther’s WebXR Exporter

虽然这不是最优方案,但如果Unity 3D增加了WebXR支持,你便可从中受益。然而在此之前,你还必须处理HTML5导出时的一些其他问题:低性能,长加载时间,以及对移动GPU(如智能手机、Meta Quest及其他独立头显)的不佳支持。

不过,你能够从Unity的资源和插件生态系统中获益,并可以将你的应用发布为原生应用!(不过今天的应用商店除非你名列前茅,否则几乎没有任何曝光,所以这个优势作用有限。)

Unity 3D 网站

4 - Babylon.js 

通过其“Playground”,这个框架提供了快速原型化任何3D应用程序的方法。Babylon.js已经支持WebXR,并且有大量示例可以渲染几乎任何内容。其灵活性来源于它是一个JavaScript库。Babylon允许你深入到非常底层,但要求你用JavaScript编写整个应用。

它主要面向有经验的开发者,因此我们建议,如果你有经验和/或需要高度定制化渲染,可以选择这个框架。

Babylon.js 网站

3 - Three.js 

可能是目前最受欢迎的开源JavaScript渲染库之一。再次强调,它提供了在非常低层次上的完全灵活性,使你可以定制渲染以实现任何想要的功能。强大的能力伴随着对应用性能维护的巨大责任,尤其是在移动VR设备上保持流畅。

Three.js已经支持WebXR!在WebXR广泛支持AR之前,你可能需要查看AR.jsmind-ar-js以获得WebAR支持。两者都与Three.js集成。

Three.js编辑器允许你轻松组合场景并从多种不同文件格式导入内容。这将使你快速启动项目,但你仍然需要用JavaScript编写交互代码。编辑器没有项目文件的概念,主要用于生成项目的初始代码。

如果你没有任何编码经验,我们建议你查看A-Frame,它基于Three.js构建,允许你以更简单的方式利用大量功能。

Three.js 网站

2 - PlayCanvas 

这个开发平台带有一个完整的可视化编辑器,并且支持AR和VR。它的3D图形渲染在设置正确的情况下效果很好。编辑器和导出游戏的加载时间也还算不错。

可视化编辑器使得组合场景、添加组件和部署项目变得非常简单。此外,内置代码编辑器允许你编写自定义脚本。如果你更喜欢使用自己的代码编辑器,如Atom、Vim、Visual Studio Code等,编辑这些脚本可能会有些不便,但你可以通过其REST API实现。

PlayCanvas 网站

1 - A-Frame 

在过去几年中,A-Frame一直是简便进行WebVR和WebAR开发的首选之路。基于Three.js构建,你始终可以在需要时深入底层进行自定义,并重用大量现有组件。

A-Frame允许你通过HTML设置场景,它会生成一个3D场景层次结构。你可以创建自定义JavaScript组件以修改行为和交互,而“A-Frame Inspector”可以让你轻松编辑场景并查看从HTML生成的内容。一些大型VR浏览器游戏如Barista Express和Moonrider就是基于A-Frame开发的。

由于它在Three.js之上运行,A-Frame也已经支持WebXR。WebAR的支持同样通过AR.js实现。A-Frame将优化资产进而减少加载时间的任务留给你。对于简单的使用情况,A-Frame非常合适,并能带你走得很远。

不过,对于大型项目,你可能会遇到A-Frame性能的瓶颈限制。

A-Frame 网站

总结 | TL;DR 

框架的选择将取决于你的使用场景。对于简单场景,我们推荐A-Frame。如果需要更高的性能,则可以深入Three.js进行直接优化。如果你不擅长编程,可以尝试PlayCanvas。它似乎是实现炫丽图形的最简单方法(但对于Web上的VR,请优先考虑性能而非外观)。

Wonderland Engine 

仍然没有找到合适的选择?你可能会对我们正在开发的Wonderland Engine感兴趣。

我们了解市面上的所有框架,并从头打造了Wonderland Engine,旨在成为最佳的3D网页框架和WebXR游戏引擎,避免其他框架中的所有缺陷。如今,最大的WebXR应用程序(The Escape ArtistArchery Evolution等)都是使用Wonderland Engine构建的。

Wonderland Engine是一个离线工具,可以生成高效的二进制场景文件,并加载一个基于WebAssembly的运行时。

在受益于我们优化的渲染性能的同时,你可以使用我们的JavaScript/TypeScript API实现交互代码。许多可重用组件已经为你编写,方便处理VR、AR、音频等。

是的,我们支持WebXR,该引擎自设计之初便是为了它而构建的。

下载页面下载Wonderland Engine,并在此处注册免费账户

Last Update: April 27, 2025

保持更新。