2009年8月10日 星期一

[解答]dpi和滑鼠速度到底有什麼關係?

目前大家很多都採用了高DPI和可調DPI的鼠標,也有很多玩家仍在使用400DPI的鼠標,那麼隨著大尺寸高分辨率的顯示器逐漸進入到大家的生活中,對於鼠標的DPI的需求,大部分人傾向於兩種觀點:A,高分辨率的大尺寸LCD上,應該同步使用高DPI的鼠標,移動和定位會更好。 或者: B:即使是高分辨率的大尺寸LCD上,使用400DPI的鼠標,把鼠標速度提高了,一樣可以取得良好的移動。這兩種觀點到底對不對?包括壇友Trojan的那個帖子引發的爭論到底誰正確,現在就讓我們把DPI和WINDOWS鼠標速度這兩個參數的效果差異來形象地表現出來: 首先,我們來說明DPI是什麼? DPI DOT PER INCH指的是鼠標移動一英吋,對應鼠標可以向系統反饋多少個點的數據。 一般說400DPI,假設鼠標在WINDOWS默認的速度下,每反饋一個點的數據,都對樣屏幕上的一個像素。就是說每移動一英吋,鼠標會像系統反饋400個點的數據,如果你使用的桌面分辨率是800*600,那麼你的鼠標只需要在鼠標墊上移動2英吋=5.08CM,你的光標就可以從屏幕橫向的一端移動到另一端(800個像素點),對於其他分辨率也相同。 那麼400DPI和800DPI在同樣分辨率下到底有什麼區別呢? 假如仍以800*600的分辨率和WINDOWS默認鼠標速度為基礎,400DPI鼠標移動一英吋的同時,反饋給系統400個點的數據,光標可以橫向移動半個屏幕的距離。而800DPI的鼠標移動一英吋,反饋給系統800個點的數據,光標可以橫向移動一個屏幕的距離。特別注意:在這兩種情況下,在橫向移動的過程中,屏幕光標的行走路線上的每一個點都可以被定位到,只要你的手可以精細地控制鼠標,理論上你可以移動到屏幕上任何一個點。也就是說,高DPI的鼠標雖然使你鼠標移動更少的距離就可以換來光標的大範圍移動,但這種類似「加快光標移動速度」的過程中,沒有犧牲你的定位精度,你仍然可以定位到屏幕上的任何一個點,只要你能精細地控制自己的手! 為了與後續的鼠標速度調整帶來的差別來進行對比,我使用自己的518鼠標,分別在400DPI, 800DPI,1800DPI狀態下進行測試:
測試的方法是採用WINDOWS自帶的畫圖軟件,在同樣的鼠標移動速度情況下(SETPOINT軟件左起第5格),採用劃斜線的方式來看三種DPI的區別(為避免XP SP2系統存在的誤差,不要選中「提高指針精確度」選項),結果可以看出400DPI, 800DPI和1800DPI都可以實現精細的移動,見下圖,從上到下的三條曲線分別是 400DPI 800DPI 和 1800DPI, 三者沒有什麼區別:

比較完不同DPI對鼠標定位的影響,我們來看不同的鼠標速度對定位的影響。 從理論上來說,鼠標速度是這樣的一個參數,就是系統對於從鼠標反饋回來的一個像素點的移動,會定義成屏幕光標的多大距離的移動。仍然用400DPI的鼠標來距離,當採用WINDOWS默認鼠標速度時(假設此時對於鼠標反饋的每一個點,系統都會對應屏幕上的一個像素),那麼當鼠標反饋從第一個點的數據到第400個點的數據返回時,對應系統會定義光標在屏幕上同樣移動400個像素,即從第1個像素開始,一直到第2,3,4,.....400個像素。 這時想在800*600的分辨率下橫向從一端移動到另外一段,需要移動鼠標2英吋=5.08CM的距離。 如果我們將鼠標速度提高一倍,這時系統對於鼠標反饋回的每一個點的移動,會要求光標相應移動2倍的距離,也就是移動2個像素,如果仍然是400DPI的鼠標,當鼠標移動一英吋並反饋回400個點的數據時,系統會要求對應屏幕光標要移動400*2=800個像素的距離,也就是說鼠標移動1英吋,光標移動800個像素,就可以在800*600分辨率下由屏幕橫向的一端移動到令一端,注意:這貌似是和你在默認鼠標速度下使用800DPI的鼠標是一樣的效果,但是你要知道,在使用400DPI鼠標並加倍鼠標速度時,光標在屏幕上是從第1個像素開始,一直到第3,5,7,9,...... 799個像素,是一種跳躍式的移動,也就是說對於屏幕上一半的像素點來說,你在移動過程中根本不能定位到它們身上!! 為了讓大家有直觀的概念,我們繼續採用上面的辦法進行測試,這次測試中,我們固定400DPI不變,分別將鼠標速度調整為第1格,第5格和第11格,如下:

來看下面的結果,從上到下3條曲線分別對應由低到高的三種鼠標速度:
我們發現在將鼠標速度調高後,光標的移動是跳躍型的,也就是說光標無法定位於路線上的每一個點,這樣的結果在一些要求精確定位的應用中,無疑是致命的~! 看到了這樣的結果,那些朋友還會堅持說自己400DPI的老鼠調高了速度就一樣可以使用在高分辨率下了嗎?? 由於3樓我沒有搶到:mm4: ,所以在這裡做總結:1,低DPI調高鼠標速度,是不能取得和高DPI鼠標相同的定位效果的!2,調高鼠標速度,是以犧牲光標定位精確度為代價的,在輕微提高鼠標速度時,這種現象可能不很明顯,但是一旦將鼠標速度調到非常高,那麼就會嚴重影響定位,CS裡你會發現自己總是無法準確瞄準~以上 各位朋友是否明白DPI和鼠標速度之間的差異了 8-20日,感謝並借鑒 脫韁野狗 壇友的分享的資料,WINDOWS裡鼠標速度格數和鼠標速度關係的比例如下(歡迎大家考證):

對應拖動條值 1 2 3 4 5 6 7 8 9 10 11 MouseSensitivity 1 2 4 6 8 10 12 14 16 18 20 M值大小 0.03125 0.0625 0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 貌似遊戲裡光標速度的計算方法=鼠標DPI*WINDOWS鼠標速度(M值)*遊戲裡SENSITIVITY值。 比如400DPI的鼠標在800*600的分辨率下如果想保證移動一英吋就劃過一個屏幕的距離,那麼也就是 800個像素(橫向一個屏幕)=400D/I * M值* SENSITIVITY值 如果WINDOWS裡鼠標速度放在第6格的話,對應的M值是1,那麼遊戲裡的SENSITIVITY需要設定為2,才可以實現這種移動~ 這個計算是否準確,取決與CS裡的SENSITIVITY對光標速度的計算曲線是不是斜率不變的,歡迎大家用實踐來證實一下這正計算是否正確。如果上述的數據準確的話,那麼建議大家都將鼠標速度選在6格或以下,SENSITIVITY設為1,對於速度慢的可以提高DPI來改善,這樣應該可以確保定位到遊戲裡的每一個像素點了~~

沒有留言:

張貼留言