Описание ситуации

Начнем с того, что чем более низкий dpi вы используете, тем более низкую точность позиционирования курсора вы получаете. Почему так? Ответ читайте далее.

Например: если вы установите в настройках мыши 200 dpi и внутриигровую чувствительность равную 6, вы получите значительно меньшую точность позиционирования курсора, чем при настройках 8000 dpi с чувствительностью соответственно равной 0.15.

Почему чувствительность во втором случае равна 0.15? Это легко вычислить по формуле:
old_dpi / new_dpi * old_game_sens = new_game_sens

Наш случай:
200 dpi / 8000 dpi * 6 sens = 0.15 sens

Получим абсолютно одинаковую скорость мыши, при новых настройках dpi.

 

Устройства и настройки

Мышь: Logitech G102(203) «Prodigy»
Разрешение экрана: 1920x1080

Windows настройки для 200 dpi


Windows настройки для 8000 dpi

Настройки выше сделаны для того, чтобы добиться одинаковой скорости мыши в системе при 200 и 8000 dpi для более точного тестирования. Таким образом получается, что скорость мыши будет примерно одинаковой, но установленное разрешение сенсора при этом будет различным.

 

Множители скорости мыши в Windows

1/32 — 1/16 — 1/4 — 1/2 — 3/4 — 1 — 1½ — 2 — 2½ — 3 — 3½

Замечание: настройки скорости мыши Windows с недавнего времени не влияют на поведение мыши в Quake Champions, по видимому, в игру добавили поддержку Raw Input, включенную по умолчанию. Поэтому можете устанавливать ползунок так, как вам удобно.

 

Тест точности мыши

Вот что происходит на низких и высоких настройках dpi при перемещении курсора с одинаковой скоростью:

Тест точности мыши

На 200 dpi провести ровную линию невозможно, курсор дрожит и создает «лесенку», т.к. количества считываемых точек поверхности просто не достаточно, для точного позиционирования на таком разрешении.

Другое дело 8000 dpi — линия получается почти ровной, а небольшие неровности это, в основном, следствие естественного дрожания руки человека.

 

Вывод

Установка высоких значений dpi может помочь как в обычной работе, особенно если вы занимаетесь графикой, так и в играх, особенно в тех моментах, когда требуется точное наведение прицела. К примеру в Quake Champions, если вы стреляете из рейлгана на большую дистанцию, да еще и в узкий проход, то настройки с высоким dpi могут дать вам небольшое преимущество.

Кроме того есть еще один важный момент: чем выше разрешение экрана — тем больше будет заметна дрожь курсора мыши на низких dpi. Например на 4K разрешении монитора, курсор мыши, установленной на 200 dpi, будет при дрожании перескакивать на большее количество пикселей, чем при разрешении монитора FullHD.

В итоге получается, что смысла играть на низких настройках dpi, особенно в том случае, если вы можете позволить себе более высокие значения — просто нет. Это не только не дает никакого преимущества, но даже наоборот отнимает его. Разница, конечно, не столь значительная, особенно в таких быстрых играх вроде Quake Champions, где не требуется точной стрельбы на огромные расстояния, как например в Arma III, но все же эта разница есть.

Ставить высокие значения dpi нужно только до той степени, до которой их поддерживает ваш сенсор на нативном (родном) уровне, т.к. некоторые некачественные сенсоры не обладают возможностью считывания тех же 8000 точек на дюйм, а всего лишь аппроксимируют меньшие значения до более высоких показателей. Например, матрица сенсора поддерживает не более 400 dpi и при установке 1600 dpi это будет просто умноженная на 4 информация кадра в 400 dpi, а не честный кадр в разрешении 1600 dpi. На таких сенсорах установка высоких значений dpi бессмысленна.

Конечно, большинство профи играют на низких значениях, но это скорее дело старой привычки. Когда приходят новые технологии, старые привычки иногда приходится менять.

Дополнительная информация

CPI (DPI)

