Jump to content

Robin Hood - Sherwood Builders

See the game notes for instructions on how to reduce smoothing.
Read more...

Gas Station Simulator

See the game notes for instructions on how to disable smoothing.
Read more...

Mortal Shell

See the game notes for instructions on how to disable smoothing.
Read more...

Incursion Red River

The sensitivity slider is not accurate, expect some discrepancy. Use the config file for best accuracy.
Read more...

ONCE HUMAN

Hipfire added, more aims to come. See the game notes for instructions on how to disable smoothing.
Read more...

Need slightly more clarification on monitor distance matching


Recommended Posts

I have a ton of questions, and I would really appreciate if someone could take some time out of their day to give me a concrete answer.

 

Is it impossible to have a sensitivity at an FOV that perfectly matches a sensitivity at another FOV? Because even if I match monitor distance to 1% for 2 FOVs, I know full well that I won't be doing only 1% distance flicks, and so that'll be on me to try and compensate for a flick at an enemy at the edge of my screen despite not being used to that feeling. This would be more apparent if I were using something with a really low FOV like the CSGO AWP on its second zoom at 10 FOV, because the difference in zoom sensitivities between 0% and 100% is 0.787398 and 1.127085 (even though you wouldn't be able to see the person through the black scope part). If the answer is yes, doesn't that mean that it's impossible to have a 1:1 mouse movement, across even slightly different media? So I simply have to choose based on preference?

 

My next question is a bit crazy, but what if you were able to partially re-mediate this problem using mouse acceleration? This makes sense to me because the further away from the crosshair lies the target, the faster I'd move my mouse, and so this would result in the higher, more correct sensitivity needed to have a 1:1 movement at that specific distance.

 

How does any of this work on a game with a 2D plain, like osu!, LoL or even my windows desktop? How can I get a (pseudo?) 1:1 mouse movement here?

 

Lastly, I don't understand what matching at 0% monitor distance means, because the sensitivity involved in moving the mouse no distance would be irrelevant, right? So how does the calculator give the number it gives?

Link to comment

Hey I know you want a solid answer right now but I can't be bothered giving you one (at least not now). But just trust me, since I've integrated and found the average value of each FOV from 0 to 150 FOV (150FOV is more than enough) given the equation y=sqrt((1/sinθ)^2-x^2)-sqrt((1/sinθ)^2-1)... and the monitor distance I calculated that we should be using is 25%.

 

I sent a message to GLiSN just now as we were actually discussing this and this is the monitor distance I mathematically decided on.

Edited by potato psoas
Link to comment

GLiSN, in that other post you linked me to, what did you mean by 2D edge to edge distance? Did you mean like, the horizontal length of my screen, or did you mean something else? And if so, is it in centimeters?

 

Joshua, I need to actually understand how that formula works before I could trust using the result, but I might anyway. Also when you said that we should use 25%, did you mean that it is perfect value, or that it's the best it can be?

Link to comment

IMO the perfect match is with cursor speed rather than monitor distance. Afterall that is essentialy what you are learning, not a distance on a monitor. Your familiarising yourself with the speed your cursor moves from point to point. The better you judge this the faster the movement, the more 'snappy' you can become.

 

Matching cursor speed is also much easier and consistent across ALL FOV or even 2D-3D. If you match your 2D cursor speed to the rotational speed in 3D then the 'feel', the 'speed' of your cursor is the same. You can match this to any FOV and cursor speed will always feel identical.

 

To give a brief example of this: post-5312-0-98027500-1487073418_thumb.png

Here we have a monitor distance (in red) and the arc Field of View of 180 degrees in black. (highlighting larger FOV's, the less accurate monitor matching becomes. This is also true when comparing two FOV's, the greater the difference the worse they match)

 

For simplicity, the monitor distance (chord length) is 2 therefore the Arc length is equal to 3.142... A 57% increase in length. This means when matched at 100% monitor distance the 3D 'cursor' must move at 57% greater speed than the 2D cursor.

 

The inaccuracies 'reduce' as you eventually lower FOV as close to zero as possible. Essentially reducing the sample size to something so small the difference appears negligible. IMO not ideal.

 

Making the 100% monitor match value 57% less however places cursor speed identical in both planes... 2D & 3D?

 

 

NOTE: obviously the percent changes with each FOV.

For example 106.26FOV (90 4:3) is 15.8% which equates to roughly 65% on the implemented monitor match calculator.

Edited by DNAMTE
Link to comment

Hey I know you want a solid answer right now but I can't be bothered giving you one (at least not now). But just trust me, since I've integrated and found the average value of each FOV from 0 to 150 FOV (150FOV is more than enough) given the equation y=sqrt((1/sinθ)^2-x^2)-sqrt((1/sinθ)^2-1)... and the monitor distance I calculated that we should be using is 25%.

 

I sent a message to GLiSN just now as we were actually discussing this and this is the monitor distance I mathematically decided on.

tried it on siege and it feels really good! 25%is lovely!

Link to comment

Unless your using the minimum, maximum or median of the two (0%, 100% or 50%) given the way arc length changes with FOV you cannot provide a percentage that works accurately for any broad range of FOV.

 

25% of 150fov versus 25% of 90fov using the same monitor is going to feel vastly different when trying to match with 2D desktop. The cursor speed will be completely different.

 

Ideally your desktop cursor speed will match the crosshairs speed ingame. that's what matters. You could Project your screen to a cinema sized screen and because your cursor speed remains relative you will be ready to go. distance matching from two different planes IMO has little merit.

Link to comment
On 14/02/2017 at 06:46, Kilroy said:

GLiSN, in that other post you linked me to, what did you mean by 2D edge to edge distance? Did you mean like, the horizontal length of my screen, or did you mean something else? And if so, is it in centimeters?

 

Joshua, I need to actually understand how that formula works before I could trust using the result, but I might anyway. Also when you said that we should use 25%, did you mean that it is perfect value, or that it's the best it can be?

 

Hey, here's a picture that might explain the maths behind what I'm talking about:

http://i.imgur.com/LiDfxls.png

 

LiDfxls.png

 

Basically, the equation of a circle is (x-h)^2 + (y-k)^2 = r^2, so if we simplify the equation in terms of y we can integrate it and find the average value of the equation. But since this is only for a single FOV, we need to create a list of average values for a given range of FOVs and then find the average of all those averages and that will give us the Monitor distance we are looking for. I know this is messy and I should use a triple integral, but I don't know how to do them (can't be bothered to learn how... but creating a list of single integrals and then finding the average of them is precise enough). The given FOV range is something you would be able to change to your liking. Just check this spreadsheet out and you'll find that you can have a FOV range of 172, 150, 126 or 96 (I didn't include anything lower than 96 as most games have at least 90 FOV): https://docs.google.com/spreadsheets/d/1INqG-_fvx2BrsknyrPuPiNkx5UBoMGi3ULs_oCQcaBs/pubhtml

 

