Jump to content

Arena Breakout: Infinite

Hipfire is added, aims coming soon!
Read more...

Project L33T

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

Twilight Town: A Cyberpunk FPS

Just added.
Read more...

Contain

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

Vomitoreum

Just added.
Read more...

What is Focal Length Scaling?


Recommended Posts

10 hours ago, SenNive said:

What is focal length scaling? Is it the same as 0% MM?

I read about this here https://themeta.com/blog/2020/4/23/converting-sensitivity-between-fovs-focal-length-scaling
Is this correct about focal length scaling being the same as 0%MM?

the kovaaks blog explains it pretty well although i must say that i prefer having the same 360 distance(at the same fov+aspect ratio)  for hipfire since it really helps with positioning /movement 

for scopes it is undoubtedly the ideal option 

 

^another great read 

Edited by fortunate reee
Link to comment
4 hours ago, Merinda18 said:

yes,but in my opinion 0% scaling isnt good at all,im losing my hipfire aim on 0% 

iam with you 0% fucks me up in close combat or high zoom rifles. Iam going with 100% MDV may cause iam used from older games.

 

I also tried 0% and just played 10min with zoom and go back to hipfire and the hipfire sensitivity feels so fast then but everyone is different just try it.

Link to comment

0% aka "focal length" aka "zoom ratio" aka "visuomotor scaling" matches the sensitivity mathematically. 

360 distance simply matches the turn-rate (degrees/count).

Monitor distance is an arbitrary measurement of screen space used as a barometer for sensitivity that can create a more consistent sensation of sensitivity than focal length scaling when the differences in FOV are very large.

Link to comment
  • 1 year later...
On 8/29/2020 at 1:49 AM, TheNoobPolice said:

0% aka "focal length" aka "zoom ratio" aka "visuomotor scaling" matches the sensitivity mathematically. 

360 distance simply matches the turn-rate (degrees/count).

Monitor distance is an arbitrary measurement of screen space used as a barometer for sensitivity that can create a more consistent sensation of sensitivity than focal length scaling when the differences in FOV are very large.

To clarify, are you confirming that MM 0% is synonymous with so-called focal length scaling?

Link to comment
5 hours ago, heckminth said:

To clarify, are you confirming that MM 0% is synonymous with so-called focal length scaling?

Assuming every variable is constant except for the fov, then yes it gives the same result. If you are converting between different sized monitors, or non upscaled resolutions, then you want to use the actual focal lengths instead because mm 0% will give incorrect results.

E.g. You have a case where you are converting from a 960x540 windowed game with 53.13 fov, to a fullscreen 1920x1080 game with 90 fov. mm 0% would just see that 90 fov is zoomed out twice as much as 53.13 and then double your sensitivity, even though both games have identical focal lengths. Both have 53.13 fov within the 960x540 region of the screen.

Link to comment
8 hours ago, Drimzi said:

Assuming every variable is constant except for the fov, then yes it gives the same result. If you are converting between different sized monitors, or non upscaled resolutions, then you want to use the actual focal lengths instead because mm 0% will give incorrect results.

E.g. You have a case where you are converting from a 960x540 windowed game with 53.13 fov, to a fullscreen 1920x1080 game with 90 fov. mm 0% would just see that 90 fov is zoomed out twice as much as 53.13 and then double your sensitivity, even though both games have identical focal lengths. Both have 53.13 fov within the 960x540 region of the screen.

So, focal length scaling is only viable for a certain range of resolutions before the image becomes too small for it to be beneficial. Got it.

Edited by heckminth
Link to comment
On 12/4/2021 at 5:07 AM, heckminth said:

So, focal length scaling is only viable for a certain range of resolutions before the image becomes too small for it to be beneficial. Got it.

The best thing about focal length is that you can use it to calculate your true, universal sensitivity value, taking all variables into account. Maybe it will become the standard measurement to share how fast your sensitivity is with someone in the future, who knows. At the moment people share cm/360 values, but that is only slightly better than sharing eDPI values. It still doesn't tell anyone how sensitive the mouse is as you don't know their monitor size, fov, and how much of the monitor that fov is occupying. All it really tells you is how tedious it is to turn corners and change directions.

