Image Warping to 8 x Projectors on a curved screen with an NVS810 Graphics Card


I am currently looking at using the NVS810 Graphics card to provide an extended desktop serving 8 x Projectors shooting on to a curved 360 degree screen.

The issue we are facing is that the on board geometric correction available on the projectors is not capable of providing the amount of edge blending required work with the screen.

I am wondering if Nvidia provide any software that may be able to do this or if there are any recommendations people may have to make this work.

FYI, the ideal solution will enable the 8 x Projectors to be seen as one extended desktop screen therefore allowing any type of content to be displayed on the 360 screen.

Looking forward to hearing from you guys.

Hi jamie.p,

MOSAIC will allow you to adjust for overlap between the projectors, maintaining the correct aspect ratio for the projectors. NVIDIA provides APIs to enable developers to create their own Warp & Blend solutions, but we don’t offer a full solution. We recommend you to look for a 3rd party solution like Scalable Desktop -™ to do this.

Note: We recommend a Quadro P4000 or above to use with software like Scalable Desktop. It is not supported on NVS810.


Ryan Park

I’ve done an application using NVS810 on linux, to display 4x2 (1920x1080) + 39px of basel, the up screens are physically upside down.
Due to the xorg’s panning system I was forced to use xinerama.
Pay attention at line #57
*The system was built using debian 9 debootstrap + xorg + openbox.

There is my xorg.conf file, you can adjust offset values (decrasing then) to overlay.

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "1"
    Option "StandbyTime" "0"
    Option "SuspendTime" "0"
    Option "OffTime"     "0"
    Option "BlankTime"   "0"

Section "Files"

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     60.0 - 75.0
    Option         "DPMS" "false"

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVS 810"
#    BusID          "PCI:3:0:0"

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "GPU-0.DP-1: 1920x1080 +0+0 {rotation=invert}, GPU-0.DP-0: 1920x1080 +1959+0 {rotation=invert}, GPU-0.DP-3: 1920x1080 +3918+0 {rotation=invert}, GPU-0.DP-2: 1920x1080 +5877+0 {rotation=invert}, GPU-1.DP-1: 1920x1080 +0+1190, GPU-1.DP-0: 1920x1080 +1959+1190, GPU-1.DP-3: 1920x1080 +3918+1190, GPU-1.DP-2: 1920x1080 +5877+1190"
    Option         "MultiGPU" "Off"
    Option         "SLI" "off"
    Option         "BaseMosaic" "on"
	Option         "ConnectedMonitor" "GPU-0.DFP-0, GPU-0.DFP-1, GPU-0.DFP-2, GPU-0.DFP-3,GPU-1.DFP-0, GPU-1.DFP-1, GPU-1.DFP-2, GPU-1.DFP-3"
    SubSection     "Display"
        Depth       24