[GUIDE] Finding the Mathematically Correct FOV & Multimon Settings For ANY Monitor Setup

Make your game even better
a1337cookie
Posts: 122
Joined: June 14th, 2021, 2:11 am

Re: [GUIDE] Finding the Mathematically Correct FOV & Multimon Settings For ANY Monitor Setup

Post by a1337cookie » December 11th, 2023, 8:03 am

Major Update: Combined almost all calculator functionality into new Hybrid Calculator, as well as added QOL features. No more figuring out which calculator to use and copy pasting values between sheets, everything is all in one place now.

New features include auto width/height from aspect ratio, easy LHD/RHD offset, better curve compensation, additional FOV info/adjustment, and console script output. See my dedicated calculator documentation post for more details.

The guide itself has also been updated. Since the Hybrid Calculator accommodates all setup types now, the usage instructions have been significantly simplified. I also added some multimon file templates, which may be more widely applicable for different users.

Last time, I said it was probably the last major update, but clearly I was wrong. This calculator also feels like a final version, but maybe I'll be wrong again. Anyways, please let me know if you have any issues.
NewBeeTrucker
Posts: 7
Joined: March 14th, 2023, 8:12 am

Re: [GUIDE] Finding the Mathematically Correct FOV & Multimon Settings For ANY Monitor Setup

Post by NewBeeTrucker » April 30th, 2024, 8:38 pm

Hi,

I would like to thank you for this calculator and guidelines. I manage to use it with my 3 monitors.

Now I'm trying to achieved the 4 monitor setup but with dashboard/wheel view. but having issues to make it work.

Here's my configuration;

1. Nvidia Control Panel
Image

2. Config file
Image

3. Multimon config

Code: Select all

SiiNunit
{
multimon_config : _nameless.Quad.View {
 normalized_ui_x: 0.250000
 normalized_ui_width: 0.250000
 monitors: 4
 monitors[0]: _nameless.monitor.1
 monitors[1]: _nameless.monitor.2
 monitors[2]: _nameless.monitor.3
 monitors[3]: _nameless.monitor.4
}

monitor_config : _nameless.monitor.1 {
 name: monitor1
 normalized_x: 0.250000
 normalized_y: 0.000000
 normalized_width: 0.250000
 normalized_height: 1.000000
 horizontal_fov_relative_offset: 0.000000
 vertical_fov_relative_offset: 0.000000
 heading_offset: 0.000000
 pitch_offset: 0.000000
 roll_offset: 0.000000
 camera_space_offset: (0.000000, 0.000000, 0.000000)
 horizontal_fov_override: 42.611567
 vertical_fov_override: 26.526657
 frustum_subrect_x: 0.005495
 frustum_subrect_y: 0.000000
 frustum_subrect_width: 0.989011
 frustum_subrect_height: 1.000000
 render_interior: true
 render_exterior: true
}

monitor_config : _nameless.monitor.2 {
 name: monitor2
 normalized_x: 0.000000
 normalized_y: 0.000000
 normalized_width: 0.250000
 normalized_height: 1.000000
 horizontal_fov_relative_offset: 0.000000
 vertical_fov_relative_offset: 0.000000
 heading_offset: 35.000000
 pitch_offset: 0.000000
 roll_offset: 0.000000
 camera_space_offset: (0.000000, 0.000000, 0.000000)
 horizontal_fov_override: 53.146251
 vertical_fov_override: 25.473044
 frustum_subrect_x: 0.000000
 frustum_subrect_y: 0.000000
 frustum_subrect_width: 0.739473
 frustum_subrect_height: 1.000000
 render_interior: true
 render_exterior: true
}

monitor_config : _nameless.monitor.3 {
 name: monitor3
 normalized_x: 0.500000
 normalized_y: 0.000000
 normalized_width: 0.250000
 normalized_height: 1.000000
 horizontal_fov_relative_offset: 0.000000
 vertical_fov_relative_offset: 0.000000
 heading_offset: -35.000000
 pitch_offset: 0.000000
 roll_offset: 0.000000
 camera_space_offset: (0.000000, 0.000000, 0.000000)
 horizontal_fov_override: 53.146251
 vertical_fov_override: 25.473044
 frustum_subrect_x: 0.260527
 frustum_subrect_y: 0.000000
 frustum_subrect_width: 0.739473
 frustum_subrect_height: 1.000000
 render_interior: true
 render_exterior: true
}

monitor_config : _nameless.monitor.4 {
 name: monitor4
 normalized_x: 0.750000
 normalized_y: 0.000000
 normalized_width: 0.250000
 normalized_height: 1.000000
 horizontal_fov_relative_offset: 0.000000
 vertical_fov_relative_offset: 0.000000
 heading_offset: 0.000000
 pitch_offset: -30.000000
 roll_offset: 0.000000
 camera_space_offset: (0.000000, 0.000000, 0.000000)
 horizontal_fov_override: 36.935312
 vertical_fov_override: 38.168235
 frustum_subrect_x: 0.000000
 frustum_subrect_y: 0.377914
 frustum_subrect_width: 1.000000
 frustum_subrect_height: 0.579184
 render_interior: true
 render_exterior: true
}

}
Here's what I got when I play the game.

