假设你要搬家。过去你看的是纸质户型图——一张摊平的 2D 图纸,墙是线、门是符号,手指点到哪就是哪,一切都在一个平面上。现在你真的搬进了这套房子:你要记住沙发在哪、冰箱门朝哪边开、卧室开关在进门右手边多高的位置;你伸手去够高处的吊灯,低头避开低矮门框,从客厅“嗖”地挪到阳台,还要小心别被茶几绊倒、别转几个圈就头晕。VR(虚拟现实)交互设计,做的就是“帮你成为这套新家的主人”这件事。 和传统 2D 界面不同,VR 里用户自带身体:有视线、有双手、有步幅,还有一颗容易晕的“前庭平衡系统”。设计师不能用“屏幕 + 鼠标”的思维,而要在三维空间里回答六个问题:用户如何建立空间心智地图?该用什么方式交互?交互后能否得到反馈?怎么移动才不晕?如何控制舒适度?如何感知远近深浅?本篇文章用“搬新家”这个比喻贯穿全程,把六件事一次讲明白。

岗位关联

对 AI 从业者而言,VR 交互设计是空间计算时代的底层用户逻辑。掌握这些原则,你才能在开发 XR 应用、三维可视化产品或数字孪生系统时,让用户真正“住得舒服”,而不是被设计呛到。

目录
  1. 可视化演示
  2. 空间心智地图
  3. 核心交互模式
  4. 反馈设计
  5. 移动方式设计
  6. 舒适度控制
  7. 深度感知
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

动态演示VR交互设计入门的核心机制,通过全局/局部/动态/静态四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

VR交互设计入门:VR空间 VR空间映射与三维交互基础 射线拾取与远场交互模式 核心机制可视化 VR交互设计入门整体架构与关键组件

空间心智地图

刚搬进新家的头一个晚上,你去厨房倒水,卧室关着灯。你的手先摸到墙,沿着走廊向前,在第二个拐角摸到开关——第二天白天你才留意到,那开关离地面一米二。三天后你闭着眼也能走完全程。这个过程,就是你在大脑里建立了一张“空间心智地图”。VR 用户走进你的虚拟房子时,同样在经历这个过程,只不过他们摸不到真实的墙,也看不见自己的身体,一切依赖设计师预先埋好的“路标”。

VR 里没有真实的墙壁给用户依靠,设计师必须主动帮他们建立认知:哪些地方能交互、哪些地方是安全区、物体大概在什么高度。这引出了三个具体手段:限定交互半径、控制舒适视区、给出安全边界。空间锚定的目标是让虚拟房间的尺寸尽量贴近物理空间——你转个身不至于撞到书桌,跨一步不至于穿出客厅。

成年人手臂自然前伸约 0.6-0.8 米,VR 中把主要可抓取的物体放在用户周围 1 米内,更远的物体用射线等远距离交互。人眼最舒适的视线方向略向下,主要信息面板应放在水平视线下 30-45 度之间,避免用户长时间仰头。接近真实房间边界时,系统用发光的网格线(Chaperone)提示,防止用户一头撞上墙壁。

就像新家第一夜你沿墙摸黑走,摸得到的地方才叫“顺手”;VR 里摸得到的地方才叫“可交互”。边界网格则像你为夜路准备的壁灯——它不挡路,却总在你快要撞上墙角时温柔亮起,提醒你“这里到头了”。

d交互=∥P物体−P用户∥≤d可达\displaystyle d_{\text{交互}} = \left\| P_{\text{物体}} - P_{\text{用户}} \right\| \le d_{\text{可达}}
物体到用户的直线距离必须小于用户的可达距离(通常取 0.7-1.0 米),否则用户无法直接用手完成交互,需要改用射线或移动方式。
  1. 物体位置向量表示物体在世界坐标系中的位置,是距离计算的一个端点。
    P物体P_{\text{物体}}
  2. 用户位置向量表示用户头部(或身体中心)在世界坐标系中的实时位置。
    P用户P_{\text{用户}}
  3. 二范数计算计算物体与用户两点之间的欧氏距离,也就是“实际空间距离”。
    ∥⋅∥\left\| \cdot \right\|
  4. 可达距离阈值经验取值为 0.7-1.0 米,代表手臂自然交互的舒适范围。
    d可达d_{\text{可达}}

