WebXR 开发

空间 Web 应用的组成部分 

XR/空间应用程序是一组文件,通常通过网络服务器提供。 网络浏览器可以解释这些文件并运行 Web 应用程序。

常见文件 

下面列出了需要了解的重要文件和文件扩展名:

扩展名描述
index.html空间 Web 应用的主 HTML 页面。
.js包含 JavaScript 代码。
.ts包含 TypeScript 代码,在发布空间 Web 应用之前转换为 .js。
.wasmWebAssembly(从 C++ 或 Rust 等语言编译而来)。
.glb3D 模型文件格式,可能还嵌入了纹理。
.gltf基于文本的 3D 模型文件格式。
.bin通常由 .gltf 引用,包含二进制 3D 模型数据。
.obj一个较简单的基于文本的模型文件格式。
.mtl一个材质文件,通常由 .obj 文件引用。
.json应用程序使用的任意数据。
.css“层叠样式表”,用于调整 HTML 元素的外观。

此外,空间 Web 应用还会使用音频文件(.mp3, .wav, .ogg, …)、图像文件(.webp, .png, .jpg)以及有时的视频文件(.webm, .mp4, .mov)。

3D 模型 

VR 和 AR 应用可以是从完全沉浸式环境到简单浮动 UI 面板的任何事物。 在大多数情况下,至少需要一些 3D 模型(在应用中使用时也称为“资产”)。

平台 

许多免费和付费的资产可以在 Sketchfab, TurboSquiditch.io 等平台找到。

有一些完全免费的 3D 模型来源,如 Quaternius, Kenney.nlPoly Haven

你也可以经常使用 Unity 或 Unreal Engine 的资产包。

3D 扫描 

将真实物体的照片转换为 3D 模型的过程称为“摄影测量”或 3D 扫描。

类似 RealityScan 的智能手机应用或像 Reality Capture 的软件可以帮助你将真实世界的模型带入你的空间 Web 应用。

创建 

手动创建 3D 模型可能是一项耗时的任务。3D 建模师使用诸如 BlenderMaya 之类的软件来根据您的需求定制 3D 模型。

如果 3D 建模不适合你,你可以在 ArtStation 上找到 3D 艺术家进行雇佣。

优化 

空间 Web 应用的所有资产都是通过网络传输的。这会影响加载时间,因此重要的是资产需要被压缩和优化。

代码 

空间 Web 应用的代码可以用 TypeScript, JavaScript, C++, Rust 和许多其他语言编写。 JavaScript 直接执行,而其他语言如 C++ 则编译为 WebAssembly。

代码在空间 Web 应用中有许多职责:

  • 渲染: 创建展示在智能手机或 VR 设备上的图像。计算机图形是计算机科学的一个复杂领域。 为了管理它,WebXR 开发人员使用渲染框架来为他们处理常见任务。
  • 加载资产: 在需要时加载任何 3D 模型、纹理、音频、视频和其他数据。 框架通常提供从不同 3D 文件格式读取数据的功能,而在网络上,浏览器可以为你处理图像和音频文件格式的加载。
  • 用户交互: 响应用户输入,提供反馈并根据用户的操作应用响应动作。
  • 应用逻辑: 应用程序旨在执行的计算、处理和数据交互,从查询数据库到生成数据。

库、框架和 3D 引擎如 Wonderland Engine 帮助处理所有这些任务,并提供常用的功能以提高空间 Web 开发人员的开发效率。

网络服务 

应用程序可能会与在线服务进行交互,以处理账户、存储个人信息、查询大型数据库、流媒体等多种功能。