Basically the focal length is the radius of the projection, and the length of the radius will vary depending on the fov and how large a pixel is (resolution and monitor size). You use the radius to calculate the circumference. The size of the circumference becomes your cm/360 (which is also a circumference). You then divide that cm/360 by a number. That number is your universal sensitivity value, which I call visuomotor since it's a ratio between visual and motor. If you have a sensitivity of 4, then your projection's circumference is always 4x larger than your sensitivity's circumference (cm/360).

It is similar to getting your real 2D sensitivity, which is how fast/far the cursor travels relative to your mouse. If you have a sensitivity of 4, then your cursor moves 4x faster/further than your mouse. If you convert 0% mm from windows to a game, then your universal sensitivity value becomes the same as your real 2D sensitivity. Your camera moves at the same speed as the cursor. The distances to reach things on the screen is all different though but that doesn't matter, that's the pitfall of monitor distance.

1689746921_NewProject.png.81865765d12ce2727d609350bef782e6.png

But yeah, if you are just scaling sensitivity between fovs, without changing anything else, then you can safely use 0% mm. It will calculate the change thats happening to the focal length / radius, and change your cm/360 by the same factor. Both of those spheres in the picture will scale by the same rate, and 0% will keep that ratio the same.

Edited by Drimzi
Link to comment
20 hours ago, Drimzi said:

Basically the focal length is the radius of the projection, and the length of the radius will vary depending on the fov and how large a pixel is (resolution and monitor size).

I'm having a look at https://www.desmos.com/calculator/khnhc27kb5 right now to understand the mathematics better. A lot of the focal length calculators I've looked at don't seem to take monitor size into account. Based on what you've said, the size of a pixel needs to be accounted for. I've seen that the m-s calculator has the option to input monitor sizes but I've never regarded my monitor size as a relevant factor before. I used to only use cm/360 to convert my sensitivity, so when I started using a bigger monitor, I didn't adjust for it. I did notice that my aim felt different when playing on this monitor compared to before, but I've also gotten used to it. Do you think it would be worth going back and properly converting my sensitivity from what it originally was? Because I also get the sense that it might feel good to let the ratio change if you've got a different screen size. Having a bigger screen made me feel like I was "closer to" or "more immersed" in the game, but I didn't feel much need to change my sensitivity because of it. I think I would probably aim worse if I did adjust for it. I'm really curious about this though. I will have to test with my old monitor sometime.

20 hours ago, Drimzi said:

You use the radius to calculate the circumference. The size of the circumference becomes your cm/360 (which is also a circumference). You then divide that cm/360 by a number. That number is your universal sensitivity value. If you have a sensitivity of 4, then your projection's circumference is always 4x larger than your cm/360.

I'm going to rephrase in my own words from what I understand, let me know where I'm right and where I'm not. There are two imaginary spheres being projected onto 2D surfaces. One is the gameworld scaled by FOV and the other is scaled by an arbitrary number. The circumference of the projection that is determined by your FOV, resolution, and monitor size, gets scaled by your universal sensitivity, which gives your 360 sensitivity. Universal sensitivity determines the ratio between the circumference of the monitor projection and the circumference of the mouse projection and this is what you want to maintain across different projections.

20 hours ago, Drimzi said:

It is similar to getting your real 2D sensitivity, which is how fast/far the cursor travels relative to your mouse. If you have a sensitivity of 4, then your cursor moves 4x faster/further than your mouse. If you convert 0% mm from windows to a game, then your universal sensitivity value becomes the same as your real 2D sensitivity. Your camera moves at the same speed as the cursor. The distances to reach things on the screen is all different though but that doesn't matter, that's the pitfall of monitor distance.

If we're willing to disregard distances to keep sensitivity the same, we could take it one step further and also disregard static sensitivities. I made a guide on a method for converting a static sensitivity into an acceleration curve with RawAccel. I don't have all the concise words to explain it perfectly, but I can say that it allows your aim to be more versatile and I noticed a considerable improvement in how I aim by using this method. I will likely never go back to using a single static sensitivity. I now look at static universal sensitivity as a reference point in an acceleration curve, just as how cm/360, monitor size, and FOV are references for universal sensitivity.

