2.3 MR 融合:VST 透视与全息


2.3 MR 融合:VST 透视与全息

本节摘要:MR 是 XR 光谱中"现实占比 30-70%、且现实虚拟能互相作用"的一段。这一段在硬件上分两条路:用摄像头合成"伪透视"(VST, Video See-Through)和用透明光学让现实直接进眼(全息波导)。本节拆开两条路线的工程差异、各自的优劣,再用一段 Unity 代码演示"如何在 VST 模式下正确处理深度,让虚拟物体被真实桌角正确遮挡"——这是 MR 段最关键的一步。

本节目标

阅读完本节,你应当能够:

  1. 区分 VST 透视与全息波导的物理原理。
  2. 说出 Vision Pro、Quest 3、HoloLens 2 各自用的哪种 MR 方案。
  3. 解释 VST 透视的"延迟黑洞"问题,以及如何工程上补偿。
  4. 在 Unity 里写一段代码处理"虚拟物体被真实物体遮挡"。

一、问题与直觉

"MR"这个词在 2022 年以前还常被混在 AR 里,Apple 在 WWDC 2022 后把它单独拎出来。技术上的分界不是营销话术,而是**"现实与虚拟是否能互相遮挡、碰撞"**。

要做到这件事,机器需要知道两件事:

  1. 现实的 3D 结构(深度图、网格)。
  2. 虚拟物体在空间的 6DoF 位置。

两条信息都要进入同一个 z-buffer,渲染管线才能正确判断"谁挡谁"。这就是 MR 比 AR 多出来的那一步:合成(compositing)。

二、VST 透视:摄像头合成的"伪现实"

VST(Video See-Through)用 1-2 颗外向摄像头拍下现实画面,把画面+虚拟内容一起送进显示面板。换句话说,你看到的"现实"不是直接进来的光,而是摄像头拍下来又播放出来的视频

代表机型:

  • Quest 3 / Quest Pro:双 RGB 摄像头 + 1 颗深度传感器(Quest Pro)。像素 1280×960,延迟 30-50ms。
  • Vision Pro:双 RGB 摄像头 + 2 颗 LiDAR + 红外泛光照明。像素更高,延迟宣称 12ms。
  • Pico 4 Ultra:双 RGB 摄像头。延迟 30-40ms。

VST 的优势是技术成熟、成本低、可以做"色彩增强""夜视"等后期效果;劣势是"延迟黑洞"——摄像头拍 + ISP 处理 + 合成 + 显示,这一串加起来有 30-50ms。人的视觉系统在 15ms 内的运动才感觉是"同步",超过 30ms 就能感到"晕"——这就是为什么 VST 头显戴久了容易疲劳。

三、全息波导:让光直接进眼

全息波导(Holographic Waveguide)走另一条路:用透明波导把图像直接送进眼睛,你看到的"现实"是直接进来的光

代表机型:

  • HoloLens 2:透明波导 + LCOS 投影,2K×2 全息分辨率。
  • Magic Leap 2:透明波导 + LCoS 投影,1440×1760。
  • Vuzix Shield:透明波导 + Micro-LED,分辨率较低。

全息的优势是延迟极低(接近裸眼,<5ms),颜色还原真实,"现实感"是 VST 比不了的;劣势是波导制造良率低(需要纳米级光刻工艺)、视场角受限(50-70°)、亮度受环境光影响大。

四、VST vs 全息:一张对比表

维度 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 透视用摄像头合成,技术成熟、延迟 30-50ms;全息波导让光直接进眼,延迟 <5ms 但制造难。
  • Vision Pro 用 VST 而非全息,是"用工程补物理"的典型选择。
  • 遮挡 Shader 是 MR 段最关键的一步——比较场景深度 vs 真实深度。
  • HoloLens 2、Magic Leap 2 是工业 MR 主流;Quest 3、Vision Pro 是消费 MR 主流。

图 2-3:VST 透视与全息波导的光路对比

把两种 MR 方案的光路画出来——能直观看到"VST 拍→合→送"与"全息透光"的工程差异。

图 2-3:VST 透视与全息波导的光路对比

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


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U