outputting across 4 displays

Hi all, I’m working on a project which I started in java / processing, but am now switching to openframeworks as I’m hoping to get better performance with C++.

The app as it stands can be seen at http://www.memo.tv/psychedelic-fluids-a-…-processing
and I intend to output this across 4 projecters.

What I would like, is advise from anyone who has done something similar.
How can I output across 4 displays (both hardware wise, and software).

I know there are quad-head graphics cards out there, but what is best for maximum performance?

P.S. At the moment the app isn’t very GPU heavy, most of the complex operations (solving the fluid dynamics, updating particle positions etc.) are done on the CPU, and then just rendered using OpenGL (each particle is a quad, particle trails are quad strips, the fluid is a quad).

as far as hardware, you can do –

1 nice nvidia card (8800 pops to mind) + 2 dual head to gos == 4 screens wide projection. are you on a mac, pc or linux?

theo and I tried this on one of his computers with two triple head to gos and had 6 monitor output.

software is a bit more complicated, especially since with a simulation it’d be hard to just send control signals across multiple machines. it might be possible if you do things like seed the random number, etc, but it’s a bit more work then a hardware solution.

looks great! look forward to see it in OF

take care,

I second that, I’m using a Nvidia 8800 on a windows XP machine at the moment to output to 5 screens in an interactive shop window, using 2 x Matrix TripleHead2Go.

You could get away with using one if you need 4 screens then.

I would recommend going with an Nvidia card as their driver lets you combine the 2 very wide resulting screens into one even wider one, which can be a life saver.
I was having problems across monitors when using multiple windows, but in the end I solved it by using one large window on one super wide combined “monitor”.

Performance is great, but at the moment I’m mostly rendering various video textures, so I’m not pushing the fille rate that much.


Thanks for the replies guys…

I’m developing on a mac, but for the installation I can use mac, pc, linux whatever is best suited. Using multiple computers does seem quite hard due to the complexity of the simulation and i would like to avoid it if I can. Looking forward to getting my hands dirty in C++ / OF. I’m sure i’m going to have a lot of questions in the next few weeks! :stuck_out_tongue:

“I would recommend going with an Nvidia card as their driver lets you combine the 2 very wide resulting screens into one even wider one, which can be a life saver.”
This line I find very intriguing. At the moment I’m developing on an ATI X1900XT on a Mac Pro. It is dual head and I did think about using 2 DualHead2Gos, but was concerned how OF would handle fullscreen over 2x 1600x600 outputs as thats what the OS would see (2 independant video outs). But your recommendation seems to solve this problem and I quite like it. Is this a windows only option? Or does actually not using this option and outputting fullscreen over 2x 1600x600 outputs not cause any problems (if I were to use my ATI card on Mac)?

I’m actually developing on a MacPro with a 8800 (in XP), the installed machine is a Dell XPC somethingsomething.

The feature seems to be Windows only, but I think someone on this board mentioned that this is a built in feature in OSX ?

If you stick to one graphics card and one window you’il be fine, it’s when you have multiple windows and screens it can start getting messy in my experience.

