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

Recommended Posts

Not sure if doubleposting or not here, but I thought this was worth putting in a separate post since I'm very close to an answer here. Apologies if this is bad form.

So, I was thinking about the relationship between the distortion and our FOV, and it has occurred to me.... At 0FOV, our ratio of VFOV to HFOV is 1:1 with our screen's aspect ratio. As we approach FOV 180, the ratio approaches our monitor's aspect ratio. Here's a paste from some scrap number mangling in a spreadsheet: (Please note HFOV is approximated because I couldn't get the formula to behave in libreoffice calc)
 

			HFOV/VFOV		W/H			SAR/PAR
			Projection Aspect Ratio	Screen Aspect Ratio	Projection Distortion Ratio
VFOV	HFOV		PAR			SAR			PDR
110	137		1.24545454545455	1.77777777777778	1.42741281427413
55	85.57		1.55581818181818	1.77777777777778	1.14266422552037
27.5	47.02		1.70981818181818	1.77777777777778	1.03974667989981
13.75	24.2		1.76			1.77777777777778	1.01010101010101
								
								
180	180		1			1.77777777777778	1.77777777777778
135	153.77		1.13903703703704	1.77777777777778	1.5607725824283
90	121.28		1.34755555555556	1.77777777777778	1.31926121372032
45	72.73		1.61622222222222	1.77777777777778	1.09995875154682



Do you see what I see?

Edited by CaptaPraelium
Fixing the table, notes
Link to comment
17 hours ago, CaptaPraelium said:

I think I figured it out, what I have to do is use the calculator to 'convert' from distance with my hipfire, to 360 distance for the same game with the desired zoom level, and manually enter the hipfire sensitivity from the 'from' game, into the 'to' game's Sensitivity 1 field.

I'm doing this because I don't really care to match sensitivity to monitor space, and I think that there's an excessive focus to do so. I want my hand movement to control my soldier movement, regardless of how it may be (mis)represented on screen, so I am ignoring any kind of 2D/3D/distortion/pincushion/etc effects. I don't feel that my mind needs to consider all this distortion, I 'feel' the number of degrees I want to turn and just want to have my mouse move that many degrees (as opposed to moving that many *pixels*). It's all about counts per degree, for me at least.

I feel that the 'answer' to finding a solution that works for me, is related to horizontal vs vertical FOV. For example:
My hipfire is 79 VFOV aka 111.38 HFOV. 42cm 360.
1x scope is 55 VFOV aka 85.57 HFOV.
4x scope is 14.8 VFOV aka 26 HFOV.

Obviously, if my cm/360 is the same at all zoom levels, then when I zoom in at 4x, my mouse will feel overly sensitive, so I need to reduce sensitivity according to zoom. So I should just simply divide my hip FOV by zoom FOV and multiply that by my base sensitivity. So, I do this for HFOV (because I usually think in terms of horizontal FOV) and it works out like so:
1x:
111.38/85.7*42 = 54.66cm/360
4x
111.38/26*42 = 179.92cm/360

Great.
But now I do it for VFOV and:
1x:
79/55*42 = 60.32cm/360
4x:
79/14.8*42 = 224.18cm/360

That's a BIG difference. I haven't had time to think it through beyond this, but I'm sure that I'll find a formula that works for me in such a fashion. I just need to settle the discrepancy between HFOV and VFOV.

Had a couple minutes to consider this and the issue is kinda obvious. What 'makes sense' is that, if I am zoomed in twice as much, I need half the sensitivity. but because the relationship between VFOV and HFOV is nonlinear, the definition of 2*zoom is not as simple as 2*VFOV or 2*HFOV. Of course this is why we see pincushion distortion, but it's not just a matter of an individual's perception, they literally aren't the same.

So I guess the question I need to ask, is: How does one define "2x zoom"?
It's not something we can measure by '2*angle' because of this nonlinear relationship (2* WHICH angle?), and if we use the screen area, then we have a nonlinear ratio of counts per degree which feels unnatural as zoom levels change.

Zoom is

tan(hipFOV/2)/tan(adsFOV/2)

i.e. 0% match distance.

Proof:

HN5GcL3.jpg

Zoom factor is tan(103°/2)/tan(51°/2)=2.636 so then the ADS image is 1/2.636 as large. Rather all the objects in the image are 2.636 times larger, but I had to make the images fit on top of each other.

There's also images like this from the previous thread showing the same thing:

Capture.png

If you maintain the length of the apothem then the ratio between chords will be the zoom ratio.

Also:

 

Link to comment