Аббревиатура CPI расшифровывается как counts per inch (считываний на дюйм), но пользователи обычно говорят о DPI – dots per inch (точек на дюйм). Это связано с тем, что на экране монитора отображаются «точки», в то время как сенсор в результате своей работе выдает «считывания». Поэтому разница между dpi и cpi состоит исключительно в названии, по факту эти понятия обозначают одно и то же.

Давайте заглянем в сенсор мыши. В нем есть светочувствительная матрица, которая состоит из пикселей и линза с заданным увеличением, через которую на сенсор попадает изображение поверхности. При этом на каждый пиксель матрицы проецируется небольшой участок поверхности. Длина этого участка является минимальным элементом, который может увидеть наша матрица. В этом случае, мы понимаем CPI как «сколько пикселей нашей матрицы помещается в одном дюйме поверхности». Это и есть оптическое или «нативное» разрешение нашей системы. И поверьте, это разрешение гораздо меньше тех цифр, которые заявляются производителями для своих устройств. Например у самых продвинутых сенсоров на данный момент размер матрицы составляет всего 32х32 пикселя (1024 точки), что явно меньше чем заявленные 8000 или 16000 dpi у некоторых производителей.

Как мы можем получить более высокое разрешение? Один из способов — разделение пикселей в нашей матрице на более мелкие фотоэлементы. Однако, в этом случае приходится повышать светочувствительность каждого элемента, что в свою очередь увеличивает уровень шумов на матрице. Постепенно увеличивая количество пикселей вы достигаете определенного предела, при котором информация, получаемая пикселем, не позволяет определить параметры движения мыши из-за плохого соотношения сигнал/шум.

 

Ripple

Это случайная ошибка сенсора, делающая выдаваемую сенсором траекторию движения дрожащей, волнистой, «нервной». Следует отметить, что слова ripple и jitter имеют одинаковый смысл. Внутри logitech используется термин ripple («рябь» – англ.), в то время как среди пользователей более популярным является jitter («дрожание»).

Различают высокочастотный и низкочастотный jitter.

 

Важно понимать, что проблема jitter'a непосредственно связана с разрешением сенсора (dpi/cpi). И это вполне естественно. Чем больше вы поднимаете dpi, тем больше вы получаете ошибок. Приближаясь к шумовому порогу сенсора, система перестает понимать, какой сигнал представляет собой настоящее движение, а какой просто является случайным шумом на матрице.

Как на очень высоких так и на очень низких dpi есть свои слабые стороны в определении шумов. Поэтому настраивать dpi/cpi следует на промежуточные значения.

 

Angle Error

Выделяют три вида угловой ошибки сенсора: общая угловая ошибка, ошибка «3-сигма» и т. н. «угловая привязка».

Общая угловая ошибка  это систематическое отклонение угла, определяемого сенсором, от реального угла, под которым осуществляется движение мыши. При этом пользователей, как правило, этот вид ошибки не слишком беспокоит (если только она не слишком велика), они естественным образом под нее подстраиваются, даже не замечая, что мышь ведет себя как-то неправильно.

Ошибка 3-сигма  это случайное изменение общей угловой ошибки. Можно сказать, что это «ошибка ошибки». В отличие от общей угловой ошибки, к данному недостатку пользователь практически никак не может адаптироваться. Именно поэтому, величина ошибка «3-сигма» является очень важным параметром, который характеризует точность сенсора.

Угловая привязка  фактически, угловая привязка означает наличие определенного диапазона углов, в котором наша система выдает строго горизонтальное либо строго вертикальное движение. Эта функция была реализована в некоторых сенсорах, чтобы помочь людям, которые работают в офисных либо графических приложениях, рисовать прямые линии. Но такое поведение мышки может быть неприемлемым для геймеров. Естественным желанием для геймера является «чистый» необработанный трекинг, которой позволяет им лучше чувствовать движения своей руки и быть точным, совершая даже небольшие движения мышью. Потому что при экстремальных значениях угловой привязки, рисуя, к примеру, окружность, на выходе вы можете получить вместо круга некоторое подобие квадрата.

 