I’m not actually using OF for that project, but rather my own old stuff + SFML ( http://www.sfml-dev.org/ ) for windowing, because it seemed to have pretty good support for rendering across multiple windows, but in hindsight I could’ve gone OF (which uses GLUT) as I ended up doing it all in one big window [1].

I’m not 100% familiar with how GLUT does things, but if you can get the computer to think you only have one big screen you’ll be better off as you can then be sure you can go into fullscreen mode and that sort of thing, it gives you options on how to solve things basically.

Just wait until you get your hands on an 8800, that thing is pretty damn fast :slight_smile:


[1] I have a touch screen that is a different resolution, so I was trying to have one 1360x768 screen and the rest 1024x768, but in the end I just drew the 1360x768 offscreen texture onto the touchscreens 1024x768 slice of the big window and let the LCD TVs internal scaler scale it back up, you can’t really tell.

Thanks hahakid, thats very helpful. I’ll carry on the Mac Pro and post how I get on. Want to switch to the GF8800 soon!

You can do it on a Mac within the GLUT settings.

Setup your displays so that they are the same resolution and side by side in your system preferences.

eg: [ 1 ][ 2 ][ 3 ] etc

then when your openFrameworks app is running - click on the menu openFrameworks -> then go to preferences…

You should see this:

Check the box that says use extended desktop. Now fullscreen should go across all your displays.

Important to know that if you want this preference to be saved you need to Quit the openFrameworks app with Apple-Q and not ESC. (just the first time, when you change the setting)

Regarding performance see how much you can get out of the ATI card. I think the NVIDIA 8800 GTX cards are really good and we were seeing no FPS decrease over 6 displays. I think older cards wouldn’t be able to handle it so well.

Hope that helps!


I would like to have some advice too. I actually only need two screens for an upcoming project. Optimal would be at HD resolution which means 2*1280*720.
It generally works as described in this thread when I plug a second screen to my first generation MBP but if I go over a certain resolution which would allready be 2*800*600 I only get like 1 frame per second. I guess my GFX card simply can’t handle it. Its a relative complex 3D scene which renders fine on one HD window with 60fps.

So my Question is what Hardware setup would I need to render at 2*1280*720. Does anybody have experience with that?

Hi Moka, with the Mac Pro + ATI X1900XT I regularly run 2 x 1920 x 1200 at 60fps (total 3840 x 1200 pixels), with lots of stuff going on with no problems. I also sometimes run the 2 outputs into two triple heads for a total of 6 displays, each at 640x480 (6 displays sounds like its more, but actually its a lot less pixels! 3840 x 480 - how I did glastonbury) - so I can say a Mac Pro + ATI1900XT will definitely do what you want! the GF8800 is a waaay more powerful beast than the ATI, but unfortunately theres problems with the mac drivers and in some cases it performs worse than the ATI

With a 2nd gen macbook pro (ATI 1600) I"ve run a triple head on the ouptut with 3 x 800 x 600 (2400 x 600) and get very good framerates (depends on the content of course!) - but haven’t really tried higher. I’m pretty sure the 2nd and 3rd gen mbps could do 2 x 1280 x 720 as they support displays upto 2560 x 1600 but not sure about the 1st gen mbp. I’m pretty sure you’ll need the digital dual / triple head though …

hope that helps…

whats the benifit of a dual head? Only that I can Split the one DVI output provided by my mac book pro?

yep. if you want to drive two external 1280x720 displays from your mbp (e.g. 2 hd projectors or displays) then you need a matrox dual head. your os will see the dvi port on the mbp as connected to one giant 2560x720 display, and the box will split the signal with half going to one output, the other half going to the other

thank you! that sounds good!

Hey folks,

i’m in a nightmare situation at the moment where i’m trying to debug multiple outputs half a world away (the components arrived in New Zealand a couple of days after I flew out to Austria…)

so here’s the setup:

  • new Mac Pro with standard graphics card (NVideo GeForce GT120)
  • 2x DualHead2Go
  • display configuration is
    x x
    x x
    where each x is an 800x600 beamer.

Problem #1: we can’t set the DualHead2Go’s to anything less than 1920x720. ideally we want 1600x600 per DualHead2Go for a total screen area of 1600x1200.

Problem #2: we can’t make fullscreen work over all four outputs when the arranged in this square layout: either it’s fullscreen on one pair of screens, or the other, but not both. At the moment I’m waiting to hear back from the other side about whether Use Extended Desktop is enabled, but I’m assuming it is.

Anyone have any advice/experience?


For anyone going into this area, we just trying to get a digital triplehead2go to work with a new Mac Book Pro, but they aren’t compatible!


MacBook Pro (Late 2008) NVidia GeForce 9600M/9400M Mini DisplayPort Not supported Not supported

Even with display port to dvi convert it isn’t working, getting bad signal.

Even this hack doesnt work

They are bringing out a DP version soon, but not quick enough for my liking

[attachment=0:37u28nn8]Picture 2.png[/attachment:37u28nn8]

I looks like the Digital Edition should give you that resolution. It says that DVI connections will give you 1600 x 1200. Are the projectors DVI or VGA? If not maybe there is some hack of a adapter to make the dvi in for the maxtor a vga.

![](http://forum.openframeworks.cc/uploads/default/310/Picture 2.png)

sounds like you don’t have extended desktop on. you should check that before pulling your hair out.

I haven’t used a triple head with the new macbook pros, but I would find it hard to believe they broke compatibility with that! The connection to the triple head is not a normal DVI (even though it may look like one at first glance), it is a dual-link DVI (has more pins). So you can’t use a normal mini-displayport => DVI won’t work, you need the mini-displayport => dual-link DVI (which is a lot more expensive of course). GIve that a shot and lemme know how it goes, i’m curious too :stuck_out_tongue:


yep we knew that :wink: doesnt work with the dual link either. spoke to matrox, cant work with anything using a display port, you have to wait for this to come out fairly soon


jeeez really!? i just bought a new macbook pro, so its not gonna work with my triplehead from last year? argh!

hi folks, thanks for the thoughts.

extended desktop is turned on, but going fullscreen still only spreads the image across one of the two sets of outputs (ie one of the two DualHead2Go outputs), not both.

any further ideas?

could it be because they’re stacked in a square pattern

rather than being a long skinny row

if it’s because they need to be in a skinny row then i should be able to use a scissors test and render twice, but it means i’ll need to superoptimise the drawing…