As you can see, the calculated monitor distances you can choose from are 30%, 25%, 20% or 15%. Since the mouse sensitivity calculator only goes up in increments of 5 and doesn't have decimals, you can only pick one of these 4 monitor distances. I personally chose 25%. I don't really intend to use anything higher than Quake Live's FOV of 130 so 150 FOV is more than enough for me. If I was using a 21:9 monitor and I wanted to go higher than I might consider using 30%. So depending on your circumstances, choose either 25% or 30%.

Edited by potato psoas
Link to comment

So Joshua, I understand next to none of the math, but you're saying that the average monitor match I should use depends on what I consider to be the maximum fov that I normally use? So if I normally use a maximum of 106.26 fov, I should use 15%?

 

Wouldn't it make more sense to linearly (or something like that) decrease the monitor distance I use depending on how low the fov is? Because if a person somehow normally uses 50 fov, according to this, they'd use an even lower MD for the rest of their even lower fovs.

Edited by Kilroy
Link to comment

I Dont understand the over complication. You either want to match cursor speed or you don't.

 

Don't forget if you want true 1:1 cursor speed between differing planes its quite simply, cursor speed = distance / time.

 

Averages, especially over such a broad range of FOV will never match anything accurately.
3D and 2D cannot be measured using the same methods, they are not the same. Trying will result in a 'best fit' scenario. ONE sweet spot.

 

