Posted by Steve
Friday, June 12, 2020 8:45 AM
UPDATED: This new FOV method is the ONLY way to achieve a near-perfect 1:1 conversion between both games, providing you are willing to loose (or gain in some situations) a little bit of screen real-estate. This will match your games' FOVs in terms of screen distances by taking advantage of Valorant's locked FOV. This is now my preferred method, and I'll leave it at the top. I've left the old post below if anyone can't handle loosing some screen real-estate. In the following few paragraphs, most use-cases are covered.
I will create a set of custom resolutions to run Valorant at below. These should all be scaled 1:1 by your video card on your monitor (No Scaling, aka, no pixel stretching). If you have stretched CSGO, you are screwed, see the next paragraph. 4:3 non-streched users can rejoice, as can 16:9 users. 16:10 users can't use the FOV method, but get a reasonable multiplier, and aren't entirely screwed, but its not as good news as the 16:9 and 4:3 non-stretched users who get heaps of options.
For non-streched users, these will all use the standard 3.18 divider for your CSGO sensitivity, as we have matched FOV, and we can happily match 360 rotations AND achieve perfect on-screen distance for aim. If you don't want to have any black bars on the horizontal, just match the vertical resolution to the same as CSGO. I believe this will give you some vertical sensitivity error though (eg: instead of using 3622x2038 in Valorant in the first example in the resolution list below, I could just use 3622x2160 and accept some vertical error, but only take on side black bars, with no top and bottom black bars. Valorant will look a little more distorted though too). If you can't figure it out with other weirder CSGO configs, feel free to request, and I can give it a go, but I have already spent a lot of time on this and would rather let people start reporting them in. If you really can't figure it out, ask and let me know.
STRETCH USER: Note to users who take a CSGO 4:3 native ratio/resolution and stretch it out to fill a 16:9 or 16:10 monitor: TLDR: Stretched CSGO users are screwed. Nothing can be done, and as I said near the bottom of my original post, this is your punishment for sweating over fat terrorists your whole life.
It is IMPOSSIBLE to salvage the same FOV in valorant. You have an hFOV of 90 in CS, stretched out to take up your whole screen real-estate. You need to somehow get Valorant's hFOV from 103 down to 90. You can't. You would have to somehow superscale the game past the edge of your monitor, and clip its wings, loosing much of your HUD, and I also have no idea how you could even render it like that. For these users, either use the original 3.18 value, or 2.53 if you want your horizontal distance to match. See my footnote for stretched users way below (2.53 will FUBAR your vertical sens for Valorant, and give you radically wrong 360 motion.). There is no ideal solution for stretch CS users. For most stretch users, I would recommend the 3.18 value as a starting point and learning the new sensitivity. Any data I presented was based on Non stretch conversions. Stretch conversions has the same kind of error gradient that emerges, but radically worse.
CUSTOM RESOLUTIONS FOR VALORANT TO MAINTAIN A 1:1 FOV CONVERSION WITH CSGO:
CSGO NOT STRETCHED, 1:1 implies pixel perfect scaling. Pixel doubling would also be ok (using resolutions half the amount of your monitors native). If you are not 1:1, or 2:1 with pixels, it might still work as long as the ratios are the same, depending on how your graphics card behaves. Not listed below? If your CSGO VERTICAL resolution is listed below, then pick any one that has the same vertical res as you, regardless of horizontal, and find the valorant conversion. They all become the same, because csgo just clips your horizontal anyway.
Simple formula!!!:
Take your csgo vertical resolution (the 1080 in 1920x1080 for example):
Times by 0.9428793 = new Valorant horizontal res
Times by 1.67622932 = new Valorant vertical res
Thank you to x_Delirium in this following post for the math (I adapted his math to figure out the vertical constant without needing to use mouse-sensitivity.com):
https://www.reddit.com/r/VALORANT/comments/fw5nb9/guide_how_to_get_valorant_103_fov_in_csgo/
Common list already done for you, rounded to nearest whole and even numbers:
CSGO: 3840×2160 1:1 16:9 -> Valorant: 3620x2036 1:1
CSGO: 2880x2160 1:1 4:3 -> Valorant: 3620x2036 1:1
CSGO: 2560x1440 1:1 16:9 -> Valorant: 2414x1358 1:1
CSGO: 1920x1440 1:1 4:3 -> Valorant: 2414x1358 1:1
CSGO: 1920x1080 1:1 16:9 -> Valorant: 1810x1018 1:1 ***
CSGO: 1440x1080 1:1 4:3 -> Valorant: 1810x1018 1:1 ***
CSGO: 1366x1080 1:1 ??? -> Valorant: 1810x1018 1:1 ***
CSGO: 1280x960 1:1 4:3 -> Valorant: 1610x906 1:1
CSGO: 1024x768 1:1 4:3 -> Valorant: 1288x724 1:1
CSGO: 1280x720 1:1 16:9 -> Valorant 1206x678 1:1
CSGO: 960x720 1:1 4:3 -> Valorant 1206x678 1:1
CSGO: 640x480 1:1 4:3 -> Valorant 804x452 1:1
*** See how if you use a blackbar res that isn't 4:3, you can get 1:1 with valorant by finding a res above that matches your csgo VERTICAL res, here, that res is 1080.
A decent guide for custom rez creation:
https://appuals.com/how-to-create-custom-resolutions-on-windows-7-8-or-10/
16:10 Native USERS
CSGO: Any 1:1 16:10 NATIVE Resolution -> Valorant IMPOSSIBLE. You only have 100.39 degrees of FOV in CSGO, and you have no more monitor horizontal space to work with to give Valorant room to breathe. It is the same fundamental problem the stretch users are facing. If you use 16:10 on a monitor natively, but somehow have horizontal black bars (this would be weird and unlikely) then it might be possible to do something. For 16:10 users, your best bet is to just use 3.18 or 3.037 (based on my original post's logic) as your sens divider, and see what you prefer, or use something in between. Fortunately for you, 3.037 is a decent multiplier that won't fuck your vertical sense, or 360 too badly. It is pretty much as good as the 3.370 multiplier that 16:9 users who don't want to match FOV can use.
16:9 USERS NOT WILLING TO CHANGE THEIR SCREEN REAL-ESTATE TO MATCH FOV
The divider value I originally posed as being better than 3.18: 3.370
Not everyone will agree, no problem. Consider 3.18 to 3.37 as the sensitivity region you may like. If you pick one, and something feels wrong, try the other. Yes, my original claim about 3.18 being the downright wrong choice is alarmist. Some people will reasonably prefer one or the other, and there are merits to both choices, as I pointed out all along.
Now back to the ideal FOV changing method, and how this ideal FOV matching method works:
CSGO maintains a variable horizontal FOV depending on resolution ratio width, and at 16:9, it is 106.260205, and maintains 73.739795 vertical FOV, LOCKED. At more boxed resolutions/ratios, the sides get sliced off, and you loose hFOV. You never lose vFOV
Valorant maintains a tight 103 horizontal FOV, and ~ 70.5328 vertical FOV. BOTH locked. I've tested this in game by wildly changing ratios and custom resolutions. The game image will always distort to maintain the H and V FOV. We can use this to our advantage to distort Valorant into a screen space that matches what those angles and distances would be in CSGO. Valorant is basically just a slightly zoomed in image compared to CSGO, so now we are going to zoom it out on our monitor a bit to match it.
I originally did some incorrect math to convert this (didn't use trig...). There is a simpler way using the mouse-sensitivity website. I'll run through what I did for my screen (2560x1440). This should be correct providing the mouse-sensitivity equations are correct behind the scene, and I do trust that they are. (This is redundant now. I used the trig to get the constants. See near the res list to the easiest method possible).
Select CSGO as your game. Set sens and DPI. Set res to 2560x1440 (or your native res of CSGO). Start to adjust the 2560 number until it closes in on 103 degrees actual hFOV at the data readout. 2414 pixels is the spot... We just found out what our horizontal res needs to be for valorant (with some small black bars) to match perfectly to csgo, seeming valorant will lock at 103 hFOV no matter what.
You could stop there, and it would be pretty good. Horizontal aim and 360 degree matching is now near pixel perfect. I haven't proven this, but I believe your vertical aim will still be off though. So let's do the same for vertical matching:
Now, convert to Valorant as the output. Set the above horizontal res number just found (2416) as your Valorant res. Now adjust the Valorant vertical res number, until Actual vFOV output closes in on 70.5328. This is taking advantage of what I believe is actually a bug on the Valorant data on the website: it thinks valorant's vFOV can change, even though it can't, so we can use it to figure out what pixel count will salvage our smaller vFOV with black bars. I believe for me, 1358 is that number. If they fix this, we will loose the ability to easily match this using the website (redundant now, we can just use the trig derived constants instead of the website. See above the Res list). Redundant: However, it will still be possible to do by matching it until the vertical distance based sensitivities are the same as the 360 degree rotation sensitivities, but it won't be quite as precise or easy, and will require payment on the site. It is plausible that the vertical component of this is slightly off, but I can't see how or why, and if it is, it would be a tiny deviation. If anyone wants to do the math manually to check, please do.
We now have a new resolution 2414x1358. Set this with NVIDIA control panel, (or AMD, not familiar with it though) as a custom res, and use it in valorant.
Divide your csgo sens by 3.18, or use the default (and free) 360 match on the website (it is doing the same division, just more decimals), and use that.
Set scope multiplier to 0.747, or set/leave to preference (see closer to bottom of my original post far below). I still use 0.747.
A near perfect 1:1 experience between both games is now achieved within a tiny and imperceptible margin of error. All we have done is matched Valorant to fill 103 degrees of CSGO's 106.26xxx screen real-estate on the horizontal (talking from a 16:9 perspective), and 70.5328 degrees of CSGOs 73.73xxx on the vertical.
You may have lost about 11% of your screen real-estate. Effectively, it is like playing CSGO with a little bit of the top, bottom and sides of your screen sheered off. The benefit is a near perfect match in horizontal and vertical behaviour at both the aimer, all the way through to 360 degree movement, a 1:1 match. If you just do the black bars at the sides, your vertical sensitivity will be the same as when using the 360 method, so slightly off, but you've salvaged your horizontal sens completely. Add the vertical black bars, and it should be perfect all-round. If you use a 4:3 CSGO native resolution, you will GAIN screen real-estate in order to match FOV.
A few notes. This does NOT significantly distort Valorant from a native 16:9 (providing you are coming from 16:9 CSGO). Things look absolutely fine. You will almost certainly need to run on Fullscreen mode for it to function well. Windowed mode would work too, but leave your desktop in the wings. Fullscreen Windowed doesn't work for me, it just stretches it back out to full screen.
Are there any negatives to the FOV method in terms of perception and aim? Well, your perception may hinge somewhat on the moving region of the screen being identical in both games. However, I think it most likely that matching FOV, and distances on your monitor, sitting roughly equidistant at all times, and having everything else perfect, will be by far the most successful method for the vast majority of users transitioning between games. I personally have also clipped CSGO now to give it 103 FOV on the horizontal instead of 106.26 (giving me the same vertical black bars between both games) for the utmost consistency. So the only difference between the two games is Valorant has some horizontal black bars. Doing this of course didn't impact my sensitivity in CSGO at all, it just clips the image at the sides a little, giving me some black bars. Remember, CSGO's horizontal FOV is variable based on resolution.
My CSGO res: 2416x1440 native black bar ~ 103x73 FOV blackbars on sides
My valorant res: 2416x1358 ~ 103x70 FOV blackbars on sides, top and bottom.
Hopefully that makes sense.
If you refuse to loose a bit of screen real estate, this is my original post below which uses a different divider that prioritises screen distance instead of 360 degree rotation as the method of matching sensitivities between both games. Both my number below, and the original 3.18 number (without doing what I propose above) will have significant errors, in different parts of your aiming. I argue that my number is better if you want to match your aim. It won't feel right for everyone, and some still preferred 3.18, which is perfectly reasonable. I personally now will be using my above method of matching FOV for a 1:1 match, making this entire section obsolete.
THE ORIGINAL POST WITH THE ORIGINAL VALUES THAT CAN RECOVER SOME OF YOUR AIM IF IT WAS FEELING OFF, FOR THOSE NOT WILLING TO LOOSE SOME SCREEN REAL-ESTATE:
IMPORTANT EDIT: This new number can change depending on your game window ratio. If you are not using the simple 16:9 to 16:9 conversion, proceed with caution. This is largely, although not just, due to how valorant distorts to maintain its 103 hFOV. However, it should be ok if neither game is distorted. So black bars 4:3 CS is ok, as long as valorant is 16:9. I encourage you to head to mouse-sensitivity.com to get a more reliable value using 0% horizontal distance as your match if there is any deviation from these norms. It will cost $3. To anyone I recommended a value to NOT using 16:9, it may be wrong. Apologies. I have a caveat about stretch to non-stretch conversions in a footnote you need to be aware of if deploying this.
TLDR:
The normal method is to divide your CSGO sens by 3.18. This doesn't actually give you correct aim, only a correct abstract sense of movement in the world. Divide by the below instead:
16:9 CSGO to 16:9 Valorant (Native to native): 3.370
4:3 CSGO blackbar non-streched to 16:9 Valorant: 3.370
4:3 CSGO STRETCHED to 16:9 Valorant (Don't fuck with valorant here, it won't behave how you hope): 2.53
PEOPLE USING STRETCHED CONVERSIONS, SEE THE FOOTNOTE BEFORE ASKING QUESTIONS PLEASE :) TLDR IS THAT ALL OPTIONS SUCK AND YOU REALLY MAY WANT TO JUST STICK WITH 3.18.
Ideal, and common scope multipliers are given at the bottom in the scope footnote. For any other weird options, again, pay and go do the work at mouse-sensitivity.com
Yes, using 3.370 will 'feel' a little slower to get around in Valorant now compared to 3.18, at worst about 6% slower in fact, but your aim is more likely to be left in tact. Use whatever you prefer though. Just giving people another option and some stats to what the difference is.
Keep reading if you want to know why these proposed conversions (really just the 3.370 one) are technically "better" than 3.18: This is the bulk of my original post:
ORIGINAL POST AND PROOFING:
People are under the impression that they should be converting their sensitivity from CS:GO by dividing their CS:GO sensitivity by 3.18...
People think this will give them the same sensitivity, thus muscle memory, between the games.
They are (kind of) wrong.
This will only give you the same sense of traversing the game world, as it matches the amount of distance required to move your mouse for a 360 degree rotation. BUT, due to the FOV difference between the two games of 3.26 degrees, you will not have the same feeling of SENSITIVITY.
Here is the result of some math as to why.
How far do I have to move my mouse, in order to get from where my crosshair is, to where that enemies head is on my screen?
You can only achieve a perfect conversion between the two games at ONE point on your monitor. ONE distance. And I can tell you, the 360 degree rotation conversion is wildly off, unless you intend to do a few rotations first in order to hit someone in the head.
I ran the math, and the correct point to calibrate to on your screen is almost certainly 0%, right at the crosshair, making subtle movements at the crosshair (in order to target enemies near your crosshair) perfect between both games. Many may already be aware of this, but it is interesting to understand why.
Ok, if we use the 0% conversion, we end up with a 1:1 SENSITIVITY match between CS:GO and Valorant AT THE CROSSHAIR. Great, but what about points AWAY from the middle of my screen? Well, things gradually get worse the further the distance, and I will provide the percentage of deviation from a perfect match between the special 0% mark, and the very edge of your monitor, if you set at this 0% mark, and I include the error in doing a 360 too.
What do we notice? Perfect conversion (within a few units of error not shown) within a full 15% distance from crosshair to edge of your screen. And very low error, less than 1%, all the way up to 50% distance to edge of screen. This is the hot spot region of aiming. If you are flicking to the VERY edge of your screen, 100% of the way, you have a 2.89% error. Achieving a 360 degree rotation has a 6.02% error, so moving around the game world will feel a bit slower compared to CS:GO, but your aim is comparatively left in tact. A 180 will have about a 5.78% error according to my best calculations.
To compare, lets check the error at each aiming location using the 360 degree as our baseline, the common method where one divides their CS:GO sens by 3.18...
We can see, our 0% distance from edge of screen naturally carries the most error with this method. The aiming hotspot is the WORST translated region. Only a 360 spin is well conserved, NOT your aim. Even aiming to the edge of the screen at 100% carries a (slightly) higher error of 2.95 compared to matching your aim to the 0% mark (2.89% error). At 120% distance from your crosshair (heading offscreen by 20%) the methods switch place, and the 360 degree method becomes less error prone compared to 0% matching.
So, unless you intend your muscle memory to be all about matching for flicking to targets OFFSCREEN, you should absolutely NOT be using the default division by 3.181818....
Match instead to 0%, and divide your CS:GO sensitivity by 3.370 (This is accurate to +- 0.001 units of Valorant sensitivity). This will give you a cleaner conversion in the region of your monitor from 0% to about 115% off your screen, with the MOST conserved sensitivity region being closest to your crosshair.
What is better... for your near-crosshair aiming to carry a 5.68% error? Or a 180 spin to carry about the same amount of error while your key crosshair region carries between none to 1% error. You get the latter with the division I provided above. It seems to me a no-brainer as the better option.
SCOPE FOOTNOTE:
As for your scope multiplier? Unfortunately, at this time you can only correct for one zoom level. I use the 2.5x zoom, to correct the scopes to the same 0% level of my valorant sensitivity, and if you correct as I have said, using the superior 0% CSGO conversion, you will also end up with your scopes behaving the same between CS:GO and valorant. Otherwise, they too will carry the error over from the 360 degree conversion. These values are below (assuming you use 3.370 as your division initially, things get wonky if you want to keep to your 360 degree rotation conservation, yet want your scopes to somehow match). These are independent of your sens.
I think the default of 1.0 in Valorant is equivalent to calibrating all of them to the edge of your screen, 100% by distance. This is, at least, a consistent behaviour. I personally still change it to 0.747.
SCOPE:
To correct the 2.5x valorant scope: 0.747
This = ~ 0.82 from CSGO. Specifically 0.818933
A note about scope multipliers: The ideal provided above is for matching your scope movement to distance via the exact same logic as presented for matching the two games, at 0% distance.
A few other common scope mulits that people like:
CSGO 1.2 = 1.142 Valorant
CSGO 1.0 = 0.927 Valorant
ALL these values are dependent on using 3.370 as your primary sensitivity divider, and not 3.18. Otherwise, your scopes will carry the error of the primary sens. If using different stretched values, these scoped values should still work ON THE HORIZON. Remember, stretched conversions cook your vertical sensitivity, and you can't do anything about it.
Hopefully Valorant releases the ability to tune every scope/ADS level individually, because right now, every other ADS will be a bit off compared to the ideal 2.5x scope. But still closer than the default 1.0 value. For example, the 1.25x ADS of the vandal etc should be set to 0.870, and will be a bit slow with the 0.747 setting.
Yes, scope values can, although not always, change if you deviate from the default 16:9 to 16:9.
STRETCHED GO TO VALORANT FOOTNOTE (or vice versa, non-stretched to stretched):
Converting from stretched to any Valorant can COOK your vertical sens. Nothing can be done, this is your punishment for sweating over fat terrorists your whole life. The divider for 4:3 stretched to Valorant is generically 2.53. Any divider that deviates from 3.18 will increasingly add error to your 360 degree movement. This means that the with a stretch value you end up with a much greater error ramp through the distances, even though your 0% and nearby is correct. I don't have the percentages of error, and I can't be bothered running them, but expect it to be awful. Not to mention, you can't salvage horizontal AND vertical sens anyway with thiscombination, so it still won't feel right. My recommendation for these users is to match to the 360 or nearby (divide by 3.18), tune to personal preference, and learn the new sensitivity, sorry.
If you are doing more bizarre conversions, go pay $3 and figure it out at mouse-sensitivity.com using 0% horizontal monitor distance as your hipfire conversion method. Or tune to 3.18 manually, because just like the above, you can't salvage your old sensitivity with varying stretch conversions to any point that won't feel awful on the vertical and 360 movements.
BETTER DATA:
For the data folk, this much more complete and accurate set of data will give you the error to each point of the screen given a calibration at a specific point. You'll notice at the bottom, all multipliers to use said distance is provided. You'll notice I've used actually the 15% distance as the default, this is because it is a simpler number (3.37) and it actually will give you, almost 100% of the time, the exact same sensitivity as 0% anyway (3.374). However, if you want to have minimum error across the whole visible space, then you actually want to use 50% as your target point (3.334) BUT the error around the crosshair, at 0-15%, is no longer negligible, even though, in reality, across the whole screen, you could consider this the best choice. Sum of the error is of course absolute values. 360 Rot is provided for comparison of error in these regions against the default 3.18(2) method.
DISCLAIMER:
I made extensive use of the mouse-sensitivity.com website for gathering all data points involved in these calculations. I did not do any of the math to generate those data points myself, just the analysis. Check them out, and consider giving them some cash if any of this ended up making things better for you. It's a great site.
References
- https://www.reddit.com/r/VALORANT/comments/h7h1vj/youre_converting_your_csgo_sensitivity_wrong_here/
- https://reddit.com/h7h1vj
More Like This
Our Skye commentated every round like a caster
Posted by Otto
Monday, December 26, 2022 10:50 PM
Previous Ranked Gun Buddies
Posted by Otto
Monday, May 30, 2022 7:29 AM