关于 Let VR

这是个什么站

Let VR 是一个讲 WebXR 和 three.js 的参考站。每一页只取一个概念 ——沉浸式会话是怎么建立的、控制器输入是怎么读的、一个手部姿态怎么就被判定成了捏合 ——然后把它讲透:上面是能调真实参数的交互演示,下面是把底层机制说明白的正文。

多数 WebXR 资料默认你已经有一台头显。这个站不做这个假设。所有演示首先是为普通桌面浏览器写的,用鼠标和键盘驱动;只有当你正在阅读的这台设备确实支持时,才切换到真正的沉浸式会话。

谁在写

这是一个独立站点,由一个开发者编写和维护。与 W3C Immersive Web 工作组、three.js 项目以及任何头显厂商都没有关联。

如果这里有写错、写漏或者已经过时的地方,欢迎直接告诉我:[email protected]。

演示演的是什么,不是什么

每个演示模拟的是一个概念会带来的可见后果,而不是它底下的机制。桌面浏览器没法降低 GPU 的着色率,也没法给你一张来自真实房间的深度图,所以演示复现的是「如果它能,你会看到什么」。凡是这个区别要紧的地方,页面里都会写明。

每个演示的参数都是真实 API 暴露的那些,取值范围也一致。把滑块拉到两端是有意义的:这些值里的大多数,都存在某个「截图上看着没问题、戴上头显根本没法用」的设定,而找到那条线在哪,本身就是这些演示的用意。

怎么建的

Let VR 是用 Astro 构建的静态站,部署在 Cloudflare Pages 上。演示是纯 JavaScript 加 three.js,全部在你的浏览器里运行 —— 没有任何东西被送到服务器处理。

所有正文都是服务端渲染的 HTML。关掉 JavaScript,演示会消失,整篇文字还在。这是刻意的:只存在于 canvas 里的内容没法被搜索、没法被引用,网络差的时候也读不了。

站点是中英双语的,两个版本都是分别写出来的,不是逐字段翻过去的。某段解释换一个例子在另一种语言里更好懂,那它就换一个。

页面怎么更新

兼容性表格都带着最后核对的日期,因为它们会过期。「某个特性在哪个浏览器的哪个版本上线了」这种陈述,准确一段时间之后就会悄无声息地不再准确,而一个不标日期的版本,不会给你任何办法判断自己读到的是哪一种。

页面有实质改动时,顶部的日期会跟着改。读者寄来的纠错是这些改动的主要来源 ——这也是「一个人的站怎么跟上一个还在快速变化的 API」的诚实答案:靠它自己是跟不上的。