Very wide/multiple monitor displays

Cat

Newcomer
I have to tackle the problem of a sim to a three monitor display soon. Running it at recent tradeshow across three 40" 1080P LCDs revealed enough problems that I figure I should find a more robust solution than just using one ~5760x1200 viewport.

I used two 8800GTXs, so the the max viewport size wasn't a problem, but performance when spanning the window to the third display, which was driven by the second 8800, was fairly bad; 40-50FPS, down from ~140. Using a Triplehead2Go and running at horizontal resolution of 3840 brought performance back in line with a single display, but only the upscaling quality of the monitors saved me there.

Distortion along the far edges of the left and right displays was also annoying. I suppose this comes from the perspective projection, but I'm not positive.

I've never dealt with this before, but I'm sure many of you have, so any horror or success stories would be great to hear.

I could use one drawing context and three viewports, and render from three different perspectives. This still limits me to using the Triplehead2Go, with its associated problems, but at least I can account for differing spaces between monitors due to physical layout or bezel width.

I could share three contexts, but I'm not familiar with how expensive switches between the contexts can be. I also don't know how sharing the third context on the second video card will work out. NVIDIA's drivers are pretty forgiving for someone fairly new to this field, but that sounds like a lot of driver work nonetheless.

My major concern is that these three pass approaches will be too expensive. I have to display pretty high-polygon geometry, because most of the models we use start life as parametric CAD files. They end up in Maya eventually, but we don't have a lot of artist time to tweak them for real-time use. A rough scene is 2 million triangles across 100 material changes.

I have idea, but I don't know if it's practical:
Send three different perspective projections to the vertex shader, three positions to the fragment shader, use MRT to render three views, and display those textures to three viewports.
 
I can only really guess at this to be honest. But my best guess is that having seperate rendertargets and cameras is the way to go. It addresses the issues with distortion due to the extreme single viewport and the amount of geometry you have to submit multiple times should be minimal with reasonable culling.

Failing that I'd try rendering to a single large rendertarget and explicitly copying sections to rendertargets for each of the monitors. Assuming the maximum supported texture size doesn't prevent this.
 
Back
Top