Right, and that formula works for VFOV and HFOV equally well.
This is interesting because every time I've seen zoom on a scope, it's been a straight division of VFOV, eg a 4x scope is half the VFOV of a 2x scope... The zoom is a lie! ;)

That formula is also supposedly the same as the one used for Battlefield's Uniform Soldier Aiming with coefficient 0. Courtesy of @TheNoobPolice via the BF forums:

Quote

The first ADS formula we tried was this:

SensFactor = tan(ZoomFov/2)/tan(HipFov/2)

This is the same as now having the coefficient setting at 0%. What this does is match the velocity of the mouse movement to the speed of images moving that are right underneath your crosshair at any zoom level.

This looked fool-proof and simple on paper, but it became apparent as zoom increased with sniper scopes that they felt too slow. This was initially baffling, but we realised our brains don't give us a sensitivity sensation based on one part of the screen, rather an average across the screen, and this might be different for different people.

So we then moved on to the idea of using a coefficient (i.e a mathamatical modifier) to change the approach. When the coefficient is set to anything great than 0%, the maths change to this:

SensFactor = atan(tan(ZoomFov/2)*C) / atan(tan(HipFov/2)*C)

where "C" is the coefficent value,


I guess that this tells us that if we want to ignore the effects of projection onto the screen, 0% monitor match is the way to go. Aptly named huh....
And that seems great for me, but now that I've got it behaving, I can see why you guys dislike it for flick shots.

As drimzi said, he feels like it should scale up as FOV scales, and you've mentioned something right along my lines of thinking, of matching to a degree rather than a monitor distance...

I appreciate you guys getting me on your wavelength here, I can do the math and all, but, wasn't really understanding what you were trying to do. I've got way too much time on my hands to help with this, and now I feel like I can get involved. Cheers :)

Link to comment
1 hour ago, CaptaPraelium said:

Right, and that formula works for VFOV and HFOV equally well.
This is interesting because every time I've seen zoom on a scope, it's been a straight division of VFOV, eg a 4x scope is half the VFOV of a 2x scope... The zoom is a lie! ;)

That formula is also supposedly the same as the one used for Battlefield's Uniform Soldier Aiming with coefficient 0. Courtesy of @TheNoobPolice via the BF forums:


I guess that this tells us that if we want to ignore the effects of projection onto the screen, 0% monitor match is the way to go. Aptly named huh....
And that seems great for me, but now that I've got it behaving, I can see why you guys dislike it for flick shots.

As drimzi said, he feels like it should scale up as FOV scales, and you've mentioned something right along my lines of thinking, of matching to a degree rather than a monitor distance...

I appreciate you guys getting me on your wavelength here, I can do the math and all, but, wasn't really understanding what you were trying to do. I've got way too much time on my hands to help with this, and now I feel like I can get involved. Cheers :)

I always thought that 0% match would be (mathematically speaking) the most obvious way to line up fov's since you are essentially taking pixel count difference as measurment (for 3d-3d fovs anyway). I suppose as you say that the wierd part to this would be the distortion and the projection issues that the brain tries to deal with. I think i'll swap to this and let my brain get used to it.

Link to comment

Yeh this is why I'm trying to stick to purely angle-based theories and ignoring the screen projection stuff as much as possible. I mostly believe that "muh feels" is a bad way to do things.
Then again, sometimes "muh feels" are actually telling you that something is wrong. I'm in a fortunate position of having lots of experience with math, programming and the mouse (being an IT professional for some decades) and with gaming (about 10k hours of battlefield alone), but since most of that was as a console peasant, I don't really have any 'muscle memory' to speak of, when it comes to mousing in the 3D realm. I feel that your approach - let the math get it right and let my brain get used to it - is the right way. As was said above, the guys who are making those insane flickshots in CSGO aren't doing it because of some magic formula, they're doing it because of insane amounts of practice. I was amused to see this video  and the description stating that he was using the default sensitivity because that's how it came and he didn't change it....

So, for the next few days or so, I will try to force my brain to get used to 0% MM and see after that if I'm still getting a bad "feels" from it.....
 

 

Link to comment
2 hours ago, CaptaPraelium said:

Yeh this is why I'm trying to stick to purely angle-based theories and ignoring the screen projection stuff as much as possible. I mostly believe that "muh feels" is a bad way to do things.
Then again, sometimes "muh feels" are actually telling you that something is wrong. I'm in a fortunate position of having lots of experience with math, programming and the mouse (being an IT professional for some decades) and with gaming (about 10k hours of battlefield alone), but since most of that was as a console peasant, I don't really have any 'muscle memory' to speak of, when it comes to mousing in the 3D realm. I feel that your approach - let the math get it right and let my brain get used to it - is the right way. As was said above, the guys who are making those insane flickshots in CSGO aren't doing it because of some magic formula, they're doing it because of insane amounts of practice. I was amused to see this video  and the description stating that he was using the default sensitivity because that's how it came and he didn't change it....

So, for the next few days or so, I will try to force my brain to get used to 0% MM and see after that if I'm still getting a bad "feels" from it.....
 

 

Rendezvous in a couple of days here then.

Link to comment

You could try in this graph choose a c such that the integral on either side is equal.

Since that isn't worded super well here's what I found:

http://www.wolframalpha.com/input/?i=integral_0^1+(x%2F103-arctan(2%2F3tan(x+pi%2F360))%2Farctan(2%2F3tan(103+pi%2F360)))dx

http://www.wolframalpha.com/input/?i=integral_0^1+(arctan(2%2F3tan(x+pi%2F360))%2Farctan(2%2F3tan(103+pi%2F360))-tan(x+pi%2F360)%2Ftan(103+pi%2F360))dx

A screen distance of about 2/3 will be down the middle in terms of area. If someone has wolfram pro they could use the extended computation time to find a more precise value. I think this should work but I'm not sure.

But tbh this is a bit arbitrary and there's not really a mathematical reason to do this that I know of.

Oh also ~2/3 is only for 103° but I don't expect it to change a ton as long as you don't go super far from 103

Edited by Skwuruhl
Link to comment
On 24/07/2017 at 6:15 PM, CaptaPraelium said:

Yeh this is why I'm trying to stick to purely angle-based theories and ignoring the screen projection stuff as much as possible. I mostly believe that "muh feels" is a bad way to do things.
Then again, sometimes "muh feels" are actually telling you that something is wrong. I'm in a fortunate position of having lots of experience with math, programming and the mouse (being an IT professional for some decades) and with gaming (about 10k hours of battlefield alone), but since most of that was as a console peasant, I don't really have any 'muscle memory' to speak of, when it comes to mousing in the 3D realm. I feel that your approach - let the math get it right and let my brain get used to it - is the right way. As was said above, the guys who are making those insane flickshots in CSGO aren't doing it because of some magic formula, they're doing it because of insane amounts of practice. I was amused to see this video  and the description stating that he was using the default sensitivity because that's how it came and he didn't change it....

So, for the next few days or so, I will try to force my brain to get used to 0% MM and see after that if I'm still getting a bad "feels" from it.....
 

 

Keep in mind that unless the conversions you are using are perfect it will be hard to distinguish what feels off because of distortion and what feels off because of the incorrect formula.

Link to comment

Good point. I'm mostly concerned about what feels off because of psychological aspects (as in, it doesn't feel like what I expect it to, or what I'm accustomed to, etc)
I've already come across one example of this, in the way the game transitions between sensitivities. Battlefield (and other games) by default will instantly change to the ADS sens, at the moment you press the ADS button. With USA switched on, it transitions sensitivity as the FOV transitions. Obviously this is a difference which can have a massive effect on the way it all feels. I'm going to have to develop a mouse macro, and a formula and measure videos, to avoid any 'human factor' in it.

Link to comment

I'm not sure what page everyone else is on but I want to go back to the start and clarify some things...

What is Viewspeed and why is it the best way to convert sensitivity? It is like your sensitivity is represented by gears and pulley. Each Field of View is completely in sync with each other and your sensitivity feels exactly the same no matter what. This helps hugely with muscle memory. It is not matching points on your monitor. Because of distortion, matching points on the monitor will always be inconsistent and imperfect. It may be close, but it's not perfect and it needs to be perfect.

Now this is where I think everyone has gone off track and why the current formula just doesn't work... How is Viewspeed meant to convert?

Firstly, we must consider how we convert from 3D to 3D. In terms of determining sensitivity, it is the circumference of the "gears" that we need to identify when converting between different FOVs. And according to math, it is very simple: given that you know the circumference of the first FOV and its angle (which is the FOV), you calculate its chord length and you then use that chord length to calculate the circumference of the FOV you are converting to.

The equations for calculating this are:

Radius_firstFOV = Circumference_firstFOV / (2 x pi)

1/2 Chordlength_firstFOV = sin(firstFOV) x Radius_firstFOV

Radius_newFOV = 1/2 Chordlength_firstFOV / sin(newFOV)