核心交互模式

入住新家后你会发现,开灯有两种姿势:一种是站在门口,用激光笔远远照着开关按一下——准确、省力、不用挪窝;另一种是走过去,直接用手按下翘板开关——自然、有手感。远近亲疏决定了该选哪种方式。VR 里的交互设计,本质上就是在回答同一道选择题。

VR 的核心交互模式分两大流派:射线拾取(Ray Casting)与手部追踪(Hand Tracking),手柄控制器则充当可靠的操作底座。选择的标准只有两条:距离和任务粒度。射线拾取从手柄发射一束虚拟激光,激光与三维物体求交,命中即高亮,扣扳机完成选择,适合远距离、多目标、快速点选;手部追踪由头显摄像头捕获手部关键点,让用户直接抓取、捏合、拖动,适合一米以内的精细操作,比如组装零件、转动阀门;手柄提供按键、摇杆、扳机和震动反馈,是射线与复杂操作的主要载体。匹配原则可以概括为八个字:远选近抓、选射操纵。

激光笔负责“点到为止”,手负责“拿起放下”,就像爷爷用晾衣杆够高处的衣服、弯腰捡起地上的鞋。VR 里的射线与手就是这一杆一手——选对了,用户才会觉得这个“家”用起来顺心顺手。

∥P0+t⋅D−C∥=r\displaystyle \left\| P_0 + t \cdot D - C \right\| = r
射线从起点 \(P_0\) 出发、沿方向 \(D\) 前进,参数 \(t\) 表示前进距离;若存在 \(t \ge 0\) 使等式成立,说明射线打中了球心为 \(C\)、半径为 \(r\) 的物体。
  1. 射线起点手柄控制器在虚拟空间中的当前位置。
    P0P_0
  2. 方向向量手柄指向的单位向量,决定激光射向何方。
    DD
  3. 前进参数从起点出发沿方向前进的距离,命中时即为“命中深度”。
    tt
  4. 包围球体把物体简化成球心加半径,用于快速碰撞检测。
    C,rC, r

反馈设计

新家的烤箱按钮按下去,如果没有“咔嗒”一声、没有指示灯亮起,你一定会怀疑它坏了。人的每一种操作都在等一个“回应”。在物理世界里,回应是天然的;在 VR 里,回应消失了,设计师必须把视觉、听觉、触觉的“回应”一样样亲手补上。

反馈设计的原则有三条:每种操作都有反馈、反馈语义与操作对应、反馈足够及时。视觉反馈是主通道:射线命中时物体高亮描边,选中后变色,抓取时物体跟随手移动,所有可交互对象都必须有默认高亮状态。听觉反馈命中时发“叮”、按钮发“咔哒”、传送带风声,声音比视觉更快被察觉,是廉价高效的空间提示。触觉反馈由手柄震动模拟,比如扣扳机的阻尼震动、抓起物体时的微小脉冲。

反馈再丰富,慢了就全白搭。从用户动作到反馈呈现,端到端总延迟应控制在约 20 毫秒以内,超过它用户会感到“飘”,仿佛手和画面之间隔了一层棉被。

“咔嗒”一声的开关,是物理世界的温柔;VR 里那束高亮、那声短促的提示音、手柄那一下轻微震动,就是设计师替世界回应的温柔。没有回应的交互,像跟空气握手——手悬在半空,心也跟着悬空。

