WebXR 开发
空间 Web 应用的组成部分
XR/空间应用程序是一组文件,通常通过网络服务器提供。 网络浏览器可以解释这些文件并运行 Web 应用程序。
常见文件
下面列出了需要了解的重要文件和文件扩展名:
扩展名 | 描述 |
---|---|
index.html | 空间 Web 应用的主 HTML 页面。 |
.js | 包含 JavaScript 代码。 |
.ts | 包含 TypeScript 代码,在发布空间 Web 应用之前转换为 .js。 |
.wasm | WebAssembly(从 C++ 或 Rust 等语言编译而来)。 |
.glb | 3D 模型文件格式,可能还嵌入了纹理。 |
.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, TurboSquid 和 itch.io 等平台找到。
有一些完全免费的 3D 模型来源,如 Quaternius, Kenney.nl 和 Poly Haven。
你也可以经常使用 Unity 或 Unreal Engine 的资产包。
3D 扫描
将真实物体的照片转换为 3D 模型的过程称为“摄影测量”或 3D 扫描。
类似 RealityScan 的智能手机应用或像 Reality Capture 的软件可以帮助你将真实世界的模型带入你的空间 Web 应用。
创建
手动创建 3D 模型可能是一项耗时的任务。3D 建模师使用诸如 Blender 或 Maya 之类的软件来根据您的需求定制 3D 模型。
如果 3D 建模不适合你,你可以在 ArtStation 上找到 3D 艺术家进行雇佣。
优化
空间 Web 应用的所有资产都是通过网络传输的。这会影响加载时间,因此重要的是资产需要被压缩和优化。
代码
空间 Web 应用的代码可以用 TypeScript, JavaScript, C++, Rust 和许多其他语言编写。 JavaScript 直接执行,而其他语言如 C++ 则编译为 WebAssembly。
代码在空间 Web 应用中有许多职责:
- 渲染: 创建展示在智能手机或 VR 设备上的图像。计算机图形是计算机科学的一个复杂领域。 为了管理它,WebXR 开发人员使用渲染框架来为他们处理常见任务。
- 加载资产: 在需要时加载任何 3D 模型、纹理、音频、视频和其他数据。 框架通常提供从不同 3D 文件格式读取数据的功能,而在网络上,浏览器可以为你处理图像和音频文件格式的加载。
- 用户交互: 响应用户输入,提供反馈并根据用户的操作应用响应动作。
- 应用逻辑: 应用程序旨在执行的计算、处理和数据交互,从查询数据库到生成数据。
库、框架和 3D 引擎如 Wonderland Engine 帮助处理所有这些任务,并提供常用的功能以提高空间 Web 开发人员的开发效率。
网络服务
应用程序可能会与在线服务进行交互,以处理账户、存储个人信息、查询大型数据库、流媒体等多种功能。