知乎用户 阅读原文 常见并且有趣的问题! 直接给结论:鼠标垫表面的处理(更粗糙)更容易被传感器识别。 简化理解:鼠标传感器会给工作的表面不停拍照,前一张照片和后一张照片有区别了就判定为移动。如果没有区别,传感器就傻了,以为还在原地。 在光滑表面上操作,因为前一张照片和后一张照片太像了,传感器就无法做出正确的移动判断,例如玻璃或是光滑的金属表面。但如果是有明显纹理的表面,例如书本、布面,传感器一拍照发现前后照片差距非常大,就知道要移动了。 具体说说看? 原理其实非常简单,发光二极管通过透镜打亮鼠标底部,光线经透镜返射回来被 CMOS 捕捉,现在好的鼠标传感器每秒的速率可以达到上万次。 激光鼠标工作原理,激光鼠标其实就是光学鼠标的子类(图片来源:Internal Structure of an ADNS-9800 Laser Mouse Sensor) 重点来了,只有当鼠标的工作表面有一定纹理时,光照才能产生阴影,这个阴影变为数字信号后接下来会被 DSP (Digital Signal Processing)芯片不停计算反射回来的前后数据之差,通过计算差别来实现 X 轴与 Y 轴移动变化,最后变成了 CPI(Counts Per Inch)[1]数据给到电脑。 图片来源: Branch Education 这个差别其实就是移动中照射阴影前后的变化。 平滑表面的移动前后变化不大(不粗糙太平滑就没有阴影了),传感器都无法正常计算出照射前后产生的数据之差。抑或是图案颜色降低了光线反射或者太透的表面(玻璃)光线根本无法反射回去,也就工作不了。 PS:光学鼠标传感器的原理和平常见到的光学指纹识别的原理是一样的。如果手机用的是光学指纹解锁的朋友,仔细观察就会发现,当你的手指放在指定识别的屏幕区域时,会亮起一道强光把手指照亮。 图片来源: Branch Education 图片来源: Branch Education 图片来源: Branch Education 一些常见的问题: Q:抬起鼠标时,传感器咋还能工作? A:鼠标垫传感器有一个正常的工作高度范围(光打出去并且能正常反射回来),也就是常说的静默距离 LOD(Lift Of Distance)高度。一般鼠标设定在 2mm~3mm 之间,超过了也许还能反射回去,但传感器并不承认这个返回数据,因为会失真。现在的游戏鼠标通过驱动可以更改 LOD 高度,为什么游戏鼠标允许更改 LOD 高度了?因为,不同游戏和不同操作者对抬鼠标的高度需求都不一样,当然一般也只有所谓高玩才注意这些。(我从来没改过,都是默认) Q:为什么我的鼠标能在玻璃上用啊? A:因为玻璃也是千千万万,不同的玻璃,工艺不一样,材质不一样,也许反射率高,我也不太懂,反正有些玻璃上鼠标确实能断断续续的用。现在所谓的专业玻璃鼠标垫,其实并不是玻璃垫,只是在布垫的基础上结合了塑料、玻璃、纤维等复合材料。如果是一整块真玻璃,表面也会进行处理(雾化磨砂,降低穿透,提升反射并更容易让 DSP 识别出前后阴影差)。我强烈反对玻璃鼠标垫,都是商家搞出的噱头。 Q:玻璃下面垫张纸能正常操作吗? A:评论区非常多的朋友在好奇这个问题。理论上当然可以,但有很多的限制条件,例如,这个玻璃必须薄(在 LOD 的工作范围内,一般不能超过 3mm),再就是玻璃要绝对透,如果光线被折射了那就不能正常工作啦,再其次垫的那种张纸最好是不透的纯黑色等等。现实中没有什么玻璃是又透又薄的。 在 Rtings 的鼠标板块数据库中,266 款主流鼠标中只有不到 20 款能够在玻璃上正常使用,这些能在玻璃上工作的鼠标基本都是较特殊的轨迹球或高端办公鼠标。 图片来源:Rtings 关于鼠标光学传感器: 原相科技鼠标光学传感器列表 Mouse Guide 整理的主流传感器列表 本文图片来源:Branch Education;对视频《How does a Mouse know when you move it? || How Does a Computer Mouse Work?》进行一定引用参考。[2] 阅读原文