T总=T输入+T追踪+T渲染≤20 ms\displaystyle T_{\text{总}} = T_{\text{输入}} + T_{\text{追踪}} + T_{\text{渲染}} \le 20\,\text{ms}
输入采样、位置追踪、渲染输出三个环节用时之和决定了反馈延迟。约 20 毫秒是 VR 沉浸感的经验门槛,超过后“不跟手”的感觉会立刻显现。
  1. 输入采样耗时读取传感器事件并传送给处理器的耗时。
    T输入T_{\text{输入}}
  2. 追踪计算耗时计算头显和手柄六自由度姿态的耗时。
    T追踪T_{\text{追踪}}
  3. 渲染输出耗时GPU 绘制一帧画面的耗时,与刷新率强相关。
    T渲染T_{\text{渲染}}
  4. 延迟上限阈值行业公认的经验值,保证“操作-反馈”闭环的即时感。
    ≤20 ms\le 20\,\text{ms}

移动方式设计

新家一百二十平,厨房到阳台有点远。你可以一步步走过去,可急着端菜时,恨不得有扇任意门。VR 里的“任意门”就是传送移动(Teleportation),一步一个脚印则是平滑移动(Smooth Locomotion)。移动是最敏感的交互设计——它直接决定用户晕不晕。

三种主流移动方式各有取舍。传送移动:指向目标点,显示落点光圈与弧度轨迹,松手瞬移,几乎不引发晕动,但会打断连续空间感知,用户容易“忘了刚从哪里来”。平滑移动:推动摇杆连续前进后退,像传统射击游戏,真实沉浸,但视觉连续运动直接刺激前庭冲突,是晕动症的主要来源。固定步进循转(Snap Turn):按方向键,视角瞬间跳过一个固定角度(如 15 度),用“跳切”代替“摇镜”,规避旋转诱发的晕眩。场景适配建议:空间探索用传送,驾驶飞行用平滑,叙事体验混合并允许用户自选。

传送像哈利波特的幻影移形——“啪”地消失又“啪”地出现;循转像老式相机换胶卷——一格格跳,不拖泥带水。急事用任意门,散步用脚走,VR 移动设计的全部学问,就是教会用户什么时候该用哪扇门。

Δθ=360∘n,n∈{12,24,36}\displaystyle \Delta\theta = \frac{360^\circ}{n}, \quad n \in \{12, 24, 36\}
把一整圈 360 度分成 n 等份,每次转向固定跳过一个步进角。n 取 24 时每步 15 度,既能快速转身,又不至于让视觉流把人转晕。
  1. 一圈等分数n 通常取 12、24 或 36,对应每步 30 度、15 度、10 度。
    nn
  2. 步进转角每次敲击方向键时视角瞬间转过的固定角度。
    Δθ\Delta\theta
  3. 均分关系式360 度除以等分数得到单步转角,n 越大转向越细腻。
    360∘n\frac{360^\circ}{n}

舒适度控制

坐车低头刷手机,几分钟就恶心——你的眼睛说“我没动”,耳朵里的前庭平衡系统却说“车在晃”,大脑被两个矛盾信号夹击。VR 的晕是同一个故事的镜像版:眼睛说“我在飞”,身体却说“我明明坐着没动”。搬新家再兴奋,头晕起来也住不下去。

晕动症的根源,是视觉信号与前庭本体感觉信号的冲突。VR 设计师治不了病,但可以从源头规避冲突。场景里要保留不动的天花板、地面网格、远处山影作为静态参考系,给大脑提供“锚点”;虚拟视角的高度要与用户真实坐姿或站姿保持一致,避免忽高忽低的失衡感;平滑移动要带加减速缓冲曲线,起步缓、收尾缓,杜绝速度突变;移动时还可以动态收窄视场角(FOV 缩减),像给马戴上眼罩,把周边视觉的运动刺激挡在外面。

给大脑的两个“情报员”讲同一个故事,它就不会发脾气。静态参考系是窗外的远山,运动缓冲是开车时缓踩的油门,视场收缩是拉上的窗帘——全套动作只为一件事:让眼睛和耳朵口径一致,让这座新家住得安稳。

