In this post, I will show you how to find the mathematically correct FOV (and other multimon settings) to use for any monitor setup. Before we get started:
What is a "mathematically correct" FOV?
Basically, the screen(s) in front of you take up a certain amount of space in your vision. By taking measurements, we can mathematically calculate the FOV (field of view) that is taken up by your screen(s). By applying the values in-game, the resulting view becomes perfectly accurate to your setup. It makes each monitor look like a window into the game world.
Why does it matter?
Having the correct FOV makes things appear at a realistic scale, which improves your depth perception, helping you judge distances and speeds more accurately. It's especially important for sim racing, but it's also great for immersion.
Are there any downsides?
Yes. Unless you have massive screens and/or are comfortable being very close to your screen, the mathematically correct FOV will be very low. That means you may not be able to see your dashboard or side mirrors without turning the camera. It's a tradeoff between realism and practicality. There are ways to mitigate the downsides, which I'll go over later, but whether it’s worth it or not is up to you.
I made a video to help you visualize what mathematically correct FOV should look like on any setup. This is the result you should expect after following this guide.
I also have some janky headcam footage from my old mathematically correct setup, it should show roughly what it looks like when driving.
Read on for instructions on how to tune your own setup. Whether you've got a single monitor or four, I will show you what to do.
Step 1: Obtain Multimon File
The multimon_config.sii file is required for full control of the game's FOV settings. If you want more details about this file, see the documentation page from SCS. Link: https://eurotrucksimulator2.com/multimon_config.php
If you’ve already got this file installed, move on to the next step. Otherwise, follow these instructions to generate a new file.
- Navigate to Documents/[Game Name]
- Edit config.cfg, change r_multimon_mode to “4”, and hit save
- Start the game once, and multimon_config.sii should appear in the folder
Step 2: Open Custom Calculator
I've made a custom Google Sheets calculator that automatically finds the correct settings for any given setup.
IMPORTANT: To use the calculator, you must "Make A Copy". Do not request permission to edit.
- On desktop, go to File >> Make a copy.
- On mobile, tap the three dots to see more options, then it’s Share and Export >> Make a Copy.
If you want to learn more about how the calculator functions, see my dedicated documentation post. Link: viewtopic.php?f=23&t=2206
Step 3: Enter Measurements
Read the general tips and color legend on the landing page, then choose which calculator you want to use. If you just want something quick and easy, use the Simple Calculator. For the full range of options and more advanced configurations, use the Hybrid Calculator.
Fill out your chosen calculator with the measurements from your monitor(s). Hover over the labels to see notes on what each value is about.
For Simple Calculator, just fill in the values from left to right as necessary. Depending on your setup, not all inputs are required.
For Hybrid Calculator, I recommend filling in the always required values first (green cells). Next, add any additional monitors and their required values (blue cells). Then, the relevant optional values (cyan cells) will be highlighted, and you can fill them as necessary.
Once you’ve entered your measurements, check the visualization diagrams to make sure it matches your setup; adjust the inputs if not. See the Adjustment Recommendations section for more tips on using the calculators.
Step 4: Apply Settings
Once you’re happy with what you’ve entered into the calculator, all that’s left is to apply the settings to the game. There are a few different methods you can use, which are explained in the next few sections.
No matter which option you choose, if you’re using Nvidia Surround or equivalent, disable bezel correction. Use the calculator to correct for bezels.
Multimon File Output Method:
The main output for the calculator is a premade multimon config file. Simply double click the indicated cell, select all, copy, and replace the contents of your multimon_config.sii file with it. Make sure to hit save.
If you are using Hybrid Calculator, there is also an output resolution for you to enter into config.cfg, so don’t forget to set that as well.
If you are editing the multimon file while the game is already open, the new settings will not be reflected until you run the console command “multimon reload”. If you want to make further changes, you need to run “multimon save”, then do the changes, then “multimon reload” again.
For some reason, just doing reload again doesn’t update the view. Alternatively, just restart the game, and the multimon settings will be applied on the next start.
If you need a specialized multimon config, such as for NPI AA, see the manual method section instead.
Console Script Output Method:
The Hybrid Calculator also provides a “console script output” option, allowing you to apply all the settings through console commands. To access this, change the output method using the dropdown arrow.
Note that the multimon_config.sii file will be overwritten, so make a backup if needed. That also means specialized multimon configs (such as from NPI AA tweaks) will be lost; avoid this method if you use those specialized configs.
Here are the instructions.
- To enable the developer console, set both g_developer and g_console to 1 in config.cfg
- Create a new text document in the same folder as config.cfg, and name it script.txt (or whatever you like)
- Double click the indicated cell in the Hybrid Calculator output, select all the text, and hit copy
- Open the script file, paste in the text, and hit save
- Start the game, then press the tilde key (~) to open the console
- Run the command “exec /home/script.txt” (or whatever you named it)
- All settings from the calculator should now be applied
Note that if r_multimon_mode wasn’t set to 4 before opening the game, changing the multimon mode to 4 will only take effect after a game restart. So if you get an error about that when running the script, just restart your game.
Also, changing resolution through the console does not take effect until you reload the game’s graphics. You can do this by changing the Vsync setting, then reverting. You do not need to do this if only the multimon settings are changing.
The main advantage of the console method is that you can make multiple scripts, each with different settings. You can then activate them on the fly with the corresponding command. This lets you effectively have unlimited multimon profiles.
Manual Method:
The other methods override the multimon config file with auto generated ones. If you don’t want to do that, you can also just copy each value from the output field individually into the corresponding places.
For Simple Calculator, the raw output values are collapsed in a group by default to reduce clutter. On the left side, click the plus icon next to row 5 to reveal them.
Make sure to start with a configuration that has the same number of monitors as the number of output monitors from the calculator. If you are using NPI AA tweaks, just make sure you’ve downloaded the appropriate file from step 2 of the NPI AA post. Link: viewtopic.php?f=23&t=1000
Adjustment Recommendations
After following the above steps, you should now have a mathematically correct FOV. This section explains more about the different adjustments you can do using my calculator, and what I recommend for different setups to optimize your experience.
FOV Adjustment Method:
Eye distance and FOV are directly related. The smaller your eye distance, the larger the FOV, and vice versa. You can choose to set the FOV directly, or by entering your measured eye distance. For Simple Calculator, the Midpoint option calculates the eye distance automatically from your monitor sizes and angles.
No matter what you choose, as long as you stay at the correct eye distance, as shown by the helper values and the visualization diagram, the view will still be mathematically correct. If you deviate from that position though, it will no longer be accurate.
Improving Visibility:
For many common setups, the mathematically correct FOV will be too low to see the dashboard or side mirrors without moving the camera. If you use Hybrid Calculator, it displays some overall FOV stats that show how much visibility you’ll have.
For example, to see the close mirror, you need that side's edge angle greater than 45. For the far mirror, that needs an angle greater than 60. To see the dashboard, the bottom edge angle should be greater than 22.5. These are rough estimates, different trucks and seat adjustments affect this a lot.
The ultimate solution is to fill more of your vision with screen, which is achieved by moving closer, getting bigger screens, or adding more screens. Making these changes will give you more FOV. If those aren’t options though, there are other tricks that can help.
Seeing the Dashboard:
You can shift the monitor(s) downward (or move yourself upward) to show more of the dashboard below. For Simple Calculator, try entering 0.25 into Normalized Eye Level Offset to raise the eye level by a quarter of the screen height.
For Hybrid Calculator, try entering negative 0.25 times the screen height into Vertical Offset for center monitor. If the side monitors aren’t aligned, use one of the auto alignment options, or add the same offset to them as well.
Doing this can make it harder to see traffic lights, requiring you to look up, but that’s a decent tradeoff in my opinion. You can also move the truck’s seat position downwards or backwards to help see better.
Another option is to get another screen (like a tablet) to show just the dash and place it nearby. There should be plenty of tutorials online about that if you’re interested.
Seeing the Side Mirrors:
The most obvious option is to just enable the virtual mirrors. But if you don’t want that, you could bind a button to look to the side, then recenter the camera on release. Another option is steering or blinker based camera rotation.
If you want to bias the view more to one side, so you can see the far mirror better for example, you can try using the LHD or RHD auto alignment option in Hybrid Calculator. You’ll need to physically shift to the side as shown in the visualization diagram to remain mathematically accurate.
In-Game Seat Adjustment:
It’s usually best to keep the camera’s pitch at zero. In config.cfg, set g_interior_camera_zero_pitch to 1, and in your in-game seat adjustment menu, keep all the rotational camera adjustments in the middle. For the seat adjustment FOV, since we are using overrides in the multimon files, it will not affect our view. Setting it to the lowest (40) allows the most camera movement. You can move your seat and steering wheel position however you prefer.
Head Tracking:
A hands free way to control the camera is to use some form of head tracking. As long as it’s only head rotation (3DoF), and you stay in the same spot, the FOV will remain mathematically accurate. As soon as you move you head away though, the view won’t be right, even with 6DoF head tracking.
It would be really cool if the FOV could update in real time based on your head position, but that’s not an option right now as far as I’m aware.
Curve Compensation:
First, an explanation. The majority of 3D applications use rectilinear projection for their camera views, which looks correct on a flat display. However, a curved display still uses the same image, meaning it will appear bent and distorted. To achieve a truly mathematically correct view, the game would have to support cylindrical projection, but it doesn’t.
So all you can do is approximate the curve using flat views. The Hybrid Calculator can split monitors into multiple flat views with slight angles. The more views, the better the approximation, but there may be noticeable seams. There’s no one best way, just try it to see what you prefer.
To do so, enter the curvature radius of the monitor (with converted units), and under Split Into How Many Views, choose an option other than 1. The total number of views is limited to 4, so if you have multiple curved displays, you may not have much choice.
Minimizing Stretching:
For setups where parts of a monitor will be at an oblique angle from your view, you may notice that the view appears stretched in that area. This is normal, and is how a mathematically correct view should look. When viewing from the correct position, the stretching will be perfectly cancelled out by the effects of foreshortening.
If you want to minimize the stretching anyways, use Midpoint for the FOV Adjustment Method in Simple Calculator. This sets the side monitor to face you directly, which balances the stretching on each edge.
For a similar effect using Hybrid Calculator, set Target Horizontal FOV to match the side Monitor Angle. For example, if the side monitor is angled inwards by 45 degrees, set the target horizontal FOV to 45. As long as the monitors are similar in width, this will balance the stretching on each edge.
There’s even a helper value that quantifies the balance of stretching you should see, labeled Apparent Lateral/Vertical Skew. 0 means balanced stretching on both sides, while 1 or -1 means the stretch is fully on one side.
Note that curved monitors will always add some distortion, which can exacerbate this skew even more. Play around with the curve compensation options in Hybrid Calculator, it should help reduce the stretching.
Mismatched Monitors:
Any pixel inputs in Hybrid Calculator are related to virtual screen space. They usually require no configuration for conventional setups, but they’re really important when working with mismatched resolutions.
For a full guide on optimizing mismatched monitor setups, see this dedicated post. Link: viewtopic.php?f=23&t=2163
Questions? Problems?
First, make sure to watch the video at the top about visualizing mathematically correct FOV. If what you see looks like what’s shown in the video, then you did it correctly.
We’re all used to using much higher FOVs for our games, so seeing mathematically correct FOV for the first time can be jarring. You will need time to get used to it, I encourage you to give it a chance.
For more info, read the Adjustment Recommendations section above. You may find the solution to your problem there. I don’t recommend trying to manually adjust the multimon values, make changes in the calculator instead.
If your issue is not resolved, make a post here. If you can take a picture of what you see and provide a screenshot of what you entered into the calculator, that would make troubleshooting much easier.
If you have any general questions about any of this, feel free to ask me here or in the video comments. Please let me know if you find any errors.
=============================================================================================================================================================================================================================
Manual Calculation Methods
The following is what this post contained originally, but it's now mostly obsolete since I've made the calculator. If you're interested in the math and logic behind everything, or want to do manual calculations for some reason, then read on.
Centered Single View Setups
Starting simply with single screen setups. All you need is the distance your eyes are from the screen and your screen size. There are plenty of online FOV calculators that can give you a number right away, but here is the formula anyways.
Code: Select all
x: screen width (without bezels)
y: distance from eyes to monitor
z: camera FOV
z = 2arctan(x/(2y))
Tip: use degree mode on your calculator
- Find FOV using above formula (or online calculator).
- In multimon_config.sii, change the horizontal_fov_override of your monitor to that number.
Here are some top-down view diagrams to help explain what's happening.
Real life:

In Game:

We want them to line up perfectly, like this:

Now if you find the FOV is too small, there are two options. You can move closer to your display, or you can buy a bigger display.

The lower black line is the same size monitor as before, but closer. The upper black line is a bigger monitor, at the same distance as before. Either option allows the FOV to be raised from 50° to 60° in this example.
Other Single View Setups
There are other types of setups where only ONE camera view is used. If you have multiple screens that are all parallel, it will look right if you use a multimon config file with just one rendered monitor, and stretch the FOV to the correct amount.
Centered Parallel Triples:

Just treat it as one big monitor, and calculate the FOV the same way as with a single monitor (see section above). Note that when measuring the screen width, include the bezels between monitors but not the bezels on the outer edges.
Alternatively, you can find the vertical FOV instead, and the game will automatically adjust the hFOV based on your aspect ratio. Simply use screen height in the formula instead of width, and alter the vertical_fov_override instead of horizontal_fov_override.
Use driver-side bezel correction, such as Nvidia Surround or AMD Eyefinity, to correct the inner bezels.
Off-Center Parallel Duals:

Off-center setups are a bit trickier to set up. See this post: viewtopic.php?f=23&t=2125&p=45054#p45054
Perpendicular Matching Multi-View Setups
This section is for when you have two or three adjacent monitors, each with their own camera views, and all monitors are identical and perpendicular to you.

