AR · VR · MR · XR

问鼎娱乐VR:AR、VR、MR与空间互动娱乐

问鼎娱乐VR围绕AR、VR、MR这三类技术以及XR这一行业统称展开,重点讨论视频透视(Passthrough)、空间遮挡(Occlusion)、碰撞(Collision)和多模态交互如何共同决定一段MR内容是否可信。问鼎娱乐XR相关内容也会说明,为什么"看得清现实"和"理解现实"是完全不同的两件事。

基础概念

问鼎娱乐VR核心问题

AR是什么?

增强现实(AR)主要是把数字信息叠加在真实世界画面上,用户仍以现实为主要感知对象。

VR是什么?

虚拟现实(VR)让用户主要进入一个完全虚拟的环境,现实空间的介入程度相对较低。

MR是什么?

混合现实(MR)要求虚拟内容和现实空间建立更深的空间关系,包括遮挡、碰撞和交互,而不只是叠加画面。

XR是什么?

XR(扩展现实)是AR、VR、MR的行业统称,很多设备可以在不同模式间切换,边界并非绝对割裂。

Passthrough是什么?

视频透视让用户通过头显摄像头看到现实房间,解决的是"看得见"问题,不代表系统"理解"了这个空间。

MR怎样理解现实环境?

MR依赖场景理解(Scene Understanding),把摄像头和深度数据转换为带语义标签的空间结构,才能判断哪里可以放置内容。

MR游戏为什么需要遮挡?

没有正确的Occlusion,虚拟角色会完整显示在本该被现实家具挡住的位置,看起来像一张漂浮的贴纸。

VR和MR有什么区别?

VR的重心是让用户沉浸在虚拟环境里;MR的重心是让虚拟内容与现实空间产生正确的遮挡、碰撞和交互关系。

原创长文

问鼎娱乐VR原创文章

问鼎娱乐VR已经能够通过高清Passthrough看到真实房间以后,为什么"看得清现实"仍然和"理解现实"是两件事?

开发一个MR场景时,我遇到过这样一个问题:用户戴上头显,透过摄像头看到的客厅画质已经足够清晰,沙发的纹理、茶几上的杂志封面都能看清,但当我把一只虚拟猫放到茶几上时,猫的阴影方向和真实光源完全对不上,猫的边缘也没有被茶几边缘正确裁切。这类问题暴露了一个容易被忽视的事实:Passthrough(视频透视)解决的是"用户能不能看到现实",而不是"系统知不知道这是什么空间"。

Passthrough的原理是头显外侧的摄像头实时拍摄现实画面,经过畸变校正、视差校正后投射到用户眼前的屏幕上,让用户在戴着头显的情况下仍然像睁着眼睛一样看到房间。这是MR体验的基础层,问鼎娱乐VR在介绍相关技术时也会强调,清晰的Passthrough画面只是解决了"透视"这一层,并不代表系统对空间有任何认知。像素层面的清晰和语义层面的理解,是完全不同的两套能力。

要让虚拟内容真正"住进"现实空间,系统需要额外的Scene Understanding(场景理解)能力。这套能力的核心是把摄像头和深度传感器采集到的原始数据,转换成带有语义标签的空间结构——也就是Semantic Scene(语义场景):墙面被识别为墙面,桌面被识别为桌面,地板和天花板也各自被赋予对应的类别。没有这一步,头显只是"看见"了一堆颜色和形状,无法判断哪里可以放置虚拟物体、哪里会发生遮挡。

从工程实现的角度看,场景理解通常分成几个层级:先做Plane Detection(平面检测),找出水平和竖直的大块平面,比如地面、桌面、墙面;再做更精细的Mesh重建,把不规则的物体轮廓也纳入几何模型;最后才是语义分类,给每一块几何区域打上"沙发""茶几""电视柜"这样的标签。这几层计算都需要在头显有限的算力预算内实时完成,稍有延迟就会出现虚拟物体先漂浮几帧、再"啪"地吸附到桌面上的现象,这也是开发者调试MR内容时最容易被用户投诉的细节之一。

Depth(深度)信息是连接"看见"和"理解"的关键桥梁。头显通过双目视差、结构光或飞行时间等方式获取空间中每个点到摄像头的距离,生成深度图。深度图叠加语义分类之后,系统才能构建出一个带有几何厚度的房间模型,而不是一张平面照片。问鼎娱乐App在讲解空间计算内容时经常会把这一层单独拎出来讲,因为很多人以为"头显摄像头清楚"就等于"头显懂空间",这是两件完全不同的事。

同时,Passthrough本身也远没有想象中那么"绝对真实"。摄像头到显示屏之间存在Camera Latency(相机延迟),哪怕只有几十毫秒,用户快速转头时也会感觉画面有轻微的拖影或漂移;镜头本身存在光学Distortion(畸变),需要软件实时校正;而摄像头的自动Exposure(曝光)在从暗处看向亮处时,也会出现短暂的过曝或欠曝,这些都不是现实本身的样子,而是系统重建出来的一个近似版本。