Image

As you can see, there are 4 sections in my 3 monitors. It looks like that my 4th monitor is not detected and the system added the 4th view to my 3rd monitor that's why it looks like stitched.

see below picture of my 4th monitor and disregard the actual positioning this is for testing only. It is not detected as 4th monitor by the game configuration.
Image


BTW I'm using resize Racoon to play the game with 3 monitors without nvidia surround because it limits me with 60hz. Using resize tool i can play it smoothly. Here's the config if it will help as well for troubleshooting.
Image

Hope you can help me to point out the issue and how to fix it.
thank you so much!
User avatar
JHTrucker
Expert
Posts: 1335
Joined: February 7th, 2020, 3:19 pm
Location: UK

Re: [GUIDE] Finding the Mathematically Correct FOV & Multimon Settings For ANY Monitor Setup

Post by JHTrucker » April 30th, 2024, 9:04 pm

@NewBeeTrucker - You are not using the multimon file you created.

From your config: uset r_multimon_mode "3" <-- change to 4

The step 2 quad file in the NPI topic has 3 screens and a dash view if you need to check anything.

EDIT
Also, your game resolution needs to be 4 times your monitors x resolutions

For example: 7680x1080
Then the 3 screens will be shown across 0 to 5760
And the dash screen 4 will be 5760 to 7680
multimon_config.sii files: viewtopic.php?p=17658#p17658
controls.sii edits: viewtopic.php?p=24744#p24744
TrackIR edits: viewtopic.php?p=46613#p46613
Extra Cameras: viewtopic.php?p=46034#p46034
a1337cookie
Posts: 122
Joined: June 14th, 2021, 2:11 am

Re: [GUIDE] Finding the Mathematically Correct FOV & Multimon Settings For ANY Monitor Setup

Post by a1337cookie » May 1st, 2024, 2:36 am

@NewBeeTrucker - As JHTrucker said, you should make sure multimon mode is set to 4. Additionally, to get the game to display on the fourth monitor, the game window must be resized to cover it; currently, at 5760x1080, the window is only covering the three main monitors.

It seems like the fourth monitor is a smaller resolution than the others, I will assume 1280x720. If you keep your current display arrangement, the window should be resized to 5760x1800. Make sure to use my Hybrid Calculator, you will need to adjust the "normalized" values in the multimon file. One problem though, is the UI will be in an awkward position, partially on your fourth monitor.

If you're okay with rearranging, I recommend you drag display 4 to the right, so all the monitors are in a line. Then, the game window should be resized to 7040x1080. Once again, use Hybrid Calculator to adjust the multimon values. The UI will have no problem in this configuration.
NewBeeTrucker
Posts: 7
Joined: March 14th, 2023, 8:12 am

Re: [GUIDE] Finding the Mathematically Correct FOV & Multimon Settings For ANY Monitor Setup

Post by NewBeeTrucker » May 1st, 2024, 9:10 am

@NewBeeTrucker - You are not using the multimon file you created.

From your config: uset r_multimon_mode "3" <-- change to 4 ---> Noted on this, actually I get the value of "3" from this link https://eurotrucksimulator2.com/multimon_config.php

Image

The step 2 quad file in the NPI topic has 3 screens and a dash view if you need to check anything. ---> May I know the link for this topic to get the quad file you are referring to? thank you so much for these insights

EDIT
Also, your game resolution needs to be 4 times your monitors x resolutions

For example: 7680x1080
Then the 3 screens will be shown across 0 to 5760
And the dash screen 4 will be 5760 to 7680



a1337cookie wrote:
May 1st, 2024, 2:36 am
@NewBeeTrucker - As JHTrucker said, you should make sure multimon mode is set to 4. Additionally, to get the game to display on the fourth monitor, the game window must be resized to cover it; currently, at 5760x1080, the window is only covering the three main monitors.

It seems like the fourth monitor is a smaller resolution than the others, I will assume 1280x720. If you keep your current display arrangement, the window should be resized to 5760x1800. Make sure to use my Hybrid Calculator, you will need to adjust the "normalized" values in the multimon file. One problem though, is the UI will be in an awkward position, partially on your fourth monitor.