S≈α⋅∣V视觉−V前庭∣\displaystyle S \approx \alpha \cdot \left| V_{\text{视觉}} - V_{\text{前庭}} \right|
主观晕眩程度近似正比于视觉感知速度与前庭感知速度之差的绝对值。差越大越晕,差为零才真正舒服。
  1. 视觉速度画面对大脑宣称的移动速度。
    V视觉V_{\text{视觉}}
  2. 前庭速度平衡器官实际感受到的移动速度,静止时为零。
    V前庭V_{\text{前庭}}
  3. 信号冲突量两者之差的绝对值,衡量大脑被夹击的程度。
    ∣V视觉−V前庭∣\left| V_{\text{视觉}} - V_{\text{前庭}} \right|
  4. 个体敏感系数因人而异的比例常数,解释了为什么有人天生不晕。
    α\alpha

深度感知

扔垃圾时,你瞄一眼垃圾桶就能估出该用多大力——这背后没有玄学,全凭深度感知。左右眼从两个角度看到同一片场景,画面稍有错位,大脑凭这错位算出“它离我大概三米”。可如果错位算错了,垃圾就会砸在桶沿上。VR 的立体感正是对人眼深度系统的模仿。

VR 渲染时给每只眼睛各画一幅略有偏移的画面,模拟双目视差。但“像”还不够,还要“像得对”:瞳距(IPD)约 6.3 厘米,必须逐人校准,错误的视差会让物体看起来像纸片、或者边缘发虚。与此同时,遮挡关系、阴影、物体相对大小、纹理渐变这些单目线索也不能缺席——即使闭上一只眼,人也依然分得清远近。设计师还要善用尺度比例:门高两米、桌高零点七五米,熟悉的真实尺度会帮大脑标定距离;若把桌子做成一点二米高,整个房间瞬间变成“小人国”。最后要留意聚焦-调节冲突:屏幕固定在头显内约一两米处,而虚拟物体可能在半米或五米外,眼睛长期“对不上焦”会酸胀疲劳。

深度感知是新家入住前的最后一块拼图。只有视差、阴影、尺度样样对得上号,你才能一把抓住悬在半空的钥匙串,而不是在它下方徒劳地捞空气。VR 里每一次“刚好抓住”的惊喜,背后都是这套深度系统集体的成功。

δ=b⋅fz\displaystyle \delta = \frac{b \cdot f}{z}
双目视差 \(\delta\) 等于瞳距 \(b\) 乘以焦距 \(f\),再除以物体深度 \(z\)。物体越近,两只眼睛看到的差异越大。
  1. 瞳距左右眼瞳孔中心的距离,成年人约 63 毫米。
    bb
  2. 焦距从眼睛到成像面的距离,在 VR 中近似为透镜到屏幕的光学距离。
    ff
  3. 物体深度物体到观察者的实际距离,越大代表越远。
    zz
  4. 反比关系式z 越小、delta 越大,近处的物体视差更明显。
    δ=b⋅fz\delta = \frac{b \cdot f}{z}

AI 应用场景

VR 沉浸式看房

阶段:三维场景重建 + XR 交互设计

解决的问题:传统看房需要预约、跑盘,且样板间结构固定不可变。早期 VR 看房产品照搬游戏平滑移动,用户两分钟就晕,转化率惨淡。改用射线拾取选择户型标签、传送移动切换房间、手部追踪开关灯和橱柜后,晕眩投诉下降约七成,用户停留时长从四十秒提升到六分钟。

具体案例:用户戴上头显,手柄发出激光选中“客厅”标签,半空中出现落点光圈,松手即瞬移到客厅中央;走近茶几,手部追踪让他直接抓起茶杯查看纹理;接近阳台时地面浮现蓝色安全网格,提示“前方是边界”。AI 还会根据用户注视点热力图,自动推荐下一个最该看的房间。

VR 消防疏散安全培训

阶段:空间数据采集 + 交互反馈闭环 + 行为分析

