现在的问题似乎是高DPI*低移动速度?=低DPI*高移动速度。
其实这二者还真的是不一样,但这种不一样也许因为软件的处理而又变得一样或者仍然不一样。
我看到你们这么愉快的死逼所以又进一步的思考了一下DPI的概念。本来写了很多但怕大家懒得看所以,精简了。直说一些简单的分析和结论。
理论派认为DPI是比例。其实DPI的倒数也是有实际意义的,这个倒数表示鼠标可感知的物理移动量。因为只有高于这个移动量鼠标才会计算出大于一个像素点的逻辑移动量,低于一个像素点的移动量鼠标会忽略。也就是低于1/DPI的物理移动量鼠标是识别不了的。为了更进一步的认识,我们不能把物理世界看成连续的而应该看成是离散的,DPI的倒数就是对连续的物理世界进行离散化的间隔。很显然离散化的间隔越低越精细。
所以,可以看出DPI越高同样带来最小可感知移动量也就越低。看似好像实践派完胜了,但你计算一下就会发现哪怕是100DPI这个最低可感知移动量也是很低很低的,16000DPI可以感知微米级的已移动。
假如你把鼠标调到16000,系统放在第二格,这表示的意思鼠标产生16个像素点的移动量Windows才会移动一个像素。如果鼠标传过来的移动量不是16的倍数,也就是存在一个少于16个像素的移动量,那么剩下少于16个像素的移动量怎么办???Windows的处理方式可能是:每隔一段时间扫描一下usb buff中的数据,然后把这移动量除以16取整。取整,取整,取整!重要事说三遍。所以,本来可以感知更低移动量的高DPI优势荡然无存。假如,你真的移动15/DPI,鼠标的确感知到了,并把数据传给了计算机,计算机根本就不会理睬的。
但我上面的分析还是会留下把柄的。假如移动了15/DPI,以后,计算机还没来得及扫描这个usb buff,在计算机下一次扫描之前你又移动了,那么,这个时候就会继续追加移动量从而超过16。哇!是不是以为这样更精细了!毛!因为这里已经产生了1/1000DPI的移动量了。这和1000DPI可感知的效果完全一样。
那么,调高DPI低放大倍数有没有危害,答案却是肯定
假如鼠标设置了比较高的回报率1000Hz,DPI16000 ,系统放在第二格。再假设你移动的不快,保证每一个像素的移动都是因为得到鼠标回报的偏移量后刷新的。你想要移动1000个像素意味着需要回报16000次,而如果是1to1的只要回报1000次就OK了。反过来,Windows认为鼠标的回报率不是1000而是1000/16。得不偿失啊!
所以,理论上,设置鼠标最好是实际表现DPI尽量和鼠标设置的DPI要一致。也就是1to1,如果做不到那就让实际表现的DPI低于鼠标设置的DPI,这样就一定不会出现鼠标点不到的像素。
有没有一种可能某个游戏跳过系统提供的鼠标位移数据而直接获取鼠标位移数据。并且采用另外一种处理方式呢??
答案是肯定的,那么如何验证有没有跳过系统而直接采用独立处理方式呢?很简单你调一下系统的鼠标灵敏度,如果游戏也发生变化了那么说明这个游戏是从系统提取鼠标移动量信息的。如果没有变化那么游戏有自己的一种处理方式。
这里由于本人不玩游戏所以,具体的也没有探究过。
说了精简不知不觉有一堆废话。也不知道有没有人看。
其实这二者还真的是不一样,但这种不一样也许因为软件的处理而又变得一样或者仍然不一样。
我看到你们这么愉快的死逼所以又进一步的思考了一下DPI的概念。本来写了很多但怕大家懒得看所以,精简了。直说一些简单的分析和结论。
理论派认为DPI是比例。其实DPI的倒数也是有实际意义的,这个倒数表示鼠标可感知的物理移动量。因为只有高于这个移动量鼠标才会计算出大于一个像素点的逻辑移动量,低于一个像素点的移动量鼠标会忽略。也就是低于1/DPI的物理移动量鼠标是识别不了的。为了更进一步的认识,我们不能把物理世界看成连续的而应该看成是离散的,DPI的倒数就是对连续的物理世界进行离散化的间隔。很显然离散化的间隔越低越精细。
所以,可以看出DPI越高同样带来最小可感知移动量也就越低。看似好像实践派完胜了,但你计算一下就会发现哪怕是100DPI这个最低可感知移动量也是很低很低的,16000DPI可以感知微米级的已移动。
假如你把鼠标调到16000,系统放在第二格,这表示的意思鼠标产生16个像素点的移动量Windows才会移动一个像素。如果鼠标传过来的移动量不是16的倍数,也就是存在一个少于16个像素的移动量,那么剩下少于16个像素的移动量怎么办???Windows的处理方式可能是:每隔一段时间扫描一下usb buff中的数据,然后把这移动量除以16取整。取整,取整,取整!重要事说三遍。所以,本来可以感知更低移动量的高DPI优势荡然无存。假如,你真的移动15/DPI,鼠标的确感知到了,并把数据传给了计算机,计算机根本就不会理睬的。
但我上面的分析还是会留下把柄的。假如移动了15/DPI,以后,计算机还没来得及扫描这个usb buff,在计算机下一次扫描之前你又移动了,那么,这个时候就会继续追加移动量从而超过16。哇!是不是以为这样更精细了!毛!因为这里已经产生了1/1000DPI的移动量了。这和1000DPI可感知的效果完全一样。
那么,调高DPI低放大倍数有没有危害,答案却是肯定
假如鼠标设置了比较高的回报率1000Hz,DPI16000 ,系统放在第二格。再假设你移动的不快,保证每一个像素的移动都是因为得到鼠标回报的偏移量后刷新的。你想要移动1000个像素意味着需要回报16000次,而如果是1to1的只要回报1000次就OK了。反过来,Windows认为鼠标的回报率不是1000而是1000/16。得不偿失啊!
所以,理论上,设置鼠标最好是实际表现DPI尽量和鼠标设置的DPI要一致。也就是1to1,如果做不到那就让实际表现的DPI低于鼠标设置的DPI,这样就一定不会出现鼠标点不到的像素。
有没有一种可能某个游戏跳过系统提供的鼠标位移数据而直接获取鼠标位移数据。并且采用另外一种处理方式呢??
答案是肯定的,那么如何验证有没有跳过系统而直接采用独立处理方式呢?很简单你调一下系统的鼠标灵敏度,如果游戏也发生变化了那么说明这个游戏是从系统提取鼠标移动量信息的。如果没有变化那么游戏有自己的一种处理方式。
这里由于本人不玩游戏所以,具体的也没有探究过。
说了精简不知不觉有一堆废话。也不知道有没有人看。