本节摘要:MR 是 XR 光谱中"现实占比 30-70%、且现实虚拟能互相作用"的一段。这一段在硬件上分两条路:用摄像头合成"伪透视"(VST, Video See-Through)和用透明光学让现实直接进眼(全息波导)。本节拆开两条路线的工程差异、各自的优劣,再用一段 Unity 代码演示"如何在 VST 模式下正确处理深度,让虚拟物体被真实桌角正确遮挡"——这是 MR 段最关键的一步。
阅读完本节,你应当能够:
"MR"这个词在 2022 年以前还常被混在 AR 里,Apple 在 WWDC 2022 后把它单独拎出来。技术上的分界不是营销话术,而是**"现实与虚拟是否能互相遮挡、碰撞"**。
要做到这件事,机器需要知道两件事:
两条信息都要进入同一个 z-buffer,渲染管线才能正确判断"谁挡谁"。这就是 MR 比 AR 多出来的那一步:合成(compositing)。
VST(Video See-Through)用 1-2 颗外向摄像头拍下现实画面,把画面+虚拟内容一起送进显示面板。换句话说,你看到的"现实"不是直接进来的光,而是摄像头拍下来又播放出来的视频。
代表机型:
VST 的优势是技术成熟、成本低、可以做"色彩增强""夜视"等后期效果;劣势是"延迟黑洞"——摄像头拍 + ISP 处理 + 合成 + 显示,这一串加起来有 30-50ms。人的视觉系统在 15ms 内的运动才感觉是"同步",超过 30ms 就能感到"晕"——这就是为什么 VST 头显戴久了容易疲劳。
全息波导(Holographic Waveguide)走另一条路:用透明波导把图像直接送进眼睛,你看到的"现实"是直接进来的光。
代表机型:
全息的优势是延迟极低(接近裸眼,<5ms),颜色还原真实,"现实感"是 VST 比不了的;劣势是波导制造良率低(需要纳米级光刻工艺)、视场角受限(50-70°)、亮度受环境光影响大。
| 维度 | VST 透视 | 全息波导 |
|---|---|---|
| 现实来源 | 摄像头+ISP 合成 | 真实光线 |
| 延迟 | 30-50ms | <5ms |
| 视场 | 90-110° | 50-70° |
| 亮度 | 不受环境光限制 | 阳光下显示弱 |
| 制造良率 | 高(用消费摄像头) | 低(纳米光刻) |
| 重量 | 500-600g | 500-700g |
| 色彩增强 | 易(后期叠加) | 难(直接进光) |
| 典型机型 | Quest 3、Vision Pro | HoloLens 2、Magic Leap 2 |
Vision Pro 用 VST 而不用全息,并不是因为它不想用全息,而是因为 Apple 在 VST 上能把延迟压到 12ms(用 R1 协处理器 + 高带宽显示),同时绕开波导的良率问题。这是"用工程补物理"的典型选择。
这是 MR 段最关键的一步:把深度信息喂给渲染管线,让"虚拟蝴蝶"在真实桌角的另一侧"消失"。
// 1. 启用 ARCore / Vision Pro 的环境深度 API arOcclusionManager.SetEnvironmentDepthMode(EnvironmentDepthMode.Best); // 2. 把深度纹理传给渲染管线 RenderTexture depthTex = arOcclusionManager.environmentDepthTexture; // 3. 在 Shader 里采样深度,做遮挡判断 // - 比较场景深度 vs 真实深度 // - 真实深度更近 → 用真实深度(被真实物体挡住) // - 真实深度更远 → 用场景深度(虚拟物体可见)
在 AR Foundation 里,这套机制叫环境深度遮挡(Environment Depth Occlusion)。Vision Pro 上对应的是 ARKit 的 SceneReconstruction API。Quest 3 上是 Passthrough Depth API。
下面这段代码演示如何在 Shader 里做这个比较:
// Unity URP 下的遮挡 Shader half frag (Varyings input) : SV_Target { // 场景深度(虚拟物体自己的深度) float sceneZ = LinearEyeDepth(input.positionCS.z / input.positionCS.w, _ZBufferParams); // 真实环境深度 float realZ = SampleEnvironmentDepth(input.uv); // 比较:哪个更近就保留 if (realZ < sceneZ) { // 真实物体更近 → 不画(被遮挡) discard; } return half4(1, 1, 1, 1); }
跑起来后你会看到:一只虚拟蝴蝶在桌面上方飞舞,当你把视线移到桌角另一侧时,蝴蝶会"消失"在桌角后面——这就是 MR 段的金标准。
💡 关键直觉:VST 头显上能"被真实物体正确遮挡",靠的是"延迟够低 + 深度信息够准"两件事,缺一不可。Quest 3 在 90Hz 下能做到 11ms 延迟,足够支撑大多数遮挡场景;Vision Pro 用 R1 协处理器专门处理这一环节。
把两种 MR 方案的光路画出来——能直观看到"VST 拍→合→送"与"全息透光"的工程差异。

下一节我们讲输入外设:手柄、手势、触觉——头显之外的"另一半"。