解决的问题:真实消防演练成本高、场地受限、难以重复。VR 培训用真实建筑扫描数据重建三维空间,手部追踪模拟“提灭火器、拔插销、按压手柄”,视觉高亮与手柄震动模拟喷射与后坐力,形成一个完整的反馈闭环;AI 记录用户的注视扫视范围、决策耗时和移动轨迹,自动评估其是否第一时间发现安全出口。

具体案例:工厂新员工在虚拟车间经历火警,正确的做法是循转观察四周、沿安全通道传送撤离。系统将其每一步操作与专家动作序列比对,生成“疏散决策能力画像”,指出其忽略的角落和延误的环节。

VR 术前规划

阶段:医学影像三维重建 + 手部精细交互

解决的问题:医生看 CT 切片是二维的,器官的空间关系全靠脑补。VR 中医生直接用手旋转、缩放、切割虚拟器官模型,深度线索按真实尺度渲染,让医生准确感知病灶与血管的相对深度。

具体案例:神经外科术前,医生戴上头显,双手“捧起”患者脑部模型,拇指与食指捏合缩放,用射线标注关键血管,十分钟完成一次术前预演,大幅降低术中对空间关系的误判。

Python 演示

python72 行
import math class VRSimulator:    """VR 空间交互模拟器:演示射线拾取、手部抓取与传送距离约束"""     def __init__(self):        self.user_pos = (0.0, 0.0)        self.laser_dir = (1.0, 0.0)        self.objects = []        self.reach = 0.75          # 手部可达半径(m)        self.max_teleport = 8.0    # 单次传送最大距离(m)     def add_object(self, name, x, y, radius):        self.objects.append({'name': name, 'pos': (x, y), 'radius': radius})     def ray_pick(self):        """射线拾取:返回激光命中的最近物体名"""        hits = []        ox, oy = self.user_pos        ux, uy = self.laser_dir        for obj in self.objects:            dx, dy = obj['pos'][0] - ox, obj['pos'][1] - oy            t = ux * dx + uy * dy          # 射线参数方程 P = O + t*D            if t <= 0:                continue            px, py = ox + ux * t, oy + uy * t            dist = math.hypot(px - obj['pos'][0], py - obj['pos'][1])            if dist <= obj['radius']:                hits.append((t, obj['name']))        if not hits:            return None        hits.sort(key=lambda item: item[0])   # 取最近命中        return hits[0][1]     def hand_grab(self):        """手部追踪:返回可达半径内最近的物体名"""        nearest, best = None, self.reach        for obj in self.objects:            d = math.hypot(obj['pos'][0] - self.user_pos[0],                           obj['pos'][1] - self.user_pos[1])            if d <= self.reach and d < best:                best, nearest = d, obj['name']        return nearest     def can_teleport(self, dst):        """传送移动:检查目标点是否超出单次传送距离"""        d = math.hypot(dst[0] - self.user_pos[0], dst[1] - self.user_pos[1])        return d <= self.max_teleport  def main():    sim = VRSimulator()    sim.add_object('沙发', 1.2, 0.5, 0.30)    sim.add_object('茶几', 2.0, 1.5, 0.25)    sim.add_object('花瓶', 0.8, 2.4, 0.15)     sim.laser_dir = (0.8, 0.6)      # 朝右上射出激光    hit = sim.ray_pick()    print('射线拾取命中:', hit)     sim.user_pos = (1.0, 1.0)       # 走近后再用手抓    grabbed = sim.hand_grab()    print('手部抓取到:', grabbed)     dst = (5.0, 3.0)    print('传送到 (5,3):', '允许' if sim.can_teleport(dst) else '超出距离')    dst2 = (10.0, 8.0)    print('传送到 (10,8):', '允许' if sim.can_teleport(dst2) else '超出距离')  if __name__ == '__main__':    main()
目的:用二维平面模拟 VR 中三种核心交互——射线拾取、手部抓取、传送距离约束,帮你直观理解本文讲的三个设计原则如何在代码层面落地。
  1. t = ux * dx + uy * dy把物体相对位置投影到激光方向,得到射线方程中的前进参数 t;只有 t>0 的物体才可能在射线前方。
  2. dist = math.hypot(...)计算激光线到物体中心的垂直距离,小于物体半径即判定命中。
  3. hits.sort(key=lambda item: item[0])按命中深度排序取最近目标,模拟“激光打在第一个挡路物体上”。
  4. d <= self.reach手部抓取的可达范围限制,超过 0.75 米手就“够不着”。
  5. d <= self.max_teleport传送距离约束,保证单次瞬移不超出舒适范围,防止用户丢失空间锚定。

