views:

216

answers:

4

What tools, APIs, libraries are out there that I could use to create a system capable of rendering hi-res 3D scenes in real time in a display made of 4, 8, 9, 16, etc screens/projectors? For a setup with 8 projectors I should go for clustered solutions or should I stay with a single node featuring 4 dual headed video cards? Does someone have any experience with that?

+2  A: 

You can use Xinerama or XRandR when working with X11/Xorg. But to quote Wikipedia on Xinerama:

In most implementations, OpenGL (3D) direct-rendering only works on one of the screens. Windows that should show 3D graphics on other screens tend to just appear black. This is most commonly seen with 3D screen savers, which show on one of the screens and black on the others. (The Solaris SPARC OpenGL implementation allows direct rendering to all screens in Xinerama mode, as does the nvidia driver when both monitors are on the same video card.)

I suggest you read the Wikipedia article first.

Eduard - Gabriel Munteanu
+2  A: 
Brian Gianforcaro
He was mainly asking for multi-headed *display*, not for parallel processing / multi-GPU solutions.
Eduard - Gabriel Munteanu
He mentioned clustered solutions, just giving the man options... and if you've looked at Equalizer it scales from one computer up to a large cluster. With great multi-display support.
Brian Gianforcaro
+2  A: 
T.E.D.
Supported Operating Systems from the site: Microsoft® Windows® 20003, Windows XP (32/64bit), Windows Vista™ (32/64bit), Windows Server 2003/2008 (32/64bit), Mac® OS X v10.4 and Mac OX v10.5 Leopard
Brian Gianforcaro
My "(even in Vista)" comment wasn't about it's support. What I was referring to is the fact that dual-headed video cards can't do "span" mode in Vista, due to the thrice damned MPAA-inspired "security" Microsoft put in the video driver stack. That's why Vista gamers need one of these babies.
T.E.D.
+1  A: 

I know that the pyglet OpenGL wrapper (http://www.pyglet.org) for python has multiplatform multimonitor support; you might want to look at their source code and figure out how it is implemented.