Multiple screens with 1 gpu

hi there

i am building an application for widescreen projectons, where the user can drag an drop a normal 4:3 video on the x:3 stage and move it, mix it. now my problem is to output multiple video signals; as i can’t afford enough graphic cards nor have a board with enough slots, my mate came up with this solution: i take two graphic cards and set the hz for output to 240 (possible with a gforce5, not tested)- this allows me to have eight signals (four each) at 60 hz with a box my mate would build. i’d need to get the frames of the first 4 screens (and then of the second 4) in order; in particular there is first frame1 for screen1 then frame1 for screen2, then frame1 for screen3, frame1 one for screen4, then the same for frame2- this should result in one output for each graphics card with 4 outputs in right order packed in each. my mates magic box would then split it up to two times 4 signals with 60 hz.

now all i got by now is my mixing tool where i can move several “layers” of video (4:3) on a widescreen stage. i know there is a node for splitting to multiple outputs (altough i don’t understand it yet) and i guess then i would need something like stallone for dx9 outputs? is this possible? how can i do it?

please help

cheers

and have you checked out the matrox triplehead2Go? almost there.

Sounds cool!
Only problem with mulitple cards is that video isnt shared between outputs so you cant have an interface on a seperate output and still preview the video. You could however run the interface on 1 pc while outputing on another via a network (and have the same media library on both)
Whether you can get 4 outputs to accept a span node I dont know or if they will support video, sanch maybe able to tell you.
Triple head is the best option at the moment I think!

hi, thx for the quick response…

i know about triplehead2go but i want to be able more than 3 screens if possible. 240 hz is what my new gforce nvidia 9750 on my notebook can do, so it would be possible with one card to have 4 diff outputs, but first of all i’d need to sort the frames right, any idea?

in my current setup the number of screens can be changed, so the best solution would also work with a higher number of outputs, as 240 hz is not the max possible with better cards, but i have to look this one up; but think of 12 outputs with two cards @360hz each. i don’t know if this is all going to work but if so it would be a killer one for greater setups in vjing or other multi screen things.

so what i need to achieve is a span mode sort of thing for a variable number of screens to split my e.g.(12x4):3 wide picture into 12 pictures, “stallone” the single frames of the first six (or maybe of all 4 if i only use one gpu)in a row and output those as one 4:3 videosignal @(60x6) hz each, same for second six. also, if i’d use three graphic cards to use e.g. 18 screens, split it all up and combine it to three signals in the same way and so on. this would only be limited hardware, number of graphic cards, hz, and of course fast hdd for more videos running…but with a highend pc you’d be able to do huge stuff…if this all works.

as i’m quite new to programming i’ve been happy to get the app insert quads 4:3 on click on the stage, being able to move them up and down, copy them to fill the stage horizontally and such simple features. by now it’s made for 15 quads max, but i guess i can’t play 15 videos at once anyway…or can I? however, from here i don’t know how to carry on- how to split my renderer up, how to sort the frames…don’t know if it’s even possible :)

so again, please help

if i’d get it working doing it with a network to have a preview would be no problem…
matrox although is not completely satisfying.

thanks

one option i thought of was creating (again) e.g. 12 fixed aligned quads which fill the stage, and somehow record/output whats overlaying it as video, texture or whatever would be best and sort it right, but i guess this “scanning” process would be quite ram consuming if even possible; so maybe not the way to go…

i guess the scanning process would be way to slow. in general vvvv works quite well with multiple graphic adapters (even four with two outputs each), and rendering the output directly on the right output is the more efficient way than copying stuff between all the graphic cards.

but agreed, the VideoTexture has issues in multiple screen setups. but one should avoid video anyway.

so i found out my laptop is only capable of 60 hz out, 240 hz seems to be the standard maximum for nvidia cards (not checked yet). my old geforce pc5300 can do 120 hz- therefore i could achieve 4 outputs using that hz thing (material costs for the box are about 50 eur yet) and 2 vga out quite easily. there should exist a graphic card of nvidia which is capale of 240 hz, so with two outputs this could result in 8 outputs using 1 gpu.
@oschatz: i know i can use multiple gpus; i’m intending to do so, but combined with the hz split box to achieve let’s say 16 screens. even if i could afford 8 (!) gpus with 2 outputs each, or 4 with tripleheads, how would i split my long renederer (my “stage” where i mix video) to output to the right slots of the right gpu? no idea how to do it…
and still i would love to find a solution for that sorting-the-frames-right-hz-box-thing…do you have any ideas how to do it? or is it simply not possible?
not using video as you suggest is not satisfying for me, as what i do and work with can’t all be done by generating or scripting methods. so i might should consider doing this in another scripting application, but none i know yet is fun like vvvv.
but: what i am looking for could be of even greater interest for people using vvvv e.g. for vjaying live with generated material only or for any sort of (cheaper) multiscreen projection, not only with the purpose of displaying .avis (what still is my major goal)…

