Mouse DPI, Sensitivity, and Precision
By: ChockrickBear | Jun. 26, 2018 | Views: 2162 | Keywords: guide technical
High DPI and low sensitivity work together to achieve greater aiming precision.
I've seen a lot of mouse guides claim that high DPI (dots per inch) is useless and is just a marketing gimmick. That would be true if you only looked at DPI in isolation. However, your mouse works in conjunction with your computer to display the result of your mouse movements and you can get more aiming precision out of high DPI if you combine it with low sensitivity. So, why should you trust me over everyone else? Because my claims are supported by simple, empirical tests you can try and see for yourself. While you can dig into the nitty, gritty technical details of how mice work, the end result is quite clear. For reference, I use the Logitech G502, which is cited to have no acceleration, smoothing, or pixel rounding. Not all mice will demonstrate the same results I have posted, so there is a grain of salt to be taken.
How mouse input works
An optical mouse detects movement by taking images of the mousing surface, defines how small of a change in the images counts as a dot, and counts the number of dots as the mouse moves. DPI is how many dots would be counted if you move the mouse one inch. A mouse can output a higher DPI by counting smaller changes in the sensor images as valid dots, limited only by the measurement precision of the sensor. Your computer translates dots into screen distance to move your cursor and you get movement. Sensitivity is the relationship between dot and screen distance. Higher sensitivity increases the distance your mouse cursor moves per dot while higher DPI increases the number of dots the mouse reads per movement distance. The difference is analogous to walking. To walk faster, you can take more steps (DPI) or increase your stride (sensitivity). For Windows, the default mouse sensitivity is set to a 1:1 pixel-dot relationship. That means move one screen pixel for each dot. If your screen resolution is 800 pixels wide and your mouse DPI is 800, if you start your cursor at the left edge of the screen and move to the right edge, your mouse should have moved exactly one inch.
What this means
Both DPI and sensitivity, affect the speed of the mouse cursor, but do so in different and significant ways. The reason why DPI alone won't do anything worthwhile is because the computer cannot see what the mouse sees and just takes dots as given. Software sensitivity alone is what defines aiming precision, with lower sensitivity moving smaller distances per dot, but the downside is that it slows you down. Therefore, by increasing DPI, you "push through" the shorter distances faster, thus preserving the precision of low sensitivity while compensating for the loss of speed. You have more dots to work with and each dot translates to a smaller on-screen movement, which means you have more precise aiming. However, there is a critical difference between 2D cursors and 3D aiming.
For 2D interfaces
Sensitivity on a 2D cursor adjusts how many screen pixels the cursor should shift per dot. A 2D interface is just a large grid of pixels and your mouse cursor shifts vertically or horizontally along this grid. A pixel is the smallest distance you can move, which represents the absolute limit to how precise of a movement you can get. Reducing the sensitivity below 1:1 pixel-dot parity simply makes the cursor not move for some dots, which is unresponsive and no more precise because there's nothing in between pixels to click on. Increasing sensitivity above parity makes the cursor skip pixels, which reduces precision. For optimal mouse precision and response, you should set the sensitivity to parity (e.g. the default middle setting in Windows Mouse Properties) and then adjust DPI only to have a faster or slower cursor. High DPI will do nothing but increase the speed of your cursor and will make it harder to control.
An easy way to observe how your mouse responds to DPI or sensitivity is to open Paint, use the pencil tool, set the line width to one pixel, then try to draw diagonal lines or curves slowly. This allows you to see the exact path your mouse cursor takes as you move the mouse. With higher DPI, you should get rougher lines, but this should be expected because higher DPI should emphasize any slight crookedness in your movements. Perform this test again, but instead, increase the cursor speed in Mouse Properties. You should get a uniform stair-step pattern completely different from the rough lines created by high DPI, which indicates pixel skipping. With high sensitivity, it should be impossible to move one pixel at a time, but with high DPI, it is still possible if you're careful enough. This test is also relevant to 3D aiming because dots being output here is what will be output to a game engine.
Line Test 1.png
Free-hand line test. Each DPI is tested with a slowly (lower) and a quickly (upper) drawn line. Higher DPI settings will produce rougher lines, but this is mitigated through fast movement likely due to the sensor images moving more and eliminating edge-cases to which way the mouse is moving. However, this isn't the complete story.
Line Test 2.png
Regardless of DPI, high sensitivity (lower line) will produce a consistent stair-step pattern indicating pixel skipping, so you should increase DPI instead of sensitivity if you need a faster cursor. However, low sensitivity (upper line) will completely dampen the crookedness of high DPI because the random movements are ignored.
For 3D games
3D games, particularly shooters, are a different story. When you move the mouse, the game engine uses dots to transform the game geometry in order to simulate 3D perspective rotation. You are not moving a single pixel vertically or horizontally along a 2D grid, you are making lines and images all over your screen shift and transform. Sensitivity affects how much your aim shifts per dot and lower sensitivity will result in shorter shifts. It's a misconception to think that one pixel is the smallest distance you can turn because 3D position coordinates are abstracted away from screen pixels and have virtually unlimited precision. You are not aiming at pixels, you are aiming at coordinates, and the computer tries its best to show it. Unlike for 2D cursors, mouse dots are not ignored with low sensitivity and using high DPI will allow you to take advantage of this precision without sacrificing speed. Therefore, it is in your best interest to use the highest DPI and the lowest sensitivity you can get away with.
To observe this, try setting your DPI to the lowest setting and start a game (ideally, you should use a Source Engine game like Counter-Strike: Global Offensive because of its developer console and support for extreme software sensitivities). Make sure to disable any antialiasing to make it easier to spot changes in the geometry edges. Next, line up your crosshair against a straight edge of a wall corner, set an extremely high sensitivity, and try to move your crosshair as little as possible away from the corner. Repeat for lower sensitivities. Higher sensitivity will jump away from the corner while lower sensitivity will jump less. If you set an extremely low sensitivity, your crosshair might not move from the corner, but you can still see that the jaggy edges of the geometry will still shift. This means the game is registering and using mouse dots to shift your aim in very tiny increments. Increase the DPI while keeping sensitivity low and you will find that you will not sacrifice the precision of low sensitivity while still being able to turn quickly. Lowering DPI with high sensitivity will not change the minimum turn distance and will always be imprecise.
In general, smoother animation comes from having more animation frames crammed into the same animation distance. While moving your mouse, each report of the mouse is an instruction to shift your aim and it does this up to 1000 times per second to simulate fluid movement. The problem with low DPI is that when you're moving the mouse slowly, you're not sending enough dots per report per second to match your rendering frame rate. While the GPU may render at 60 FPS, your aiming might not be shifting 60 times per second with slow movements. If you can step one dot at a time, you're stuttering your input. High DPI ensures that even the slowest movements you make will send enough dots to make aiming appear smooth.
You can test how smooth your movements are by using Paint. Draw a horizontal line 60 pixels long and try moving your mouse cursor along that line to get an idea of how fast you need to move your mouse to go from one end to the other in one second. If you move your mouse slowly as though lining up a head shot at long range, there's a good chance you won't reach the end of the line in one second at that speed, which means you are not doing 60 dots per second. Higher DPI will make it easier to traverse the line in one second or less for even the tiniest hand movements.
In Game Test.jpg
A very high sensitivity will result in your aim jumping regardless of game engine (exaggerated here for clarity). The only way a game can increase your turn speed is by shifting a greater distance per dot. Ideally, you should always keep sensitivity as low as possible relative to DPI for maximum precision.
High DPI/low sensitivity has diminishing returns of precision because things like engagement ranges, weapon accuracy, crosshair thickness, monitor resolution, and the limits of the human hand limit how much of a practical difference it makes. If you are already using a very low sensitivity and aim with your wrist or arm, it might not make much of a difference. But if you use a higher sensitivity and aim with your fingers (i.e. claw grip), the difference is quite noticeable. It's easiest to see when aiming at long range without zooming in, when your opponent's head is only a few pixels big; games with very far draw distances are ideal.
Different mice perform differently at the same DPI level. Some mice, particularly older mice, are overdriven at the highest DPI setting and have extremely crooked movements that will be visible in-game even at low sensitivity. Do the MS Paint test to see how much error there is on your mouse. If you can't get similiar results to mine, you need to settle for a lower DPI setting. In my experience, the G502 has no noticeable tracking issues at 12000 DPI. With a good mouse, tiny amounts of error are dampened by a sufficiently low sensitivity and chances are, your hand is far more crooked than the sensor noise.
Game engine constraints
Not all game engines support high DPI and low sensitivity, and the game may exhibit unusual behaviour if you try. One behaviour is negative mouse acceleration, where the game stops responding to input if you move too fast. I am not certain why this happens, but the lower the sensitivity, the easier it is to hit the limit. The fact that other game engines can handle it suggests it is due to deliberately (and unnecessarily) restricted design. In these cases, you can't use high DPI, unless the game can be tweaked to disable this, which is rarely the case, but you can still find the highest DPI and lowest sensitivity you can get away with to squeeze out as much precision as you can.
A lot of games don't let you set a sensitivity low enough to make high DPI viable because the slider doesn't go low enough, so you can only work with what the game allows. So all you do is set the sensitivity to minimum and adjust DPI as needed. Games that let you manually enter sensitivity to any number of decimal places will allow you to use high DPI and you may need to edit configuration files to do this. Games with a developer console that lets you change sensitivity by entering a number are ideal. Even then, not all game engines are equal. For example, Unreal Tournament 2004 ignores input below a certain threshold, which places a limit on how precisely you can aim. Source Engine does not appear to suffer from this.
Fast 2D cursor
High DPI will make 2D menu cursors fast, but you can assign a DPI shift button to use whenever you are in menus and switch back when you are back in the game. Unless the game requires rapidly switching between a 2D interface and 3D shooting, the inconvenience of this should not be a major problem. You could also compromise for a lower, more bearable DPI.
Finding a good aim sensitivity
A bit of an aside, but still useful to mention. Sensitivity is a huge factor in being able to aim properly, but finding your ideal sensitivity is not an easy task. To put it simply, it is a trade-off between stability and response. Your hand will naturally try to compensate for a sub-optimal setting, but cracks start to show when you try to line up head shots or track moving targets. Stability is generally more important than raw speed because having your crosshair jitter off target often wastes more time than turning a bit slower. In fact, you can just move your mouse faster to aim faster, so you should eliminate excess speed you can't reliably use to make aiming more intuitive.
To find a good sensitivity, I suggest aiming at a spot and deliberately vibrate your hand like you were quaking in fear. The idea is to define bounds on the shakiness of your hand so that your mouse only moves in response to deliberate hand movement. If your crosshair is shaking off-target and drifting around, your sensitivity is too high. Your sensitivity should be low enough so that your crosshair just vibrates in place, which dampens uncontrolled hand movements and makes precise aiming easier. Raise your sensitivity sparingly if you need more flick response or movement tracking. It will take a lot of trial and error to get it perfect, but the feeling of being in control is totally worth it.
These sources discourage high DPI, but such conclusion is based on looking at DPI in isolation from sensitivity. There wouldn't be a point in me writing an article if I had nothing new to say.