These clips give a good sense of how aiming with acceleration looks.
https://clips.twitch.tv/SmokyImpossibleAlbatrossHoneyBadger-RtZkqkzVYL0vX4OE
https://www.twitch.tv/heckminth/clip/TardyCautiousKimchiStrawBeary-jJj6-BEuVY_nRl7j 
Compared with no acceleration, I would say linear acceleration aiming is characterised by better crosshair placement and more stable aim in general. It's very efficient because your sensitivity scales low when tracking and high when flicking.

Edited by heckminth
Link to comment
9 hours ago, heckminth said:

Compared with no acceleration, I would say linear acceleration aiming is characterised by better crosshair placement and more stable aim in general. It's very efficient because your sensitivity scales low when tracking and high when flicking.

 another great example of a benefit accel can give you would be fluid and less chunky  movement

you can mix that 60 to 80 cm/ rev precision with that 30cm speed

Edited by fortunate reee
Link to comment

I wouldn't bother going through the effort of converting your old sensitivity. You have already gotten used to your new sensitivity, and the change would have been small. Something like this for example:

24.5" to 27", still 90 4:3 fov, and still 1920x1080. Only variable that changed was the monitor size.
On the 27" that 90 fov would be equivalent to 84 fov on the 24.5", which isnt what you played at.
90 fov on the 24.5" is equivalent to 96 fov on the 27", which also isnt what you are playing at.
If you want to keep the same cm/360, you have to use 96 fov on the 27". Since you are still using 90 fov, you have to scale the cm/360 using focal lengths. You can find the change in focal length by simply comparing monitor size since thats the only variable that changed. 24.5/27 is the change in focal length. 10%. If it was fov instead, you would just compare fovs, using TAN(BeforeFOV/2 * PI/180) / TAN(AfterFOV/2 * PI/180), in this case you would do 84 and 90, or 90 and 96, both would also give 10%.

4355435.thumb.jpg.ef4c74122dd792d93c37f5704f048d85.jpg

20190611123046_1.thumb.jpg.eb38a43fe6380681865bfa4a4c979ef6.jpg

 

 

This calculator is nice for visualising the focal length.
It's showing the measurement in pixels though, for the physical measurement you need monitor size and resolution to figure out how large a pixel is.

Screen size is diagonal, so you need diagonal resolution to get pixel size.
Assuming a standard 240hz 1920x1080 24.5" monitor, playing Overwatch at 103 FOV 16:9 with 5 sensitivity and 800 Mouse DPI.

DiagonalResolution (pixels)
= SQRT(HorizontalResolution^2 + VerticalResolution^2)
= SQRT(1920^2 + 1080^2)
= 2202.9071700822983

PixelSize (cm)
= (ScreenSize * 2.54) / DiagonalResolution
= (24.5 * 2.54) / SQRT(1920^2 + 1080^2)
= 0.02824903420586495

VerticalFOV (degrees)
= (360 * ATAN(TAN(103/2 * PI/180) / (16/9))) / PI
= 70.53280043291679

FocalLength (pixels)
= (VerticalResolution/2) / TAN(VerticalFOV/2 * PI/180)
= (1080/2) / TAN(((360 * ATAN(TAN(103/2 * PI/180) / (16/9))) / PI)/2 * pi/180)
= 763.6184800011152

ProjectionRadius (cm)
= FocalLength * PixelSize
= ((1080/2) / TAN(((360 * ATAN(TAN(103/2 * PI/180) / (16/9))) / PI)/2 * pi/180)) * ((24.5 * 2.54) / SQRT(1920^2 + 1080^2))
= 21.571484561782103

ProjectionCircumference (cm)
= ProjectionRadius * 2 * PI
= (((1080/2) / TAN(((360 * ATAN(TAN(103/2 * PI/180) / (16/9))) / PI)/2 * pi/180)) * ((24.5 * 2.54) / SQRT(1920^2 + 1080^2))) * 2 * PI
= 135.5376348526406

SensitivityCircumference (cm)
= 360 / (Sensitivity * Yaw * MouseDPI/2.54)
= 360 / (5 * 0.0066 * 800/2.54)
= 34.63636363636364

RealSensitivity (visuomotor ratio)
= ProjectionCircumference / SensitivityCircumference
= 135.5376348526406 / 34.63636363636364
= 3.9131600613623263

