外设天下 - 电脑外设发烧友聚集地

12下一页
我的人缘0

[讨论] 关于鼠标移动速度 我有疑问

13 27994
楼主
跳转到指定楼层
0.03125
0.0625
0.25
0.5
0.75
1.
1.5
2.
2.5
3.
3.5



以前用的是1000DPI鼠标 速度11/11
那不是相当于3500DPI了么
最近用的狂蛇1800DPI都感觉更快了 3500简直像飞一样
感觉11/11差不多是2倍都没有的
0
已赞
微信分享 收藏
回复

使用道具 举报

我的人缘0
2
发表于 2010-9-14 19:04 只看该作者
...WINDOWS 1 以上的就是插值来的速度了...
回复 支持 反对

使用道具 举报

我的人缘0
3
发表于 2010-9-14 22:53 只看该作者
自己顶,来高手解惑吧
回复 支持 反对

使用道具 举报

我的人缘0
4
发表于 2010-9-14 23:30 只看该作者
本帖最后由 xmiangui 于 2010-9-15 01:28 编辑

我来解答下,因为狂蛇回报的数据包和你1000DPI回报的数据包不一样(回报率Hz的差异以及Razer 16bit数据线的差异),两者设置的回报速率也不一样。所以两者鼠标的位移不可简单的用DPI的对比来判别。

有兴趣的朋友可以阅读以下2文,看明白的话就知道怎么回事了:

windows鼠标,物理位移与屏幕位移的计算方法(鼠标加速度)
http://blog.csdn.net/liuweili_lwl/archive/2006/04/12/660868.aspx

Pointer Ballistics for Windows XP
http://www.microsoft.com/whdc/archive/pointer-bal.mspx

我下面准备写个尽量简单易懂的帖子(上面两篇文章一遍就能看懂的牛人请接受我的崇拜),不过我的水平有限,如有疑问请还以上面两篇文章为准(尤其是以微软的那篇技术文档为准)。
回复 支持 反对

使用道具 举报

我的人缘0
5
发表于 2010-9-14 23:34 只看该作者
超过6/11就是相当于双飞燕的加速插件,差值。跳跃像素、牺牲定位达到所谓的加速,实际已经不如山寨鼠标了。。。
回复 支持 反对

使用道具 举报

我的人缘0
6
发表于 2010-9-14 23:35 只看该作者
自己慢慢试呗
回复 支持 反对

使用道具 举报

我的人缘0
7
发表于 2010-9-14 23:36 只看该作者
本帖最后由 xmiangui 于 2010-9-15 01:30 编辑

我在上面那2篇文章(尤其请以微软的那篇技术文档为准)的基础上写的。


先来解释LZ给出的“0.03125、0.0625、0.25、0.5、0.75、1、1.5、2、2.5、3、3.5”这串数字到底是什么东西。

鼠标在屏幕上的位移(Vpoint)与鼠标回报的物理位移(Vmouse)的公式是:
Vpointer=interger(F1(Vmouse)×(Vmouse+Rn-1)×M)

当然这个公式太复杂,首先简化一下:

  • interger()取整,因为屏幕上的位移,最小是1个像素。我们这里先不用关心这个。
    换行ing
  • Rn-1,上一个鼠标位移中取整下来的小数,代入本次计算中。因为我们不关心取整的问题,所以这个也不关心。
    换行ing
  • F1(Vmouse)这个就是勾选“提高指针精确度”这个选项以后的“加速度”。实际上并不是真正意义上的加速度,其实是一个关于速度的分段函数。当然大家理解成加速度也没错,这里不讨论此问题,有兴趣的请参阅我上面的链接。
    一般来说我们用游戏鼠标的时候这个选项是关闭的,这个直接舍去。

简化后的公式就是:
Vpointer = Vmouse X M

超简单吧:指针速度 = 鼠标回报的物理位移速度 X M

再看这串数字:“0.03125、0.0625、0.25、0.5、0.75、1、1.5、2、2.5、3、3.5”
这串数字实际上就是公式中的M值。因为鼠标屏幕位移和回报的物理位移是线性关系,斜率(乘数)为M,所以这串数字也可以当作计算DPI的参数。