常见误区

误区“按钮就是一块会变色的板子,放到用户眼前一米处,自然会点——跟手机 APP 一个道理。”

正解VR 没有“屏幕平面”可言,用户会转头、会走动。把按钮放在视野中央会遮挡整个视线,放太远又够不着。正确做法是空间化布局:把交互面板放在侧前方视线下 30-45 度处,用真实尺度摆放,并考虑手臂可达范围——这就像装修时你不会把开关装在吊顶上,而要装在进门手边的高度。

为何常见:人们用最熟悉的 2D 屏幕思维去类比陌生媒介,忽略了 VR 最大的变量是“身体在场”。

误区“只要加一束激光,用户想点什么都能点,何必费劲做手部追踪?”

正解射线适合远距离“选择”,但不适合近距离“操纵”。对象就在眼前半米时还举着激光笔去点,用户会觉得像拿晾衣杆夹花生米。正确分工:选择用射线、操纵用手、精细旋转用双手捏合——这和“远用筷子夹菜、近用手抓点心”的生活直觉完全一致。

为何常见:早期 VR 大量使用激光手柄,实现简单成熟,形成了路径依赖。

误区“用户当然希望走得跟跑一样快,速度拉满,体验才带感。”

正解平滑移动速度超过约 3.5 米每秒,或加速度发生突变时,绝大多数人几十秒内就会晕。VR 里“爽”的前提是“不晕”,所以要用传送、循转、加减速缓冲、视场收缩等手段给大脑“降温”,就像再好的跑车也要配安全带和缓震悬挂。

为何常见:容易把主机游戏的速度感直接搬到 VR,忽略了前庭系统这道绕不过去的生理关卡。

误区“特效、声音、震动全部拉满,沉浸感一定爆棚。”

正解无意义的反馈是噪音,会掩盖真正的状态提示。反馈必须与操作语义一一对应:命中=高亮加叮声、选中=变色加咔哒、抓取=物体跟随加轻震。同时总延迟要控制在 20 毫秒内,错位的反馈(比如手明明穿过桌面却震动)反而强烈出戏。

为何常见:误以为“多即好”,没有理解反馈的本质功能是确认“操作是否成功”。

误区“把左右眼视差拉到最大,画面一定最真实。”

正解过大的视差会导致双眼斗争、重影和严重疲劳;且 VR 屏幕固定焦距,聚焦-调节冲突本来就存在,长时间高视差更伤眼。视差应严格按真实瞳距(约 63 毫米)和光学参数渲染,与遮挡、阴影、尺度等线索协同,而不是单点刺激。

为何常见:把“立体感”简单等同于“视差强度”,不理解人眼深度系统是多个信号综合协作的结果。

面试题

Q1. 在 VR 中,哪种交互方式最适合远距离快速选择多个目标?

单选题 · easy

  • A.直接伸手抓取
  • B.激光射线拾取← 正确答案
  • C.语音说出指令
  • D.头部注视选择

答案:B。射线拾取从手柄发射激光,可在数米外命中目标,适合远距离批量点选;直接抓取受臂长限制(约一米内);语音和头部注视并非 VR 最主流的空间选择方式。

Q2. 用户戴上 VR 头显后感到晕眩,最常见的原因是?

单选题 · easy

  • A.头显设备重量过重
  • B.视觉前庭信号冲突← 正确答案
  • C.虚拟场景光线过暗
  • D.耳机输出声音过大

答案:B。晕动症源于视觉与前庭信号冲突:画面告诉大脑“在动”,身体却静止。头显重量、光线、音量都不是直接成因,只是可能的诱因或伴随因素。

