全部专题
十五个概念,分成四个彼此递进的分区。
这个站上每一页都是一个概念:上面是一个能改参数的演示,下面是它到底怎么工作的文字说明。下面四个分区是有顺序的 —— 会话确立词汇,渲染讲什么被画出来,输入讲人怎么作用于它,而「理解真实世界」讲的是在这一切能被摆放之前,设备必须先搞清楚这个房间的哪些事。
会话与生命周期
4 篇
一个页面如何向浏览器申请沉浸式会话,以及拿到之后它能假设些什么。
这个站上其余的一切都依赖这一区。WebXR 页面不是简单地「切到 3D」,它是在**协商**:申请某个模式的会话、列出需要的特性、等待一次用户手势和一次权限决定。只有到这一步之后它才拿到 XRSession,也只有到这一步之后,别的 API 才有意义。
渲染与呈现
3 篇
到底画了什么、画了几遍,以及最后是谁在合成。
头显的一帧不是浏览器的一帧。你的场景要**按视图**画一遍(立体头显是两个视图,有时更多),画进一个由运行时持有的帧缓冲,按运行时定的节奏。然后由一个你控制不了的合成器决定用户实际看到什么、什么时候看到。WebXR 里多数性能上的意外,都来自不知道这条边界在哪儿。
输入与移动
3 篇
手柄、手,以及那个别扭的问题:怎么让一个站着不动的人在空间里移动。
XR 里的输入不是事件。没有 click,没有 keydown,指针底下也没有元素。每一帧你拿到的是一组输入源,各自带着姿态、类手柄的按键状态,可能还有一副 25 关节的手部骨架,而这些**意味着什么**,得你自己决定。捏合、抓取、指针射线、传送弧线:这些在 API 里一个都不存在,它们都是你从姿态里搭出来的。
理解真实世界
5 篇
运行时告诉你「用户所在房间」的五种方式 —— 每一种形状不同,会撒的谎也不同。
这是站上最大的一区,也是最吃心智模型的一区。在 VR 里你的场景就是全部真相;在 AR 里它是一个客人,住在一个运行时自己都还在摸索的房间里。而这里的每一个 API,都是在回答同一个问题的不同版本:**设备到底知道这个房间的什么,你又该信它几分?**