我在给问鼎娱乐XR相关内容做验收时,通常会针对场景理解模块做几个简单测试:把虚拟物体放在靠近现实物体边缘的位置,看它的裁切边线是否贴合;让用户绕着一件真实家具走一圈,观察虚拟内容是否会在遮挡关系切换的瞬间出现闪烁或错位;再故意在光线较暗的角落放置物体,检查语义分类是否还能稳定识别出"这是墙"。这些测试比单纯看Passthrough画面清不清晰更能反映系统的真实能力。

这也是为什么行业里通常用XR作为AR、VR、MR的统称——AR更强调在真实世界上叠加数字信息,VR让用户主要进入一个完全虚拟的环境,MR则要求虚拟内容和现实空间建立更深的空间关系,但三者的边界并不是绝对割裂的,很多头显设备本身可以在AR、VR、MR模式之间切换。理解Passthrough只是入口,场景理解才是决定MR体验是否可信的核心。

问鼎娱乐VR现实桌面与虚拟对象Occlusion遮挡示意图
对比虚拟角色被沙发正确遮挡与未被遮挡的效果差异
PassthroughScene UnderstandingSemantic Scene

问鼎娱乐VR里的虚拟球撞到现实墙以后,为什么Collision是否正确会比球的材质画质更影响MR真实感?

在问鼎娱乐VR相关内容里调试一个MR投掷类交互时,我做过一个对比测试:给虚拟球换上高精度的PBR材质,高光、反射、次表面散射全部到位,画面效果非常好看,但只要球飞过去直接穿过现实中的墙壁,用户的沉浸感会在零点几秒内彻底消失。反过来,即使球的材质只是最基础的哑光贴图,只要它撞到墙壁后正确停下、弹开或者产生形变,用户几乎不会去关注材质细节。这说明在MR内容里,Collision(碰撞)是否正确,权重远高于表面视觉效果。

Collision在这里指的是虚拟物体和现实物体之间的物理约束——虚拟球不能穿过现实的墙、桌子或沙发。要实现这一点,系统必须先拿到一份足够准确的Room Mesh(房间网格),碰撞检测算法在每一帧里计算虚拟物体和这套网格之间是否发生穿插,一旦检测到,就触发反弹、停止或形变等物理反馈。Room Mesh的精度、更新频率,直接决定了碰撞判断是否可信——网格如果没能及时捕捉到一张被挪动的椅子,虚拟球就会直接穿过椅子曾经所在的位置。

Room Mesh的生成同样要在算力和精度之间做取舍:网格三角面数量越多,几何细节越准确,但实时更新的计算开销也越大;如果为了保证帧率而降低网格分辨率,细小的物体轮廓就可能被平滑掉,碰撞检测也会随之出现误差。这也是为什么很多MR内容会给不同类型的现实物体设置不同的网格精度策略,重点活动区域用更高精度,边角区域适当降低。

这里容易和Collision混淆的另一个概念是Occlusion(遮挡)。两者经常一起出现,但解决的是不同问题:Collision管的是"虚拟物体不能穿过现实物体",属于物理层面的约束;Occlusion管的是"虚拟物体应该被现实物体正确挡住",属于渲染层面的显示逻辑。一个虚拟角色走到沙发后面,如果Occlusion没做好,角色会整个悬浮在沙发前面,哪怕它并没有真的撞穿沙发;如果Collision没做好,角色则可能直接从沙发里穿过去。这两套逻辑都依赖同一份空间几何数据,但触发的结果完全不同,一个决定"能不能过去",一个决定"看不看得见"。

从渲染实现来说,Occlusion通常靠逐像素的深度比较完成:系统在渲染每一帧时,会把虚拟物体的深度值和当前视角下现实场景的深度值做比较,如果现实物体更靠近摄像头,对应像素的虚拟内容就不会被绘制出来。这套深度比较依赖的现实深度数据,同样来自Room Mesh或实时深度图,如果这份数据本身有噪声或者更新不及时,遮挡边缘就会出现闪烁、锯齿,甚至短暂的"露出"现象。

问鼎娱乐VR在解释MR内容设计时,通常会把Room Mesh的更新机制单独拎出来说——现实空间不是静止的,人会走动,家具会被挪动,如果几何数据只在头显启动时扫描一次,后续所有的碰撞和遮挡判断都会基于过时的空间。持续的Mesh更新意味着系统要在保证帧率的前提下,不断用新的深度数据修正房间模型,这对算法效率的要求相当高。

给问鼎娱乐App相关素材调试Collision时,我常用的方法是故意制造边界情况:把虚拟球以很快的速度扔向墙角,或者让它贴着桌面边缘滚动,观察碰撞反馈是否会出现穿透或者卡顿;再让现实中的人从虚拟物体经过的路径中走过,检查系统能不能实时把人体也纳入碰撞和遮挡的判断范围。

