重构 Web:了解空间浏览器引擎(JSAR)

82 阅读3分钟

我们今天熟知的网页是建立在 DOM 上的。HTML、CSS 和 JavaScript 一起在一个平面矩形视口中创建界面。但如果我们把整个网页搬到 三维空间 中,会发生什么呢?

这正是 JSAR 空间浏览器引擎 所要解决的问题。JSAR 并不是在现有的传统浏览器上做补丁,而是从零开始重新设计浏览器,使其成为 空间优先浏览器引擎

👉 阅读原文文章: Understanding the Spatial Web Browser Engine | YODAOS JSAR

🌐 什么是空间 Web 浏览器?

Three.js 与 DOM 并存

空间浏览器不仅仅在 2D 窗口(平面)上渲染内容。它将 HTML、CSS、JS、WebGL/WebXR 和多媒体加载到三维坐标系中。

  • DOM 元素(文本、图像、表单、Canvas、视频等)在空间中作为三维对象存在,拥有位置、旋转、缩放和深度信息。
  • 用户可以通过空间输入进行交互,例如注视、手势和控制器。
  • 网页内容与 3D 模型可以无缝共存于同一空间中。

🏗 为什么不直接扩展现有浏览器?

传统浏览器引擎(Blink、Gecko、WebKit)是为二维渲染管线优化的。强行让它们处理三维场景会带来复杂性和低效问题。

JSAR 则从零开始设计新的架构,更符合沉浸式和空间体验的需求。


✨ JSAR 的关键特性

以下是引擎设计中的一些亮点:

  • 空间化 DOM → 元素带有三维变换(translate3drotatescale),使用真实世界单位(米,而不是像素)。
  • 统一渲染管线 → HTML UI 与 3D 模型共享渲染循环,并支持深度排序和混合处理。
  • 批量渲染优化 → DOM 元素作为纹理四边形进行渲染,通过实例化减少 draw call。
  • 自动空间音频 → <audio> 元素自动获得基于位置的声音效果,无需额外 Web Audio 设置。
  • 输入映射 → XR 输入源(注视、手势、控制器)直接映射为 DOM 事件(如 clickmousemove)。
  • 嵌入式集成 → 可作为库嵌入 Unity(Unreal 计划中),将网页内容作为本地 3D UI 组件渲染。

👩‍💻 谁会从中受益?

  • Web 开发者 → 无需重写 XR 框架,即可将现有 Web 应用搬入三维空间。
  • WebXR 开发者 → 使用 HTML/CSS 创建空间 UI,而不必构建复杂的 3D GUI 系统。
  • 桌面与工作流创新者 → 即便不在 XR 设备上,空间浏览器也支持无限 3D 画布,用于多任务操作和数据可视化。

🔮 展望未来

JSAR 仍在不断发展,目前支持 Unity + macOS/Android(OpenGL/GLES3)。未来计划包括 Unreal 集成、更高级的透明处理,以及跨更多平台扩展。

但愿景非常明确:从窗口(2D)优先的网页走向空间优先的网页——同时保持现有网页标准的开放性和可访问性。


📖 想更深入了解吗?

本文仅是概览。原文文章提供了更详细的架构说明、图示和示例:

👉 阅读原文文章: Understanding the Spatial Web Browser Engine | YODAOS JSAR
👉 GitHub 仓库: M-CreativeLab/jsar-runtime