For this situation, an easy way to get the correct view is to match the monitors’ FOV to the angle of your side monitors. For example, if your monitor angles are 35°, the horizontal FOV of all monitors should be 35°. As long as you are sitting perpendicular to all displays, it will look correct. Here is the formula and setup instructions, including bezel correction.
Code: Select all
A: monitor angle
z: camera FOV
z = A
x: monitor width (of one monitor, with bezels)
w: screen width (of one monitor, without bezels)
s: subrect ratio
s = w/x
- Find the camera FOV (z) and the subrect ratio (s).
- In multimon_config.sii, change the horizontal_fov_override of each monitor to the camera FOV (z).
- Set horizontal_fov_relative_offset to 0 for all monitors.
- Set the heading_offset for each monitor:
> For center monitor, set to 0.
> For left monitor, set to A.
> For right monitor, set to -A. - Set the frustum_subrect_width and height of each monitor to the subrect ratio (s).
- Use frustum_subrect_y to center the image vertically; set it to (1-s)/2 for each monitor.
- Use frustum_subrect_x to center the image horizontally; set it to (1-s)/2 for each monitor.
Below are three example setups.
35°:

45°:

55°:

In all the above configurations, the monitor widths have stayed constant. You'll notice that increasing the monitor angles causes you to have to sit closer to stay perpendicular to the side monitors, which also allows for an increase in FOV. The benefit of having larger monitors for this type of setup is that they can be farther away from you at the same angles, giving you more room for your wheel or other peripherals. My triple 27" monitor setup, for example, can do 45° monitor angle (and FOV) before getting too close for comfort.
Other Multi-View Setups
If your multi-monitor setup does not contain matching monitors, or if you don’t sit perpendicular to all of them, you will need to follow some different procedures.
Perpendicular Mismatched Multi-View Setups

