F3.06.2consistent light source设计研究

高度层级需要一致的光源假设

别名: 光源方向 · lighting model · 阴影方向

概念解释

卡片的影子在下方偏右,浮动按钮却四周发光,顶上的提示条影子朝上。三块都「有高度」,放在同一屏上却没法排谁更高:灯好像同时在天花板、在物体内部、在地板下。高度要能比较,先得共用一个光源假设。影子方向互相打架时,人读到的不是三层楼,是三套无法换算的局部特效。单一光源通常是斜上方,因为那是对真实场景的默认猜测;一旦产品里的灯会搬家,高度阶梯就散架。

机制

从阴影恢复形状和相对高度,依赖场景由少数灯照明、灯的方向在短时间内不变。视觉系统用这个约束把各处半影对到同一把尺子上:都是「离同一盏灯所照的地面有多远」。方向矛盾等于告诉系统「这些影子不是同一物理世界里的」,恢复过程会放弃全局高度,改成逐个对象装饰。四周发光尤其有害:它取消了「光从一边来」的前提,对象更像自发光,高度变成光晕半径,无法与下方投影的卡片比较。顶光改底光(影子朝上)还会被读成「这块凹进去」,高度符号翻转。

怎么研究

把同一组对象的影子方向做成一致斜上、随机、以及混合自发光。请人按「离屏幕有多远」排序,看一致条件下的等级相关、随机条件下是否掉到接近无相关。也可以画箭头标出每条影子暗示的光方向,统计一屏内方向的角差。角差超过大约直角,高度排序任务就会明显变差。不必上真实三维渲染,平面投影已经足够暴露方向冲突。

边界

品牌插画、英雄区可以有自己的戏剧光,只要不进入控件层的高度体系。夜间摄影风的营销页故意用脚灯,那是情境,不要把那套影子拷进表单控件。某些游戏 HUD 用内发光表示选中,选中态不是高度,应与 elevation 分开命名,以免工程师把 glow 和 drop shadow 当成同一档。深色主题如果还坚持投影,光源假设仍然要一致;只是投影本身在深底上几乎看不见,一致也救不了可见性。

怎么落地

  • 全产品只写死一个光方向(例如左上或正上),所有投影的偏移朝同一侧。禁止某一组件「为了好看」改成居中扩散。
  • 内发光、描边光留给选中、错误、焦点,不要当作比投影更高的一层。
  • 新组件入库时用一张叠图:把它的影子箭头画进现有页面的箭头旁边,方向不一致就不收。
  • 验证:在一页上给每个投影画一条从对象中心指向影子最深处的箭头。箭头簇的张角若明显大于一小束,改偏移直到簇重新收拢,再请人按高度排序这些对象。排序仍乱,再查是不是有自发光混进了投影体系,而不是继续把某一块的影子加深。

延伸

  • 同组F3.06.1 阴影表达元素的层叠关系 · F3.06.3 深色背景下阴影几乎不可见
  • 相邻F7.07.2 一致的空间模型降低导航困惑 · F5.08.1 深色下用表面明度而非阴影表达高度 · E4.16 浮层堆叠与退出
  • 站内检索light source · elevation · cast shadow · z-depth

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/F3.06.2