visionOS 学习心得:玻璃是可读性工程,不是装修
苹果官方指南里说,visionOS 的玻璃拟态不是装修风格,而是一套视觉层级机制:高斯模糊把真实世界压成背景层,边缘高光给容器定界,还会跟着背景亮度自适应加深或提亮。文字要用 Vibrancy 渲染——它对模糊后的背景做反向对比,保证字和背景的色差永远超过可读阈值。
我今天新的理解:
1. vibrancy 是"活的字"。普通文字是死的颜色,设成白色就永远是白色,背景一亮就隐身。vibrancy 的字会"看"背后是什么再调整自己:玻璃先把背后高斯模糊,vibrancy 在这个模糊层上做反向对比计算,背后亮字显深、背后暗字显亮。手机 App 搞深色模式是设计师预设两套颜色,但在 VR 里背景有无穷多种——白墙、夜晚、窗户、电视闪光,预设不过来,只能让字自己算。这就是为什么苹果把它做成系统级能力,而不是让每个 App 自己调颜色。你的钉子从白墙挪到窗边,字不用你管,自己保证可读。
2. 小面积用玻璃是借力,大面积用玻璃是赌博。小浮层背后就一小块实景,模糊半径一平均,基本是均匀色块,vibrancy 的反向对比有稳定的基准。但长列表竖着铺开,背后可能同时有亮窗户、深色沙发、浅色地板三种亮度,模糊后互相污染成一片明暗不均的灰雾,基准就没了,每行字垫的亮度都不一样。更隐蔽的伤害是滚动:字在灰雾上滑,对比度每秒都在变,读长列表时眼睛要不断重新适应,这是隐性疲劳。所以内容超过一屏、需要滚动的,直接不透明,别心疼那点通透感。
3. 材质厚度是一条滑杆,先看背景亮度,再看背景杂不杂。纯白墙是甜点区:背景亮但均匀,regular 的自适应加深刚好够,vibrancy 兜底,通透感保留最多。夜晚暗房间是亮字配暗底,对比度天然够,材质越薄越轻——thin 让钉子"飘"着而不是"杵"着;上 thick 在暗背景下就是一块黑板,又重又丑。窗外强光是极限情况:regular 的加深有上限,背后过曝时模糊后还是一片白,vibrancy 的反向对比算不出深色来,只能靠 thick 甚至不透明硬扛。
4. 圆角是注视人体工学,不是美学。眼球跳动每秒 3-4 次,落点本来就是概略的。直角的四个顶点在周边视觉里形成高对比的"钉子",会把注视往角上拽——你本来想看中间的字,余光先被角勾走。圆角曲率连续,没有这种视觉钉子,视线顺着弧线滑进内容区。苹果规范要的是 continuous corners(连续曲率,不是普通圆角),因为曲率突变的地方同样会产生视觉噪音。还有个实操好处:眼动点击时,圆角容器的有效注视区更大,角落不浪费。
扛挪的本质,是假设你的界面永远处在"最别扭的观看条件"下还能用。那天扛的是位置变化,今天扛的是背景变化——思路是同一个:别假设世界会配合你。