6-screen setup for Driving Simulator

Preparing to spec for an open source driving simulator project in Unity and would like your advice on how to deal with multiple screens.

The intended screens are:

In front of the cab, 3 large HD screens with panoramic view
Inside the cab, 2 side and 1 rear view mirror emulated with small LCD screens in place of actual mirrors

Like this:
simulator display layout graphic

In the Windows Display Properties / Settings control panel, the screen layout may appear as something like this:
Windows Display Preferences Dialog

Question 1: can Unity drive such a setup and how would it best be implemented ?
Is it true that this would require Unity Pro but could be done with Render Textures and 4 cameras (1 for the main pano screens and 3 for the rear view mirrors) And have them display in non-overlapping viewports corresponding to the Windows Display Layout (ie with NVidia Surround utility Unity thinks of the whole output surface as a single virtual screen 7584*1080 in the example above.
I would need at least two graphics cards (since modern NVidia cards can drive 3-4 simultaneous displays max) - I might have 2 cards SLI’d for the 3 main HD screens and an extra one for the small LCD screens.
Does this sound doable ? Is there a better performance way to do this ? I am trying to avoid going to multiple computers and having to deal with increased code complexity & latency issues…

Question 2: is there a way to deal with bezel correction, ie accounting for the physical space taken up by monitor bezels in the real world - whereas the Windows Displays layout obviously has no gap for purposes of rendering. Does anyone have experience with NVidia’s nView bezel correction used in conjunction with Unity ? Will it “just work” ?

Question 3: for LCD projectors rather than screens, is there a Rendering Effect component to do things like geometric & luma compensation for nonlinearities in the projectors/screens ? Or should I assume that needs to be done in the projectors (and shop for those that can do that, obviously)

Thank you very much in advance for any tips ! I will post more information and probably questions as the project takes shape.


Collating related / relevant information to save others some googling time:

  1. Somewhat related, also see the Unite 2013 - Cluster Rendering Tech Preview video (Pete Moss, Unity’s Field Engineer in simulation and visualization, about cluster rendering.) Not quite what I am asking here since I would hope (TBD) that my simulator can run off one computer rather than requiring multiple. I realize the cluster solution scales up to more screens easily. Although I sure would like that “CameraRig” asset type for single node rendering !

  2. Also related see NVidias recent announcement of G-Sync, a small hardware module inside future monitors for tear free variable VSync timing - no more frame rate drop penalty for checking that vertical blanking interval box… Also: tearing related good tip: use either all DVI or all miniDP output dont mix & match.

  3. I just found this very similar question on StackExchange which suggests it cannot be done (at all on a single node, therefore don’t use unity) which would make me sad !

  4. TripleHead2Go solution or NVidia Surround (span displays as one virtual one) using a hack (and windowed display only)

  5. a single view across multiple monitors

  6. Looking into MiddleVR for Unity now…

We’ve have completed several multiscreen simulations all within unity. Answers to your initial questions:

  1. Yes this can be done - however you need to check to see what cards you’re planning on using. As of a few weeks ago - your options for nvidia - was quadros only. Although you can stack multiple GeForce cards - you can not take advantage of the additional ports. You can use AMD cards (eyefinity supports up to 6 screens).
  2. Bezel correction - can be done inside unity. you can even setup unity to do proper edge blending, etc. But i would try the projector settings first to hopefully save time.
  3. You could probably achieve something with post effects for this, but i would recommend starting with professional projectors/screens set at proper distances to avoid having to do this (there’s a reason why the good ones are expensive).

I’d definitely recommend having a fully functioning testing rig (ideally 100% to scale) to guarantee you don’t run into snafu’s when you’re setting things up.

In our experience - spend money on the right hardware vs. writing networking code for high resolution interactives. We learned this the hard way…

hope this helps.