i’m really thankful for any kind of help,

cheers

what about using the perspectivelookatrect (transform view) node? if i use linear spread into Translate rect x coordinate with spread count same as screen count, scale it right, and then use a GetSlice node to access every single camera position…this would work ey?

it seems to be it for me, but as i don’t have this magic box yet i can’t test it…? is there anything i’m doing wrong or would this be really working? it’s done so easily now that i’m kimd of not believing it yet…

example with 15 screens and 25 fps uploaded…

thanks in advance…

multiscreenswitch.zip (45.3 kB)

@wannabe: which magical sorting-the-frames-right-hz-box-thing are you referring to?

i did not get if is this a real existing product (like the matrox triplehead) or some electronics do-it-your-self idea? i think matrox developed some clever chips for the tripleheads, and it seems to me really difficult and expensive to come up with something simpler or cheaper.

whether we talking about 3096x768 at 60Hz or 1024x768 at 180Hz seems completely the same to me (except that the former seems to be slightly easier to generate in vvvv)

well the magic box is still a do-it-yourself idea, but i’ve found articles of a university in germany trying the same stuff and do know from my mate that it would use well known techniques, simply not used for this kind of thing yet. and over all, it’s really cheap.

i do know the matrox solution now as i had the chance to test it, and it’s cool, for a small amount of screens. but what i’m tryin to realise here is a way cheaper solution for way bigger projection environments. think about certain festivals out there, e.g. the urban art forms in austria, where approx. 16 or more screens are seamlessly surrounding the main stage/crowd. if you want to project one large connected picture on this high amount of screens using the tripleheads doesn’t seem to be very professional to me, nor is it really easier to overview or achieve.
having 16 screens you would need 6 times matrox triplehead @ 200 eur, with 6 outputs from your pc (with at least 3 gpu) [=all in all about 2000 eur with good gpus](=all in all about 2000 eur with good gpus).
using the hz box to switch output slot at every new frame you could achieve the same thing with only 1 of these boxes @ approx. 150 eur, with 4 outputs @240 hz from your pc (with 2 gpu) [all in all about 700 eur](all in all about 700 eur).
so for me the biggest advantage is money, and i believe if working this could be a more professional solution for large environments, as all your n outputs come fom one box, and not n/3 matroxs; over all it’s in output not restricted to vga, as we’re buidling one with vga in and bnc out!!..). you can also see that if going even higher in screen count the difference of pricing gets even bigger, as you could easily built this box with a large number of in and outputs without making it a lot more expensive; but you get an extra 200 eur for every 3 outs with triplehead AND the number of gpus needed also increases faster using tripleheads.

my mate building the box for me also believes that 240 hz is not the maximum possible or that this value could be hacked somehow, but i haven’t checked this yet. dreaming of 360 hz out it would be possible to achieve the same result with one ouput as with 2 matrox and two outputs. 3 outputs would then result in 18 screens, which is simply not practicable to do with matroxs…in my opinion.

despite of all of this my very old geforce pcx 5300 is capable of 120 hz output, so 2 outputs possible per vga out, but it is not capable of the minimum supported resolution for a matrox triple head. i’m not using this gpu for this project, but it’s good to know that if the box is built i could even manage 4 screens with an old hardware like this. or use it in combination with newer hardware, e.g. having a good card with 240 hz serving the first outputs and the older one for the last 4- all done with the same box having 2 inputs!!!

nevertheless, i’m not asking you to believe in this idea, as it’s still not sure if it’s all going to work out- but i would be really thankful if you guys could tell me if i’m doing the vvvv part right, using the perspectivelookatrect node? as said for me it seems to be it, but i haven’t been using the projection/view transform possibilities yet, so there might be something i’ve overlooked…
i’ve set near plane to 0.0001 and the same value for z at the distortion pin, i don’t understand these values yet but it looks like that’s cool.

thanks.

oh and there are good news as well for everybody who is interested: i got to correct myself, it looks like 240 hz is possible with at least every nvidia since pcx 5300, as this is depending on the hardware connected…this means even 4 screens possible with 1 dvi out of our laptop, yippie…