Circumference_newFOV = 2 x pi x Radius_newFOV

In one big equation it looks like this:

Circumference_newFOV = 2 x pi x ((sin(firstFOV) x (Circumference_firstFOV / (2 x pi))) / sin(newFOV))

 

The second part of the problem is converting 2D to 3D and vice versa. Now, we can say that 2D is essentially 0 FOV. As you approach 0 FOV the "gears" get bigger and bigger and the arc length becomes flatter and flatter (until it is essentially flat/2D). If 0 FOV were to have a Circumference (which is how we determine 3D sensitivity), it would be infinitely long and would turn infinitely slow. But we can't convert with infinity, so this idea fails. However, infinitely slow doesn't mean the gear is not moving. 0 FOV is still in sync with every other FOV. So we know that it is possible to convert 2D-3D. But how?

The solution to this is that the arc length for 0 FOV and the chord length that each Field of View shares is exactly the same distance. Therefore, we don't need to calculate the circumference of 0 FOV, we can just use its chord length (which is what the calculator uses anyway). If we are converting from 3D to 2D we use the circumference to calculate the chord length and if we are converting from 2D to 3D we use the chord length to calculate circumference.

 

This, I believe, is the solution to reworking Viewspeed. None of this overcomplication.

Edited by potato psoas
Link to comment
4 minutes ago, Drimzi said:

Viewspeed isn't actually like gears and pulleys. That analogy would belong to 0%, or 100%, depending how you look at it. If a gear is half size, it would rotate double. With 100%, 90 FOV would rotate twice as fast as 45 FOV, however 90 FOV is not exactly 2x the size as pointed out by Skwuruhl, 0% would make the FOV with 2x zoom factor rotate twice as fast instead.

Well when we were originally trying to figure it out, we used gears to explain how FOVs moved in sync. I don't really know what Viewspeed is using but this is the way it should be. I know gear ratios don't exactly work, which is why you need to find the circumference according to the chord length, since the chord length is the one thing that doesn't change for all FOVs.

Edited by potato psoas
Link to comment

Given that vertical and horizontal distortion differ, is it even possible to calculate the 'gear' size by means of using chord length? I mean... which chord, vertical or horizontal?

The right formula will work equally well for VFOV or HFOV, and that's why when I approached this I started there.

Link to comment
On 7/27/2017 at 2:55 PM, CaptaPraelium said:

Given that vertical and horizontal distortion differ, is it even possible to calculate the 'gear' size by means of using chord length? I mean... which chord, vertical or horizontal?

The right formula will work equally well for VFOV or HFOV, and that's why when I approached this I started there.

I'm sure it would still work the same way, unless game developers messed up their sensitivity settings. So I wouldn't worry about vertical distortion as long as the game world is spherical. You should be able to sync in any direction as long as the sensitivity is correct for at least one direction.

Edit: It would be like playing 1:1 aspect ratio but you have black bars on the vertical ends - distortion isn't different at all, you just can't see it

Edited by potato psoas
Link to comment
16 minutes ago, Drimzi said:

Just because 0% is the zoom ratio (or chord ratio) between two FOVs, doesn't mean the input should be slowed down equally as much. Putting theory, speculation or proof aside, you can tell by simply trying 0% sensitivity yourself. 100% on the other hand, to me at least, seems to preserve the speed within the useful field of view. At first I thought the sensitivity was too slow as the FOV increases to the extremes when matched at 100%, so I thought the solution must scale towards 0% at extremely high FOV settings (0% is really slow at low FOV and really fast at high FOVs, 100% is the opposite) but that doesn't really seem to be the case. 100% may seem slower overall at the extremely high FOVs (that noone would ever use anyway) but within the useable field of view, the non distorted part of the screen, the speed feels exactly the same. So ignoring distortion, 100% to me feels like it is preserving the speed. That is the very definition of 'viewspeed'. 100% is also circle ratio / zoom ratio. It is most likely the solution that counteracts the zoom's effect on the sensitivity, leaving the sensitivity feeling the same no matter what zoom level it is.

I agree. I did some testing and 100% monitor match yields exactly the same results as my equation but only when converting between 3D and 3D. It doesn't work when you convert 2D to 3D or vice versa.

 

I should say that to convert from 2D to 3D you calculate the radius of the FOV using the chord length (2D edge-to-edge distance) and then use that radius to calculate the circumference of the FOV (the cm/360).

To convert from 3D to 2D you calculate the radius of the FOV and work backwards to find the chord length.

It's very quick and easy to do in Excel.

