nDisplay single PC - multi-monitor

I am working on a nDisplay setup using one pc to render to 2 virtual screens on 2 separate, physical monitors (extended mode, one gpu GeForce 1070). I am using UE4.21, because I couldn’t make the off-axis projection to work on UE4.22, which btw I would like to know why and what has changed between these versions.

I set up the config file, so I have 2 cluster nodes with the same, localhost ip and 2 screens with physical positions and size assigned. I have 2 different viewports as the monitors have different resolution. My guess was that I need to specify the monitor used by particular screen node, by pixel shift a and y in viewport, but that is not working.
Both windows startup on my primary monitor and fullscreen so I can’t even drag them to the other monitor. Couldn’t find windowed option in 4.21 version of nDisplay.
What’s the usual way of achieving multi monitor rendered on single pc? Do I need to use some nvidia features like mosaic or surround?

I was able to use one computer to show up on two monitors using the example configuration file and making some small changes.

The configuration file that was used is test_input.cfg from the exampleConfigs file with slight editing.
Under “Application windows” section of the config file, the resolutions of the monitors were changed to each specific monitor. You can google how to find the resolution of your monitors. Note that the coordinates of the pixels of each monitor must be changed too. (In my case, I changed the WinX value of the right window to 1920 since thats where my second monitor continues from the first monitor). The resolutions also had to be changed under “viewports” section of the config file. Here the X and Y coordinates were left as 0 and it works fine.

This was the file that I used that works for me

Thanks for the reply. In the meantime I modified the 3x2 example. Now I have 3 clusters on the same computer:

[cluster_node] id=node_1_up addr=127.0.0.1 window=wnd_1_up port_cs=41001 port_ss=41002 port_ce=41003 master=true sound=true
[cluster_node] id=node_1_dn addr=127.0.0.1 window=wnd_1_dn
[cluster_node] id=node_2_up addr=127.0.0.1 window=wnd_2_up

[window] id=wnd_1_up viewports=vp_1_up fullscreen=false WinX=0 WinY=0 ResX=1920 ResY=1080
[window] id=wnd_1_dn viewports=vp_1_dn fullscreen=false WinX=0 WinY=0 ResX=1920 ResY=1080
[window] id=wnd_2_up viewports=vp_2_up fullscreen=false WinX=0 WinY=0 ResX=1920 ResY=1080

[screen] id=scr_1_up loc=“X=1.49,Y=-0.48,Z=1.65” rot=“P=0,Y=3.5,R=0” size=“X=1.44,Y=0.82” parent=display_1_up
[screen] id=scr_1_dn loc=“X=0,Y=-1.48,Z=1.65” rot=“P=0,Y=-90,R=0” size=“X=0.5,Y=0.3” parent=display_1_dn
[screen] id=scr_2_up loc=“X=-1,Y=-1.48,Z=1.65” rot=“P=0,Y=-90,R=0” size=“X=0.5,Y=0.3” parent=display_2_up

[viewport] id=vp_1_up screen=scr_1_up x=0 y=0 width=1920 height=1080
[viewport] id=vp_1_dn screen=scr_1_dn x=0 y=0 width=1920 height=1080
[viewport] id=vp_2_up screen=scr_2_up x=0 y=0 width=1920 height=1080

They all appear on my primary screen, but it’s enough to use a windows shortcut to move each window cluster to the correct monitor. It’s “shift+win_key+arrow”

Hi @applesauce-15, thanks for your answer. I have a question,

[screen] id=scr_left    loc="X=2,Y=-1,Z=0" rot="P=0,Y=0,R=0" size="X=2,Y=1.5" parent=eye_level
[screen] id=scr_right   loc="X=2,Y=1,Z=0"  rot="P=0,Y=0,R=0" size="X=2,Y=1.5" parent=eye_level

here, the screen size (wh) = (2 m1.5 m), but why the loc X=2, Y = -1 and +1?

One more question, did you test any eye/head tracker with the setup? If so, did you use vrpn server for that?

It’s been a while since I touched this so I’ll try my best to answer your questions. My guess was that the axis was oriented differently, and this was the configuration that worked after playing around with the numbers.

In this instance, we did not use any trackers, our goal was to simply display. Separately, I also tried using a tracker with the zSpace, which I did use the VRPN for. Unfortunately I’m afraid I can’t provide any information, since it was mostly initial research and I stopped work on this soon after.

@applesauce-15 , my best wishes for your project. Meanwhile the Unreal 4.27 seems really advanced on nDisplay. Especially, the visual assist configuration, and exporting as JSON file. Although still the config is required, and JSON cannot replace it, still the data from JSON is really a big help for managing this coordinate system.