N3.03.3explicit depth ordering设计研究

需要显式的深度排序规则

别名: 深度排序 · 前后层规则 · z-order policy

概念解释

空间里同时有真实台灯、一块日程板、一块弹出的确认框。三者谁在前,不能靠「看起来怎样」临时决定——头一偏、人一走,观感会改口。显式的深度排序规则(explicit depth ordering)是产品事先写下的前后政策:按几何深度、按任务层、还是按「确认框永远压过日程」。没有这条规则,同一对物体会在不同帧里交换前后,深度冲突就从个案变成系统行为。

机制

渲染每帧都要给每个像素一个赢家。引擎若没收到政策,就按绘制顺序、深度缓冲里碰巧谁先写、或半透明队列的不稳定排序来挑。头微动让两个几乎同深的表面交换深度缓冲里的大小关系,于是闪烁;两只眼分别走到不同的赢家,于是立体上一个物体在左眼前、在右眼后。人看到的不是「排错了一次」,是「前后关系没有法律」。

规则的内容可以很不一样:严格按世界几何、按任务把「当前对话」抬到最前、按类型把界面整体抬到现实之上。关键不是哪一种更正确,而是每一种都会在某种条件下牺牲另一条线索。不写出来,牺牲会随机发生;写出来,牺牲变成可测试的取舍。

怎么研究

构造至少三层会抢同一视线的内容(环境物体、常驻面板、临时对话框),比较「无声明、按引擎默认」和「有一条写明的政策」。让人在走和转头之后报告三者的前后,并标出任何一次闪烁或左右眼不一致。

自变量:排序政策(几何 / 任务层 / 未声明)、层间深度差、头动速度。 因变量:前后报告与政策的一致率、闪烁报告次数、立体不一致的察觉。

用静态截图验收排序会漏掉头动触发的交换。政策必须在运动条件下测。若实验只放两层且深度差很大,任何默认都能「看起来对」,测不出缺规则。

边界

场景里永远只有一层界面、并且离所有实物都很远时,默认绘制顺序就够用,显式规则的收益接近零。物理仿真里的碰撞体已经在用另一套排序(不能互穿),界面排序若和碰撞排序打架,人会按手的阻力而不是按画面来理解前后。多人共享同一房间时,各自头显若执行不同政策,指着「最前面那块」会指到不同的物体——那是协同问题,但根子仍是规则没有在系统级统一。全景视频没有可写的几何深度,排序只能按图层,政策的可选项更少。

怎么落地

  • 把界面分成有限几层(例如环境附着、工作面板、模态确认),写下每一层对下一层的前后关系,以及同层内按什么比。
  • 政策对整个会话稳定:不要这一秒按几何、下一秒因为动画把对话框「钻到」面板后面。
  • 两层深度差小于几个厘米时,不要指望几何排序自己稳定,要么拉开距离,要么把其中一层明确抬到政策里的上一档。
  • 验证:列出三件会叠在同一视线上的东西,请没写过这套界面的人在转头、走动后说出前后。答案必须和写下的政策一致,且同一问法在十次头动后不改口。改口或左右眼打架,就是规则还没成为系统行为。

延伸

  • 同组N3.03.1 界面与实物穿插会破坏深度判断 · N3.03.2 半透明会加剧深度歧义
  • 相邻N3.10 深度冲突与穿模 · N3.06 半透明与遮挡关系
  • 站内检索explicit depth ordering · z-order policy · depth sorting

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/N3.03.3