にゅるうんぽの扉

毎日をにゅるにゅるに...

マウスのDPIとポーリングレートの話

 ちゃんとした話ではなく、ただの雑記ということで。

 

 ツイッターでとある話題を目にして気になったので考えてみる。

 話題というのは、最近流行りの高ポーリングレートのマウスを使う時には高DPIにした方が良いんじゃないかって話。これはよく目にする。

 

※ 2024/4/12、応答速度や参考動画について追記

 

  • 前置き、ポーリングレートの話

 数年前まで諸々のスペックの影響もあって1khz以下のポーリングレートが主流だったが、今年になってから無線4khzがめっちゃ出てきてる。

 ポーリングレートとはマウスからPCに情報を送る頻度、一秒間に何回信号を送るかという意味。つまり高いと高速かつ正確になるということ。

 

 それなら、レートが高ければええやん。ってなるが、デメリットもある。

 まず、そもそもソフトウェア側が対応してるかという話。

どうやら大抵のゲームでは2khz、valorantでは8khzも対応している。らしい。

(valorantではゲーム内設定のローインプットバッファをONにすることで対応)

*参考 Razer Viper 8k Hz 対応状況 | Razer - For Gamers. By Gamers™ | JAPAN

 くわえて、通信頻度が上がればその情報を処理する頻度も上がるのでPCの処理に負荷がかかる。

最新のハイエンドのCPUなら負荷に耐えれるってことで高ポーリングレートが流行ってるという背景もあると思う。

つまり、マウスの価格含め、諸々のコストがかかる。

 

 んで、実際に自分で使ってみたら8khzだとゲーム内fpsがめっちゃ下がった。

 1khzでよくね?って結論になったが、800dpiだったのでそれが悪いのか?と分からなくなってしまったので考察する。

 

 

  • 本題、DPIが高いと良いのか。

 さて、高ポーリングレート対応のマウスを使う時には高DPIにした方が良いんじゃないかって話だが、

どうやら高ポーリングレートに設定、例えば4khzにしてもそれは上限の設定であり、

常に4khzで通信しているのではない。ということらしい。

それもそうだ。

マウス移動の検知を4khzで行い、移動を検知したら信号を送る。

こんな感じ。

 

 そこでDPIの話が出てくる。

dpiとはdots per inch。つまりセンサーの分解能。

400dpiなら 25.4mm/400dots=0.0635mmpd

つまり、カーソルを1ドット動かすには約0.06mmマウスを動かす。

 

 ということは、ポーリングレート1khzの場合、

1msの間に約0.06mm以上の移動があれば信号を送る。

移動がなければ信号を送らない。となってるのでは?と解釈した。

 

 自分の体験としても、8khzのマウスを使ってるだけならfps200張り付きだったが、

マウスをブンブン振り回すとめちゃくちゃfpsが下がってカクついた。

移動を8khzの上限で検知して8khzの通信がされると僕のPCはムリムリカタツムリになるらしい。(描画がよわよわなのでその影響が大きいとは思う)

このことから移動が検知されなければ通信を控えるのであろうと思うわけだ。

 

 上記の解釈で進めると、

400dpi-1khzの場合、0.06mm/msという速度分解能であると言える。

400dpi-4khzの場合、0.015mm/ms。

分解能と言っても、ポーリングレートの上限値を保つために必要な速度という意味。

 

 イメージしてみると、理論値通りに4khzで更新したい場合、

400dpiでマウス移動を等速移動として、速度が1.5cm/sを上回れば良い。

振り向き20cm(マウスパッド半分くらい)ならば1秒かけてゲーム内で13.5°の視点移動(角速度13.5deg/sec)。

かなりゆっくりな動き。実際は初動や止めで出てくるくらいの速度かな。

特に気にしないでも実ポーリングレートは高めを維持してそうではある。

 

 本題に戻って、dpiを上げたらどうなる?

400dpi-1khz、0.06mm/msだったが、

1600dpi-1khz、0.015mm/ms。

1600dpi-4khz、0.00375mm/ms。

と、dpiを上げれば、よりゆっくりな動きでも4khzで更新できるようになる。

 

 ここで最新センサpixart3395は最大26000dpi→約0.001mmのセンサ分解能があるので問題ない。と書こうとしたが、

4khzでは更新が0.25msなので1600dpiでは更新毎に0.0009mmの移動を検知しようとしてないか?

つまり、0.25ms毎にセンサ精度の限界である0.001mm以上の移動があったかを確認し、

あれば移動距離を送信、なければ待機。そうなっているのではないかと。

とすればセンサの限界だし、1600-4kが一つの答えでいいんじゃないか。

 

といったところで満足したのでまとめましょう。

 

 

――――――と思ってた時期が僕にもありました。

追記です。

その後も色々調べていたら検証動画を見つけたので、応答速度とDPIの関係についても触れようかなと思いました。

 

まずはそのyoutubeのリンクを貼っときます。

見るなら一本目だけでもOK。

Why Gamers are Switching to High DPI - YouTube

50% Less Input Lag! Low DPI vs. High DPI Analysis - YouTube

 

上記の検証を一言でまとめると、

 マウスが完全に停止した状態からマウスを動かして、センサーが移動を検知し、ゲーム内の視点移動に反映されるまでの時間は、3200dpi以下の範囲において、dpiが高いほど短くなる。

また、マウスの移動速度が速いときにはその傾向は弱くなる。

らしい。この検証を信じるのであれば。

 

上で書いたようにセンサーが移動を検知するまでの距離が短くなるから応答速度が速くなるという解釈で問題なさそうだなと思う一方、2ms程度の違いが出ているので影響大きいんだなぁとも思った。

くわえて、1600→3200dpi間では頭打ちになって応答速度がほとんど変わらないらしい。ゲーム内感度の小数点以下の桁数もそんなに多くなく、3200dpiにすると感度の設定が面倒だなと思うので朗報だと思う。

 

といったところでもう結論がでてるかなと思うのでまとめます。

 

  • まとめ、

・ポーリングレートは常時上限値張り付きではない。

 

・下記以上のdpi設定にすることでポーリングレートを上限張り付きに近づけることができる。

1khz→6400dpi

2khz→3200dpi

4khz→1600dpi

8khz→800dpi

 

・dpiは高いほうが応答速度も速くなる。

 

 

  • ついでに、

 dpiの推奨値?的なものは分かったが、

そもそもポーリングレートの上限値を出すことが良いのか分からんのである。

むやみに更新頻度上げてPCに負荷かける方が遅延ありそうとかも思う。

 マウスが通信してくれる移動幅は分かったが、逆に加速度的な、更新毎の移動量の上限(1msに1m動かしても”1m動かした”と認識してくれない)がどれくらいか分からん。

 その加速度の観点からむやみにdpiを高くする→センサの限界値に挑むのは悪影響がありそうな気がするし、

高ポーリングレートの恩恵は加速度の面でありそうな気もした。

 ポーリングレートが高い事による応答速度の差はms以下の話になるが、マウス内部での処理遅延やソフトウェアの処理による遅延って相対的に大きそうに思う。

と上から下まで根拠ゼロ検証ゼロ思い込み百で書いたので、

そこらへんの検証があったら教えてください。

 

 

結論、

普段使いでちょうどいいから800dpiでいいや、

と思ってたけど1600dpiにしとけばよろしい。

マウスの処理速度、通信遅延の少なさが一番重要じゃねえのか?

いや、持ちやすさとクリック感そしてコストパフォーマンスが重要だ。