Edited by potato psoas
Link to comment

I think you'd do really well to completely separate the issues of matching 2D to 3D, and 3D to 3D. In all of your excellent work on this subject, I've never seen 2D to 3D conversion introduce anything but trouble.

Quote


Just because 0% is the zoom ratio (or chord ratio) between two FOVs, doesn't mean the input should be slowed down equally as much. Putting theory, speculation or proof aside......

Is not science. Don't get me wrong, like I said above, if "muh feels" tells us that it feels wrong, it might be actually wrong.... but it might also be lying to ourselves. If 0% feels wrong, and you're convinced that it *is* wrong (and not just a trick of the mind), then what will feel right, will be found by figuring out WHY it feels wrong.
 

Link to comment
1 hour ago, potato psoas said:

I'm sure it would still work the same way, unless game developers messed up their sensitivity settings. So I wouldn't worry about vertical distortion as long as the game world is spherical. You should be able to sync in any direction as long as the sensitivity is correct for at least one direction.

I'm not so sure. Given that the vertical chord and horizontal chord ratio is always the same as our aspect ratio, but the horizontal and vertical arc ratios are not......

We know that 0% MM is = zoom ratio is = chord ratio, maybe this is why 0% feels odd. Has anyone tried using arc ratios?

Edited by CaptaPraelium
Link to comment
38 minutes ago, CaptaPraelium said:

I think you'd do really well to completely separate the issues of matching 2D to 3D, and 3D to 3D. In all of your excellent work on this subject, I've never seen 2D to 3D conversion introduce anything but trouble.

Is not science. Don't get me wrong, like I said above, if "muh feels" tells us that it feels wrong, it might be actually wrong.... but it might also be lying to ourselves. If 0% feels wrong, and you're convinced that it *is* wrong (and not just a trick of the mind), then what will feel right, will be found by figuring out WHY it feels wrong.
 

So far 0% feels wrong and right for me if that makes sense. It gives me the control I should have in zoom that viewspeed doesn't (this is bf4 1x sights btw) but it doesn't feel natural. Bear in mind that I just swapped from viewspeed so I am still getting used to it and it seems to be getting better with time. This is definitely a muh feels vs muh reals scenario since ultimately the brain specialises to one fov and one sensitivity for that specific fov so changes will throw it off no matter how mathematically correct they are.

Link to comment
18 minutes ago, Drimzi said:

Sounds to me like the only right you are feeling is a lower sensitivity. Maybe try 100% with a lower overall sensitivity.

I would agree with you but im currently on 34 inches for a 360 x'D. Trust me I've tried every sens from 5-35 inches and it's the same with viewspeed or 100%. It feels way too fast when in ads. Yet again this is personal preference and muh feels so don't hold this as a universal truth.

Link to comment

FWIW with my complete lack of muh feels (because I am a recently converted console peasant) I had the same experience, it felt wrong and right.. Sometimes, most times, it would feel just fine at 0%. Then at other times, it felt like I was dragging the gun through mud.
I recorded all of those moments and on later inspection I noticed a commonality between them - they were all when there was a significant vertical component, to the vector to, or position of, the target.
I've also noticed that despite most games working in VFOV, we tend to do all our calculations, illustrations and demonstrations in HFOV.
I was reproducing the effect in skwuruhl's post, that first image; in-game and despite all measurements of images telling me that is in fact 2x or 4x (or whatever x) zoom, it just doesn't look that way to my eyes. Like, it looks perfectly like 2x zoom but when I look at the hipfire image and try to imagine 2x zoom it just doesn't work that way when I do the math. MUH FEELS

So I'm staring longingly at this image from wolfram (which it wont let me embed, lame)
projections_fed_trans_merc_rect_150.jpg
So let's use this one....
hoping that the answer will jump out at me and I'm thinking....
The horizontal distortion gives this kind of 'wrap around' effect, like I'm looking at it all projected on a cylinder wrapped around me, or the inside of a tube cut in half. But the vertical distortion doesn't feel that way. It just feels kinda sorta like perspective. Like this:
7c0f5de671e7dad52719cf3439446bf9.jpg

Am I the only one that sees it that way? I mean I know it's not quite right, but when you look at that wolfram image, do you see a half-tube kind of shape? (and I mean kind of. It sure af doesn't look like a sphere to me)

I ask this because in our efforts to be mathematically correct we seemingly always run into muh feels and if our brains see rectilinear projection otherwise than we've assumed, this would explain it.

Edited by CaptaPraelium
wolfram wont let me embed :P
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...