之所以说这些看不见的底层空间逻辑比表面画质更决定MR是否可信,是因为人对"物理是否合理"的感知几乎是本能反应,不需要经过思考就能察觉穿模或悬浮,而对材质精细度的感知则需要主动去观察和比较。问鼎娱乐App在做相关内容分享时也会强调,MR开发中真正难啃的部分往往不是渲染效果,而是这套贯穿始终的空间约束系统。

问鼎娱乐VR虚拟球与Room Mesh房间网格碰撞检测示意图
虚拟球依据Room Mesh计算与真实墙面的碰撞反弹角度
CollisionRoom MeshOcclusion

问鼎娱乐VR从手柄逐渐加入手势、眼动和真实物体交互以后,为什么交互方式越多反而越需要一套统一空间逻辑?

带新人做交互测试时最常见的一个bug是这样的:用户用手柄把一个虚拟面板放在桌子右侧,切换到手势操作去点击按钮,结果发现按钮的判定位置和视觉位置差了小半个手掌的距离。排查之后发现,手柄追踪和手势追踪用的是两套独立标定过的坐标基准,各自单独运行没问题,但同时启用后,两套坐标系之间存在细微偏移,用户切换输入方式的瞬间,这个偏移就被放大成了明显的操作错位。

手柄(Controller)是目前最成熟的输入方式,提供稳定的六自由度追踪和明确的按键反馈,但要求用户一直握着实体设备。Hand Tracking(手势追踪)依赖摄像头识别手部关键点,动作自然,但容易受遮挡影响——手指互相挡住、光线不足、手伸出摄像头视野边缘时,识别精度都会下降。Eye Tracking(眼动追踪)反应速度快,但采集的是视线这类高度敏感的生物特征数据,需要明确的权限申请和数据最小化处理,不能默认全程采集。除此之外,MR还在逐步支持真实物体交互,比如识别用户手里的真实笔、真实杯子,把它们当作输入媒介的一部分。

这几种输入方式各有边界,单独看都不难理解,问题出在同时存在的时候。如果手柄追踪、手势追踪、眼动追踪各自维护一套坐标系统,只在各自的模块内部保证精度,那么当用户在几种输入方式之间切换,或者同时使用时,微小的坐标偏差会被用户直接感知为"这个系统不太准"。更麻烦的是,这种偏差往往不是恒定的,会随头部姿态、光照条件、手部距离摄像头远近而变化,调试起来比单一输入方式的精度问题复杂得多。

问鼎娱乐VR相关内容在梳理这类问题时提到,要统一这些坐标系统,工程上通常依赖一个共同的World Coordinate(世界坐标系)作为锚点,头显自身的定位系统持续输出这个坐标系下的头部位姿,再把手柄的六自由度追踪、手势关键点、眼动落点全部转换到同一坐标系下表达。不同传感器的采样频率并不一致,融合算法还需要做时间戳对齐和插值,否则即使坐标系统一,时间上的错位也会让判定位置和视觉位置产生偏差。

眼动数据的处理原则和其他输入方式不太一样,需要额外谨慎:多数场景下,系统只需要用户当前视线落点这一个瞬时结果去完成交互判定,并不需要把连续的视线轨迹长期保存下来。统一空间坐标系统在融合眼动信号时,也应该遵循这个最小化原则——只把落点数据转换到统一坐标系用于即时交互,而不是把原始视线路径长期留存,这既是隐私保护的要求,也能减少融合系统需要处理的数据量。

解决这个问题,靠的不是把某一种输入方式做到极致精确,而是建立一套统一的空间坐标基准,让手柄、手势、眼动、真实物体识别都把各自采集到的数据,实时对齐到同一个空间理解框架里,而不是各自输出坐标之后再简单叠加。问鼎娱乐VR在讨论多模态输入设计时,通常会强调"统一空间逻辑"这个前提——不同输入方式可以有不同的置信度和刷新频率,但它们描述的必须是同一个房间、同一套几何关系。

验证多模态输入是否对齐时,一个简单有效的方法是让用户用手柄在虚拟面板边缘画一条线,再切换到手势沿着同一条边缘重复一次,比较两次轨迹的偏差;也可以让用户用眼动看向一个虚拟按钮的同时用手势去点击,观察选中判定是否和视线焦点一致。这也解释了为什么不能简单以"哪种输入方式最先进"来决定优先级,问鼎娱乐App在相关内容里也提到,真正成熟的多模态交互,是让系统能根据场景自动选择合适的输入组合。

问鼎娱乐沉浸式空间音频World-locked与Head-locked对比图
多种输入信号需要统一对齐到同一空间坐标基准
Multimodal InputWorld CoordinateEye Tracking
相关方向

继续了解问鼎娱乐其他方向

问鼎娱乐空间计算

了解6DoF、空间锚点和场景理解这些MR体验的底层基础能力。

前往问鼎娱乐空间计算 →

问鼎娱乐数字人

了解空间数字人如何被现实家具正确遮挡、如何与用户产生自然的空间互动。

前往问鼎娱乐数字人 →

问鼎娱乐App

了解问鼎娱乐App如何统一场景理解与交互体验。

前往问鼎娱乐App →