If you're okay with rearranging, I recommend you drag display 4 to the right, so all the monitors are in a line. Then, the game window should be resized to 7040x1080. Once again, use Hybrid Calculator to adjust the multimon values. The UI will have no problem in this configuration.

--->I already rearrange it as recommended see image below.
Image

Actually I managed to somehow make it work using this test configuration

1. Config file
uset r_multimon_mode "3"

2. My 4th monitor resolution is
Image

So from 7040x1080 I edited my Resize Racoon and config to 7126x1080
Image
Image

Here's the output in-game

Image
Image

As you can see, on my 3rd right monitor there are some part of the screen that should be in my 4th monitor. And the separation of the screens are not align correctly.

BTW, I'm Still using the quad calculator on this test scenario, same multimon config from my previous post.

Code: Select all

SiiNunit
{
multimon_config : _nameless.Quad.View {
 normalized_ui_x: 0.250000
 normalized_ui_width: 0.250000
 monitors: 4
 monitors[0]: _nameless.monitor.1
 monitors[1]: _nameless.monitor.2
 monitors[2]: _nameless.monitor.3
 monitors[3]: _nameless.monitor.4
}

monitor_config : _nameless.monitor.1 {
 name: monitor1
 normalized_x: 0.250000
 normalized_y: 0.000000
 normalized_width: 0.250000
 normalized_height: 1.000000
 horizontal_fov_relative_offset: 0.000000
 vertical_fov_relative_offset: 0.000000
 heading_offset: 0.000000
 pitch_offset: 0.000000
 roll_offset: 0.000000
 camera_space_offset: (0.000000, 0.000000, 0.000000)
 horizontal_fov_override: 42.611567
 vertical_fov_override: 26.526657
 frustum_subrect_x: 0.005495
 frustum_subrect_y: 0.000000
 frustum_subrect_width: 0.989011
 frustum_subrect_height: 1.000000
 render_interior: true
 render_exterior: true
}

monitor_config : _nameless.monitor.2 {
 name: monitor2
 normalized_x: 0.000000
 normalized_y: 0.000000
 normalized_width: 0.250000
 normalized_height: 1.000000
 horizontal_fov_relative_offset: 0.000000
 vertical_fov_relative_offset: 0.000000
 heading_offset: 35.000000
 pitch_offset: 0.000000
 roll_offset: 0.000000
 camera_space_offset: (0.000000, 0.000000, 0.000000)
 horizontal_fov_override: 53.146251
 vertical_fov_override: 25.473044
 frustum_subrect_x: 0.000000
 frustum_subrect_y: 0.000000
 frustum_subrect_width: 0.739473
 frustum_subrect_height: 1.000000
 render_interior: true
 render_exterior: true
}

monitor_config : _nameless.monitor.3 {
 name: monitor3
 normalized_x: 0.500000
 normalized_y: 0.000000
 normalized_width: 0.250000
 normalized_height: 1.000000
 horizontal_fov_relative_offset: 0.000000
 vertical_fov_relative_offset: 0.000000
 heading_offset: -35.000000
 pitch_offset: 0.000000
 roll_offset: 0.000000
 camera_space_offset: (0.000000, 0.000000, 0.000000)
 horizontal_fov_override: 53.146251
 vertical_fov_override: 25.473044
 frustum_subrect_x: 0.260527
 frustum_subrect_y: 0.000000
 frustum_subrect_width: 0.739473
 frustum_subrect_height: 1.000000
 render_interior: true
 render_exterior: true
}

monitor_config : _nameless.monitor.4 {
 name: monitor4
 normalized_x: 0.750000
 normalized_y: 0.000000
 normalized_width: 0.250000
 normalized_height: 1.000000
 horizontal_fov_relative_offset: 0.000000
 vertical_fov_relative_offset: 0.000000
 heading_offset: 0.000000
 pitch_offset: -30.000000
 roll_offset: 0.000000
 camera_space_offset: (0.000000, 0.000000, 0.000000)
 horizontal_fov_override: 36.935312
 vertical_fov_override: 38.168235
 frustum_subrect_x: 0.000000
 frustum_subrect_y: 0.377914
 frustum_subrect_width: 1.000000
 frustum_subrect_height: 0.579184
 render_interior: true
 render_exterior: true
}

}

Also the reason why I still use uset r_multimon_mode "3" is because when I change it to "4" the view of the right windows does not appear and from the windshield the next view is changed to the dashboard view. Again this is for my testing scenario only just to make sure changing the resolution will make my 4th monitor detected and be able to output the game (and I achieved it)