Q3. 手部追踪最可靠的工作距离范围约为?

单选题 · easy

  • A.一米以内的近距离← 正确答案
  • B.三到五米中距离
  • C.五米以上远距离
  • D.任意距离都可行

答案:A。手部追踪依靠头显摄像头捕捉手部关键点,受遮挡和精度限制,可靠工作范围约一米内;超出后手指会丢失或抖动,此时应改用射线拾取。

Q4. 传送移动相比平滑移动最大的优势是什么?

单选题 · mid

  • A.画面渲染更流畅
  • B.几乎不引发晕动← 正确答案
  • C.操作起来更简单
  • D.空间定位更精准

答案:B。传送移动没有连续的视觉运动流,前一帧在此、后一帧在彼,前庭系统不产生冲突信号,因此几乎不晕。代价是打断连续空间感知,而不是渲染或定位变好。

Q5. VR 中固定步进循转(Snap Turn)的转向方式是?

单选题 · mid

  • A.连续平滑旋转一周
  • B.瞬间跳过一个角度← 正确答案
  • C.跟随头部自由旋转
  • D.延迟之后慢慢转动

答案:B。循转让视角瞬间跳过固定角度(如 15 度),用“跳切”规避连续旋转流对前庭的刺激;平滑旋转或延迟旋转反而更易诱发晕眩。

Q6. 射线拾取的射线方程中,参数 t 表示什么含义?

单选题 · mid

  • A.激光的发射功率
  • B.命中点的深度参数← 正确答案
  • C.物体的表面粗糙度
  • D.手柄的握持松紧

答案:B。在 P(t)=O+tD 中,t 表示沿射线方向前进的距离即命中深度;命中检测时比较不同物体的 t 值,取最小正值对应的物体为“第一个被打中的目标”。

Q7. VR 交互反馈的端到端延迟应控制在哪个量级?

单选题 · mid

  • A.约 2 毫秒以内
  • B.约 20 毫秒以内← 正确答案
  • C.约 200 毫秒以内
  • D.约 2 秒以内

答案:B。约 20 毫秒是 VR 沉浸感公认门槛,超过后用户明显感到“不跟手”。2 毫秒当前硬件无法达到;200 毫秒、2 秒的滞后在中重度交互中会直接破坏操作闭环。

Q8. 下列哪些属于典型的单目深度线索?

多选题 · mid

  • A.物体之间的遮挡关系← 正确答案
  • B.阴影和物体相对大小← 正确答案
  • C.双眼视网膜的视差
  • D.眼动追踪的注视点

答案:AB。遮挡、阴影、相对大小是单眼即可利用的深度线索;双眼视差属于双目线索;眼动追踪测的是注视方向而非深度,不属于深度线索。

Q9. 以下哪些手段可以有效降低 VR 晕动症?

多选题 · hard

  • A.优先采用传送移动← 正确答案
  • B.使用固定步进角循转← 正确答案
  • C.平滑移动无限加速
  • D.场景保留静态物锚← 正确答案

答案:ABD。传送与循转均用“跳切”规避连续运动刺激,静态参照物给大脑提供不动锚点,三者都能缓解晕动;无限加速会加剧视觉载荷和信号冲突,必须避免。

Q10. 关于实时 VR 反馈延迟的控制手段,以下说法正确的是?

多选题 · extreme

  • A.异步重投影可缓解追踪延迟← 正确答案
  • B.渲染延迟仅取决于 GPU 性能
  • C.降低刷新率会加剧交互延迟← 正确答案
  • D.延迟校正可提升追踪精度← 正确答案

答案:ACD。异步重投影(Asynchronous Reprojection)在最新追踪数据到达后矫正画面,降低反馈延迟;延迟校正(Late Latching)同样提升头部追踪精度。渲染延迟由 CPU、渲染管线、刷新率共同决定,降低刷新率会增大帧间隔,加剧延迟,因此 B 错误。