Or

SensitivityCircumference (cm)
= ProjectionCircumference / RealSensitivity
= 135.5376348526406 / 3.9131600613623263
= 34.63636363636364

Edited by Drimzi
Link to comment
51 minutes ago, Drimzi said:

I wouldn't bother going through the effort of converting your old sensitivity. You have already gotten used to your new sensitivity, and the change would have been small. Something like this for example:

24.5" to 27", still 90 4:3 fov, and still 1920x1080. Only variable that changed was the monitor size.
On the 27" that 90 fov would be equivalent to 84 fov on the 24.5", which isnt what you played at.
90 fov on the 24.5" is equivalent to 96 fov on the 27", which also isnt what you are playing at.
If you want to keep the same cm/360, you have to use 96 fov on the 27". Since you are still using 90 fov, you have to scale the cm/360 using focal lengths. You can find the change in focal length by simply comparing monitor size since thats the only variable that changed. 24.5/27 is the change in focal length. 10%. If it was fov instead, you would just compare fovs, using TAN(BeforeFOV/2 * PI/180) / TAN(AfterFOV/2 * PI/180), in this case you would do 84 and 90, or 90 and 96, both would also give 10%.

This is fantastic, thank you!

Link to comment
2 hours ago, Drimzi said:

It's showing the measurement in pixels though, for the physical measurement you need monitor size and resolution to figure out how large a pixel is.

Screen size is diagonal, so you need diagonal resolution to get pixel size.
Assuming a standard 240hz 1920x1080 24.5" monitor, playing Overwatch at 103 FOV 16:9 with 5 sensitivity and 800 Mouse DPI.

I use NIS to scale from 720p to 1080p. Does that change anything or would I just use 1920x1080 for my diagonal resolution and pixel size? I went from 23.5 inches to 24.5 inches on my current monitor. Both were 1080p.

Edited by heckminth
Link to comment
2 hours ago, heckminth said:

I use NIS to scale from 720p to 1080p. Does that change anything or would I just use 1920x1080 for my diagonal resolution and pixel size? I went from 23.5 inches to 24.5 inches on my current monitor. Both were 1080p.

Its the number of pixels the game window is occupying. So NIS doesnt affect anything since the game is still occupying 1920x1080 pixels.

23.5 to 24.5 is only a change of 4.25%. It would have felt off, but you would have gotten used to it pretty quickly I would imagine.
- Your cursor should have felt 4.25% faster
- Your game should have felt 4.25% faster
- Your game would be 4.25% larger (a 4.25% zoom if you could view the 24.5" image through the 23.5")

In an ideal world where mouse DPI was very granular, you could have decreased the DPI by 4.25% (you can technically do this with rawaccel). It would have corrected everything. The cursor speed, the rotation speed and the cm/360. The different cm/360 would still make it feel a little off though if you have learnt very specific mouse swipes for 90 degrees (turning corners) and 180 degrees (changing direction you are facing).

 

2 hours ago, heckminth said:

Where do you get 2.54 from?

2.54 is to convert inch to cm.

Edited by Drimzi
Link to comment
  • 4 weeks later...
On 12/5/2021 at 7:30 PM, Drimzi said:

Its the number of pixels the game window is occupying. So NIS doesnt affect anything since the game is still occupying 1920x1080 pixels.

23.5 to 24.5 is only a change of 4.25%. It would have felt off, but you would have gotten used to it pretty quickly I would imagine.
- Your cursor should have felt 4.25% faster
- Your game should have felt 4.25% faster
- Your game would be 4.25% larger (a 4.25% zoom if you could view the 24.5" image through the 23.5")

In an ideal world where mouse DPI was very granular, you could have decreased the DPI by 4.25% (you can technically do this with rawaccel). It would have corrected everything. The cursor speed, the rotation speed and the cm/360. The different cm/360 would still make it feel a little off though if you have learnt very specific mouse swipes for 90 degrees (turning corners) and 180 degrees (changing direction you are facing).

 

2.54 is to convert inch to cm.

Iam still unsure if aspect ratio change anything. Like what is when the 23.5 Monitor has a different aspect Ratio then the 24.5?

Link to comment
  • 11 months later...

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...