As you rotate in-game, the radial speed of the cursor moving should ideally match, exactly, the desktop cursor movement speed. That's the only true 1:1 match.
No average can determine that.

 

Going back to my first post in relation to arc & chord length, using their relationship we can quickly establish 100% monitor match, that is, the start & finish of maximum movement in both rotation (3D) and  length (2D).

 

Using 106.26FOV. 400dpi

Windows / Desktop Distance 16.256cm  (360' / 106.26') = 55.07396950875211cm  (100% Monitor match)

 

That simply mimics the relationship shared between 2D and 3D maximums. Which ultimately is monitor matching '100%'.
Following that its simply allowing for the difference in Arc length (3D) to Chord length (2D) and adjusting as I previously posted to provide 1:1 mouse speed.
 

Edited by DNAMTE
Link to comment
  • Wizard

There's already a lot of technical answers here, but I'll answer a few of your questions anyway.

 

Is it impossible to have a sensitivity at an FOV that perfectly matches a sensitivity at another FOV? Because even if I match monitor distance to 1% for 2 FOVs, I know full well that I won't be doing only 1% distance flicks, and so that'll be on me to try and compensate for a flick at an enemy at the edge of my screen despite not being used to that feeling. This would be more apparent if I were using something with a really low FOV like the CSGO AWP on its second zoom at 10 FOV, because the difference in zoom sensitivities between 0% and 100% is 0.787398 and 1.127085 (even though you wouldn't be able to see the person through the black scope part). If the answer is yes, doesn't that mean that it's impossible to have a 1:1 mouse movement, across even slightly different media? So I simply have to choose based on preference?

Yes it is impossible. You can to some degree see the difference in movement at the end of the Monitor Distance video, where it shows and 80% movement when the aims are matched at 25%.

 

IMy next question is a bit crazy, but what if you were able to partially re-mediate this problem using mouse acceleration? This makes sense to me because the further away from the crosshair lies the target, the faster I'd move my mouse, and so this would result in the higher, more correct sensitivity needed to have a 1:1 movement at that specific distance.

The problem with acceleration is that it is not consistent. 

 

How does any of this work on a game with a 2D plain, like osu!, LoL or even my windows desktop? How can I get a (pseudo?) 1:1 mouse movement here?

If you are using a 1080p monitor and match 100% monitor distance from Windows to a game, it is calculated what sensitivity is needed to equal 960 counts to move to the edge of the monitor in a game. If you match 50%, it will match 480 counts to 50% of he monitor distance, and so on.

 

Lastly, I don't understand what matching at 0% monitor distance means, because the sensitivity involved in moving the mouse no distance would be irrelevant, right? So how does the calculator give the number it gives?

It basically means matching the smallest movement possible. You can see that the difference between 1% and 0% is virtually nothing, but there is a small difference.

Link to comment

I Dont understand the over complication. You either want to match cursor speed or you don't.

 

Don't forget if you want true 1:1 cursor speed between differing planes its quite simply, cursor speed = distance / time.

 

Averages, especially over such a broad range of FOV will never match anything accurately.

3D and 2D cannot be measured using the same methods, they are not the same. Trying will result in a 'best fit' scenario. ONE sweet spot.

 

As you rotate in-game, the radial speed of the cursor moving should ideally match, exactly, the desktop cursor movement speed. That's the only true 1:1 match.

No average can determine that.

 

Going back to my first post in relation to arc & chord length, using their relationship we can quickly establish 100% monitor match, that is, the start & finish of maximum movement in both rotation (3D) and  length (2D).

 

Using 106.26FOV. 400dpi

Windows / Desktop Distance 16.256cm  (360' / 106.26') = 55.07396950875211cm  (100% Monitor match)

 

That simply mimics the relationship shared between 2D and 3D maximums. Which ultimately is monitor matching '100%'.

Following that its simply allowing for the difference in Arc length (3D) to Chord length (2D) and adjusting as I previously posted to provide 1:1 mouse speed.

 

 

Sorry, I've read both your posts and I'm trying but I really still can't understand how and what you mean by matching cursor speeds in both plains and across fovs. I know that speed is distance over time, but the problem that keeps nagging at me is that the crosshair in-game is fixed to the middle of the screen and as such doesn't have a speed, right? I get that you're supposed to measure rotational speed of the player's view, but I don't get how. I also haven't learned the math that you're using (still in high school), and how it works, so that makes it more complicated for me.

 

 

The problem with acceleration is that it is not consistent. 

 

This guy named povohat made an excellent mouse acceleration driver and this is a link to a blog post by a guy called kovaak that I think argues pretty well that the acceleration used in their driver is actually very consistent.

 

http://mouseaccel.blogspot.ca/2015/11/why-other-forms-of-mouse-acceleration.html

 

Basically what he's saying is that normally, acceleration is done badly, because it's usually like window's enhance pointer precision, where when your mouse reaches a threshold in speed, it suddenly doubles, and easily throws you off. It can also be hard to learn exponential curves like logitech's mouse acceleration. But when it is a linear acceleration, which can be achieved in this driver, and in games like quake and reflex, it can be very easy to learn. So if the target is far away, it is still easy to know how the speed of my mouse will influence the speed of the cursor/ rotation of my view, and since matching at higher monitor distance percentages gives higher sensitivity, this would sort of benefit that, right?

 

I've been using this driver for almost a year, and I can never go back.

Edited by Kilroy
Link to comment

I've been thinking how I can describe my post in the easiest way possible. Firstly I'd like to start with some basics.

 

Field of View makes up your view window within a game, this measurement (in degrees) is removed from the remainder of your full rotation (360).

 

Obviously your screen window is fixed in size. Hence, when we lower our FOV the image is scaled larger, when we increase our FOV the image is scaled smaller, maintaining the overall boundaries of the original view box.

 

The reason selecting the correct FOV is important, minimize distortion but maintain a reasonable view angle, however that is another topic and I don't want to lead off track.

 

Here's where my creative side attempts to give you an analogy to understand the relationship between your desktop and in game.

 

rack_pinion.gif

http://coewww.rutgers.edu/classes/mae/mae488/hw/lectures/adv_connect/rack_pinion.gif

 

 

As you can see moving your cursor on desktop is indeed related to how you rotate in game, For every FOV there's only one speed/ sensitivity that is actually 1:1 with your aspect ratio (allowing the gears to mesh perfectly).

As in this example given that the gears interlock perfectly as the gear rotates over the pinion it's clear they move in unison, 1:1 movement. That relationship is outlayed in my previous posts.

 

Here's another example that I'll attempt to explain why IT IS possible to match ALL FOV 1:1.

 

 

Bike_Chain_043cb.gif

http://www.f-lohmueller.de/pov_anim/engineering/Bike_Chain_043cb.gif

 

 

As you can see we have two gears of dissimilar diameters (simulating different FOV). They both rotate at different speeds, however the chain travels around them at uniform speed, clearly.

 

It does not matter how big the gear/FOV is or how many times it rotates. What matters is that the 'chain' moves between the two perfectly. Essentially adjusting your speed/sensitivity at the desired FOV so the 'gears' match the chain speed PERFECTLY.

 

Answering the above question then YES, it can be perfect. Perfect does not mean every pixel on your screen should move in sync regardless of FOV. That's physically impossible. Different diameters will complete a rotation at different times. The centre of your screen can be perfect and that's the only bit that matters, that's the only part of the screen you used to line up your shots.

 

Moving to your next target is simply a matter of distance / time, the better you judge this the faster you become.

Edited by DNAMTE
Link to comment

Damn, those are some grade a+ analogies, and to be honest if it were me explaining this to you, I would've long ago given up, so thanks for the time. I do strongly believe its possible now, but I still don't exactly know how to calculate it because I went back and read the previous posts, and I'm having trouble with the math. I just need one final thing from you, which is to explain it in a step by step list, and with examples because I'm brain dead stupid. :P

Link to comment

Putting DNAMTE's ideas into math.

360/hfov * desktop distance * chord /arc = 360° distance

We are playing CS:GO which has 106.26 horizontal FOV, on a 2560x1440 monitor, with a 400 DPI mouse. We can find our horizontal desktop distance by doing the following:

Resolution Width / DPI * 2.54 = desktop distance (cm)
2560 / 400 * 2.54 = 16.256 cm

The arc we can calculate by doing the following:

chord + chord * (fovradians - 2 sin(fovradians/2))/(2 sin(fovradians/2))

Our FOV in radians can be calculated like so:

hfov * π / 180 = fov (radians)
106.26 * π / 180 = 1.85459... radians

The full arc calculation is:

2560 + 2560 * (1.85459 - 2 sin(1.85459/2))/(2 sin(1.85459/2)) = 2967.34

So we have a chord distance of 2560 and an arc distance of 2967. When the game is 2967 pixels wide, you can see why it is distorted to fit into 2560 pixels. Now we have our two distances we can convert it to a 360° distance and find our perfect sensitivity for our given FOV.

360/hfov * desktop distance * chord /arc = 360° distance
360/106.26 * 16.256 * 2560/2967.34 = 47.51372 cm

This concludes that with 2560x1440 and a 400 DPI mouse, the perfect sensitivity to match the desktop pointer speed will be 47.51372 cm 360° distance. This is accomplished using 2.186936 sensitivity, equal to 875 eDPI as a reference point when comparing sensitivities to other players.

The full formula without using rounding would be like so:

360/106.26 (2560/400×2.54)×2560/(2560 + 2560×(106.26×π/180 - 2 sin(1/2 (106.26×π/180)))/(2 sin(1/2 (106.26×π/180)))) = 47.5137...

Simplified down to:

(4 π z sin(x/2))/x^2 where x = fov radians and z = desktop distance
(4 π (2560/400×2.54) sin(1/2 (106.26×π/180)))/(106.26×π/180)^2 = 47.5137...

 

Edited by Drimzi
Link to comment
  • Wizard

For those wondering, the monitor distance calculator works like this (very simplified):

  1. The 360° distance in counts is calculated for the input game. Let's say it's 10000 counts.
  2. If you choose 50% monitor distance, and the FOV of the input game is 90° (1.5708 radians), this equals atan(tan(1.5708/2)*0.5) = 0.4636 radians = 26.57°. And 26.57° = 10000/360*26.57 = 738.053 counts.
  3. If the output game has an FOV of 106.26° (1.8546 radians), we do the same here: atan(tan(1.8546/2)*0.5) = 0.588 radians = 33.69°.
  4. We now know that 33.69° in the output game should equal 738.053 counts. To match this, the 360° counts is calculated based on these two values: 738.053/33.69*360 = 7886.5859.
  5. The sensitivity for the output game is then calculated based on a 360° distance of 7886.5859 counts.

0% matching is using the same premise, but is instead using the formula tan(radians/2).

Link to comment

I think it's pretty agreed upon here that 2D to 3D "cursor speed matching" lies somewhere around 65% monitor distance matching, depending on edge to edge distance. But some are saying that to convert between different fovs in 3D games, 0% is the way to go, whereas Joshua Willis' post is saying that an average of 20% is the way to go since I never go higher than 126 hfov.

 

My settings are 960 * 540 with 102.884 dpi, which results in 23.7005 cm edge to edge.

 

(360/106.26)(23.7005-(23.7005*0.1591183424841393))=  67.51885621 cm/360

 

When using the monitor distance calculator, to convert from 2D to 106.26 fov, it is roughly 65% that works here to achieve that same cm/360, as we've already established. Now if I wanted to convert from 106.26 to 51.77 hfov:

I can use 0%, which results in 186.2257 cm/360

Or I can use 20%, which results in 182.5608 cm/360

 

Well if the 2D to 3D way that I just used works to give me a 1:1 for 106.26 hfov, couldn't it do the same to give me a 1:1 for other fovs? Why not do that instead of monitor distance matching between the fovs? So I used the same formula to convert from 2D to 51.77 fov this time:

 

An angle of 51.77 gives and arc length of 0.9035569538 and a chord length of 0.8731325395

 

From arc length to chord length, the percent increase is 3.48451271%

 

(360/51.77)(23.7005-(23.7005*0.0348451271))= 159.0665463 cm/360

 

As you can see, between 106.26 and 51.77 it is neither a monitor distance matching of 0% nor 20%. I did this between other fovs, and the monitor distance match is close to 65% but never the same exact percentage, and definitely not 0 or 20%. I don't know if this is a coincidence that this time it's still 65% between 2 fovs instead of between 2D and 3D, or if if I'm seriously missing something here. But anyway, isn't it correct that I should use this formula and the 2D edge to edge distance, to figure out sensitivities at different fovs?

 

Edit: Alright well, while writing all this GLiSN answered my question in an edit that wasn't there when I read it the first time, ahah.

Edited by Kilroy
Link to comment
I don't think anyone seems to understand exactly what the purpose of the monitor distance value is. Even though there is no such thing as the perfect monitor distance, we can attempt to calculate mathematically the monitor distance value that will maximise muscle memory at all points on the monitor by making sensitivities across all FOV ranges feel as similar as possible.
 
We do this by finding the halfway point on the curve of a given FOV, taking note of the x value, then finding the halfway point for a whole bunch of FOVs (from 0 to your chosen max FOV) and then calculating the average of all these halfway points to give us our "perfect" monitor distance. We do it this way because the halfway point is an equal distance to the center AND the edge of the monitor, so therefore no matter what point on the screen we are aiming to, sensitivities across different FOVs will feel as close to each other as possible, ultimately maximising muscle memory.
 

I should also point out that if you are interested in tracking better using a low monitor distance such as 0%, 1% or 5% will work, but it really doesn't benefit you in the long run. You really are hindering yourself from a wide range of manoeuvres in FPS gaming. You aren't always going to be looking down the barrel of a sniper scope and holding angles all the time. If you are like me you want to be able to overall flick to ANY point on the screen even if it means you are a little bit less consistent at the center of the screen. Same goes for a monitor distance of 100%.
Edited by potato psoas
Assumption makes sense but averaging is a bad idea
Link to comment

I've been thinking how I can describe my post in the easiest way possible.

Hey I found a great way to explain/visualise the 3D to 2D projection concept.

 

Just go to:

https://www.mathsisfun.com/data/grapher-equation.html

 

Then input this equation:

x^2+(y+0)^2=1^2

 

You will notice that you get a unit circle, which represents a FOV of 180 since the y intercept and the x intercept are both 1. If you change the r and k values in the equation (of the form x^2+(y+k)^2=r^2), where k=sqrt(r^2-1), you will notice that the circle gets bigger but still maintains its interception with x=1. Try x^2+(y+2)^2=5.

 

If you consider that your monitor is the line from x=0 to x=1, you can imagine how the parallax motion effect would determine the "speed" of the curve along the x axis as it is projected onto a 2D plane.

 

http://i.imgur.com/BkdMHQn.png

BkdMHQn.png

Edited by Joshua Willis
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...