See this post: viewtopic.php?f=23&t=2125&p=45055#p45055
Non-Perpendicular Multi-View Setups

See this post: viewtopic.php?f=23&t=2125&p=45056#p45056
Information Relating to Vertical FOV
In all the above sections, I have been working with horizontal FOV. This is because the monitors are placed side by side, and we are dealing with the widths of monitors, so it's convenient to calculate horizontal values. However, it is also possible to use vertical FOV to obtain the mathematically correct view as well, we just have to use the height of the screen instead. For example, the formula for the vertical FOV of a single screen is the same.
Code: Select all
z = 2arctan(x/(2y))
Note that you only need to find either the horizontal or the vertical FOV, you do not need both. The game will automatically calculate the other one for you based on the aspect ratio of the monitor.
Here are some diagrams for vertical FOV; it should be clear that it’s almost identical to the horizontal FOV diagrams, just rotated.
Real Life:

In Game:

Shifting View Vertically
By default, the view will look correct if your eye level is at the center of the screen. However, you can change that if your screen is not positioned that way. In fact, it can be desirable to move your eye level upwards, as it can let you see more of your dashboard below. This is a way to mitigate one of the downsides of using lower FOV.
See this post: viewtopic.php?f=23&t=2125&p=45057#p45057
Universal Formula
If none of the above setups match your situation, or you just want something super consistent, here is a universal procedure that should work for almost any setup. For example, you can use this for a detached monitor not adjacent to any others, or a quad monitor setup, or a mix of landscape and portrait, ect.
See this post: viewtopic.php?f=23&t=2125&p=45058#p45058