这里举个例子,同一只鼠标的情况:

  • 比如我有一支狂蛇,我设置为450DPI。假设鼠标回报的物理位移Vmouse也是450(假设,不一定是这个值)。那么当Windows鼠标速度设置为6/11(M值为1),那么屏幕上就移动了450个像素。
    换行ing
  • 然后我把狂蛇设置为1800DPI,同样假设这种情况下Vmouse为1800。那么当Windows鼠标速度设置为3/11(M值为0.25),那么屏幕上也是移动450个像素,此时相当于狂蛇仍然是450的DPI。这种情况就是所谓的Windows鼠标速度3/11相当于DPI处以4了。

理想情况下的结论:M值可以直接用来换算DPI。如果此时将狂蛇的DPI设置为450,那么11/11的速度下,相当于把狂蛇插值到450 X 3.5 = 1575DPI

但是这一切有一个前提,也就是鼠标回报的物理位移Vmouse,必须和DPI也是线性关系。

什么意思?要满足直接用M值带入DPI计算的话,上列中的1800DPI狂蛇回报的Vmouse,必须是450DPI狂蛇回报的Vmouse的4倍。同一只狂蛇鼠标当然没问题。但是LZ的情况是2只不同鼠标之间的DPI换算,情况就复杂了。

其实到这里已经可以初步下结论:由于不同鼠标即使同DPI,回报的Vmouse是不同的。所以更不要说拿一只1000DPI的鼠标,将Windows鼠标速度设为11/11,和拿一只3500DPI狂蛇,将Windows鼠标速度设为6/11,两者的指针速度会是一样的。

用Windows鼠标速度(M值)来换算DPI,仅限于相同的鼠标。
回复 支持 反对

使用道具 举报

我的人缘0
8
发表于 2010-9-14 23:44 只看该作者
测试
本帖最后由 xmiangui 于 2010-9-15 01:32 编辑

然后我们来看Vmouse这个东西,因为他表示的是“鼠标回报给计算机的物理位移速度”,所以并不是直接 = DPI。我上面举的例子中,450DPI的狂蛇取Vmouse = 450只是方便理解罢了。

Vmouse的公式如下:
关于鼠标移动速度 我有疑问

  • mickey就是鼠标回报给计算机中的一个数据包包涵的位移数量,比如说一般鼠标是8bit的数据线,回报的一个数据包就是8bit带符号整数,也就是-128到+127,学过计算机的应该很熟悉吧。

    当然现在这么说已经不绝对了,很多游戏鼠标现在都已经是16bit的数据线,回报的就是16bit数据,-32768到+32767(哇~)。

    貌似我第一次接触16bit这个概念是金环蛇,不知道这个风潮是不是Razer带起来的。可能不是,因为随着鼠标传感器性能的提高,回报率(125Hz)、回报数据包(8bit)的提高是必然的,其实谁先用后用无所谓。
    换行ing
  • BusUpdateRate就是鼠标连接计算机的总线回报率。这个大家很熟悉吧,常用的有125Hz(USB 1.1标准)、500Hz、1000Hz(USB 2.0最大支持回报率)。
    换行ing
  • Pointer Resolution就是鼠标的DPI(CPI、分辨率、随便你叫什么)。

Vmouse与你手的实际移动速度的比率,还取决于以上3个鼠标参数。

不同的鼠标这三者可能是不同的,所以LZ试验的1000DPI的鼠标,其回报的Vmouse并非3500DPI的狂蛇的Vmouse的1/3.5。
那么即使把Windows鼠标速度(M值)提高为3.5,也无法得到和6/11鼠标速度下,3500DPI狂蛇的移动效果。


PS.
个人猜测(随便猜的啊~):为什么LZ说狂蛇3500DPI,比那个1000DPI的鼠标设3.5的M值快得多?
我猜最大的可能性是1000DPI的鼠标回报的数据包是8bit长度的。
回复 支持 反对

使用道具 举报

我的人缘0
9
发表于 2010-9-15 00:16 只看该作者
本帖最后由 xmiangui 于 2010-9-15 18:50 编辑

顺便写点补遗,帮助更好的理解上面的公式:


问题:Vmouse公式中DPI是分母,回报率是分子。那么是不是DPI越高,Vmouse速度越慢,回报率越高,Vmouse越快?但直觉上的感受是,DPI越高,速度越快;而回报率对速度的影响不大。