Resolution vs Speed Error

Следует сразу сказать, что данный параметр в очень большой степени определяет точность и воспроизводимость результатов сенсора. Допустим, мы переместим мышь ровно на 20 см, сначала медленно, а затем быстро. Если наш сенсор точный, в обоих случаях мы получим одинаковое число точек, которое пройдет курсор мыши на экране. В реальности, число точек для разных скоростей будет разным. И в этом отношении сенсоры могут очень сильно различаться. Многие пользователи называют это явление акселерацией, но этот термин здесь не совсем подходит. Просто с увеличением скорости сенсор может перестать правильно определять параметры движения, что приводит к разному числу выдаваемых считываний для разных скоростей. Особенно это критично для игроков в шутеры. Если два противника появляются с противоположных сторон, вам нужно сначала выстрелить в одного, затем резко повернуться в другую сторону. Если у вас плохая мышь, сделать это точно у вас вряд ли получится вы либо повернетесь слишком сильно, либо наоборот немного не доведете прицел до нужного места.

 

Dropouts (no DPI/CPI)

Суть данной проблемы состоит в том, что в некоторых случаях сенсор полностью перестает понимать, куда движется мышь и не выдает никаких считываний. На практике это выглядит так: пользователь ведет мышь, а курсор на экране в какой-то момент останавливается, а затем снова продолжает свое движение.

 

Pixel walk (low speed accuracy)

Если вы постепенно уменьшаете скорость движения мыши, в какой-то момент ваша система приходит в такой состояние, когда ей приходится угадывать, стоит ли мышь на месте, либо просто очень медленно движется. Т.е. для каждого сенсора существует некая «стартовая скорость». И только после достижения этой скорости сенсор начинает выдавать параметры движения. Но если эта скорость слишком велика, может сложиться ситуация, когда пользователь медленно ведет мышь, а курсор/прицел абсолютно не двигается. Проблема осложняется еще и тем фактом, что люди использует низкие скорости как раз в тех случаях, где нужно быть как можно точнее. А в результате получают совершенно обратный эффект. Для разработчиков сенсоров пропуск пикселя это очень серьезная проблема, которую порою трудно решить.

Технически, пропуск пикселя заключается в том, что сенсор определяет движение, сравнивая между собой фотографии поверхности. И здесь весь смысл заключается в скорости фотографирования. Первыми проблемными мышками с пропуском пикселя были устройства на базе лазерного сенсора Avago 9500 (SteelSeries Xai/Sensei), где скорость фотографирования составляла 12000 кадров в секунду! Большая скорость фотографирования позволила существенно повысить точность сенсора на обычных скоростях, но при медленном движении две последовательные фотографии, сделанные с интервалом 0,000083 секунды (1/12000), становятся практически неотличимыми друг от друга. Поэтому, в последнем поколении сенсоров (например Pixart S3988/PMW3366) скорость фотографирования меняется в зависимости от скорости движения самой мышки: от 3000 до 12000 кадров в секунду.

Circle drift (timing)

Лучший способ проверки работы сенсора – это посмотреть, насколько хорошо обрабатываются окружности. Если мы совершим нашей мышью идеальное круговое движение, то на экране монитора курсор должен описать точно такой же круг и вернуться строго в исходную точку. Однако, по разным причинам, этого может не случиться. Часть этих причин была упомянута выше – это могут быть различные угловые ошибки, вариации cpi от скорости и т.д. Но кроме того, проблемы могут быть связаны с синхронизацией – т.е. наша система может слишком поздно стартовать, не вовремя передавать информацию на компьютер и т.д. В этом случае, если мы будет продолжать рисовать окружности, их отображение на мониторе будет постепенно уплывать в сторону. И такое поведение сенсора говорит нам том, что что-то работает неправильно.