However, for your suggestion to use the Hybrid calculator, I really don't know if I'm doing it correctly in putting the number to the cells. Maybe if you can give me sample calculations for this monitor setup I can have a reference which cells to input data and what data to input.

See my monitor details for your reference;

Left monitor 24 inches 1080p (54Width and 33 height including bezels) .3 for the right bezels
Center monitor 24 inches 1080p (54Width and 33 height including bezels) .3 for the left and right bezels
Right monitor 24 inches 1080p (54Width and 33 height including bezels) .3 for the left bezels
4th monitor 1366x768 (45Width and 27 height including bezels)

Here is my attempt to put these details to the Hybrid calculator
Image

for the pixel computation in column P and Q I convert the values from cm to pixel https://www.unitconverters.net/typograp ... ixel-x.htm

Let me know if this is correct or I missed anything. Once you confirm that this are correct I will use it and change my uset r_multimon_mode "3" to 4

Thanks and really appreciate your effort guiding us to make it work.!
a1337cookie
Posts: 122
Joined: June 14th, 2021, 2:11 am

Re: [GUIDE] Finding the Mathematically Correct FOV & Multimon Settings For ANY Monitor Setup

Post by a1337cookie » May 1st, 2024, 1:00 pm

@NewBeeTrucker - When r_multimon_mode is set to 3, the preset shown in the documentation page is used. It is for 4 identical monitors configured in a line, but since your fourth monitor isn't the same size, it doesn't quite work, as you've found out. That's why we want a custom setup, where we can specify the size and position of each individual monitor. Setting r_multimon_mode to 4 tells the game to read from the multimon_config.sii file, which is how we make custom setups (using the calculator).

As for using the Hybrid Calculator, you should read through Step 3 from the main post, there are step by step instructions on how to enter everything in. To summarize:
  • Screen width and height should be measured without bezels
  • Pixel width and height is just your screen resolution (1920x1080 or 1366x768)
  • Use the visualization diagrams to check your inputs
It should look something like this for your setup.

Image

You can tweak the monitor angles and bezel widths more, I just eyeballed it from the pictures of your setup. Here are the visualization diagrams.

Image

Adjust the values until the top view and front view diagrams look close to your physical setup. The virtual screen space diagram should also match the arrangement in your display settings. Give it a try and let me know how it goes.
NewBeeTrucker
Posts: 7
Joined: March 14th, 2023, 8:12 am

Re: [GUIDE] Finding the Mathematically Correct FOV & Multimon Settings For ANY Monitor Setup

Post by NewBeeTrucker » May 1st, 2024, 4:31 pm

a1337cookie wrote:
May 1st, 2024, 1:00 pm
@NewBeeTrucker - When r_multimon_mode is set to 3, the preset shown in the documentation page is used. It is for 4 identical monitors configured in a line, but since your fourth monitor isn't the same size, it doesn't quite work, as you've found out. That's why we want a custom setup, where we can specify the size and position of each individual monitor. Setting r_multimon_mode to 4 tells the game to read from the multimon_config.sii file, which is how we make custom setups (using the calculator).

As for using the Hybrid Calculator, you should read through Step 3 from the main post, there are step by step instructions on how to enter everything in. To summarize:
  • Screen width and height should be measured without bezels
  • Pixel width and height is just your screen resolution (1920x1080 or 1366x768)
  • Use the visualization diagrams to check your inputs
It should look something like this for your setup.

Image

You can tweak the monitor angles and bezel widths more, I just eyeballed it from the pictures of your setup. Here are the visualization diagrams.

Image

Adjust the values until the top view and front view diagrams look close to your physical setup. The virtual screen space diagram should also match the arrangement in your display settings. Give it a try and let me know how it goes.
It's working properly now! thank you so much! I just followed all of your instructions and guidelines and it works!

Disregard the color of my 4th monitor hahahaha I just wanna try it for future reference just in case I will transfer to a new location and will have this kind of setup.

You and your Calculator is a blessing to us! thank you brother!

I really don't know why SCS can't include this kind of configuration builtin to the game user interface like assetto corsa and other sim driving games. Just to be a user friendly. To be honest if you and other guys are not here helping us we will not be able to enjoy this multimonitor setup. NVIDIA surround is a not smooth and limited.


soon I will be upgrading to a bigger screen maybe triple 32 inches (not sure if flat or curve i think curve settings is more complex than flat monitors) and I will use this 4th monitor config to have a view of the rightside dashboard of the truck just to add more realism.

thanks again!


Image
Post Reply