不知道有人看了我的文章有没有想到这个问题。哈哈,当初我看鼠标公式的时候,最不理解的就是这个了。不过现在已经想通了,我来解释一下。

首先Vmouse是速度,学过物理的都知道:速度 =位移 / 时间。
我们再看上面的公式:
关于鼠标移动速度 我有疑问
首先分子部分mickey X BusUpdateRate,mickey是一个数据包中的回报的鼠标位移量Count,显然属于位移的范畴。但是BusUpdateRate是回报率,属于频率,和位移没有关系。

再看分母部分PointerResolution是鼠标分辨率(CPI、DPI),这更和时间量没有关系了。

到这里其实可能已经有人发现了,其实Vmouse公式是为了方便带入鼠标参数计算,做过变形的速度函数。我们现在把它还原为标准的速度 =
位移 / 时间函数。

首先再看BusUpdateRate回报率,其单位是Hz,类型是频率。如果还没把物理全还给老师的话,还记得频率和时间的关系吗?对!频率是周期的倒数,而周期,就是时间(单位秒)。比如125Hz的周期就是8毫秒,而现在比较热门的1000Hz单位就是1毫秒了,相信鼠标宣传中大家已经很眼熟了吧!

这样,BusUpdateRate的倒数就成了分母,而且是时间量,这时候公式就变成了这样:

这时候,公式就比较清楚了:
关于鼠标移动速度 我有疑问
分子是位移,等于mickey/PointerResolution。比如400DPI的鼠标移动了1/4英寸,回报100个Count(mickey),100处以400DPI恰好结果就是1/4英寸。

分母是时间,等于回报率的倒数,表示发生位移所用的时间。比如125Hz的USB回报率就是8ms内鼠标的位移,1000Hz的回报率是1ms内的鼠标位移。

好,现在回答一开始的问题:

1、DPI越高,为什么不会导致公式中的Vmouse变慢?
A:DPI越高,单位时间内回报的mickey就越高。
比如我的鼠标是125Hz,400DPI,在8ms内我手移动了0.1英寸,那么mickey就回报了40个Count的位移,处以400DPI,位移刚好等于0.1英寸。
假如我换用一个125Hz,1000DPI的鼠标,同样8ms内移动0.1英寸,mickey就会回报100个Count的位移,处以1000DPI,还是0.1英寸。
没错,发现了吧,DPI和mickey是同比增长的。只要鼠标以相同的速度移动,DPI增加,mickey也会等比增加,所以速度不变。

2、回报率越高,为什么不会导致公式中的Vmouse变快?
A:回报率高了以后,每次回报的mickey就越少。
和上面同样举个例子,125Hz,400DPI,在8ms内移动了0.1英寸。mickey一次回报40个Count的位移,分母处以8ms,速度为每1ms有5个Count(0.0125英寸).。
然后我再换个回报率,1000Hz,400DPI,同样8ms内移动了0.1英寸,等于1ms内移动了0.0125英寸。此时mickey一次回报5个Count。怎么样,一样了吧!由于此时分母已经是1ms了,所以得到的结果为1ms有5个Count(0.0125英寸)
这里就很清楚了,回报率提高其实只是提高了计算机对鼠标数据包的采样频率,样本本身的速度是没有发生变化的。


Vmouse其实是速度,其单位是in/s(英寸每秒)也叫ips。是不是很眼熟?很遗憾,这个ips和鼠标传感器的ips是不一样的。

鼠标传感器最大ips:表示传感器CMOS成像之后,DSP能处理的最大鼠标位移速度,单位in/s。

操作系统的Vmouse:表示鼠标回报给操作系统的数据包,所能达到的最大的ips。

关于Vmouse鼠标速度的计算,我之前转贴的一篇帖子中也有详细的计算:

[转][技术贴]Heagle对鼠标的一点见解
http://www.pcwaishe.cn/viewthread.php?tid=115822

第二楼就是计算速度以及最大ips。
回复 支持 反对

使用道具 举报

我的人缘0
10
发表于 2010-9-15 00:17 只看该作者
测试
膜拜楼上人才。
回复 支持 反对

使用道具 举报

12下一页
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则