Forums > Jitter

split GL image in 4 horizontal bands

March 20, 2006 | 1:22 pm

Hi everybody,

Does anyone have any experience with or ideas for splitting 1 openGL
context in 4 horizontal bands, where
each of those bands is sent to a different beamer ?
Before I start researching intensively, I’m wondering whether it is
even possible… ?

regards,

Brecht.


April 7, 2006 | 2:59 pm

Ok… made a little test patch to see how to distribute the image made by 1 jit.gl.sketch object to 4 different matrices, with the intention of ultimately sending each of those 4 parts to a different screen.
Alternative approaches to do this are much appreciated…

rgrds,
b.

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 231 84 115 196617 loadmess tomatrix bluh;
#P newex 190 41 97 196617 jit.gl.handle vortex;
#P user jit.pwindow 365 45 82 62 0 1 0 0 1 1;
#X name vortex;
#P newex 251 164 161 196617 jit.scissors @rows 1 @columns 4;
#P user jit.pwindow 381 217 102 302 0 1 0 0 1 0;
#P user jit.pwindow 280 217 102 302 0 1 0 0 1 0;
#P user jit.pwindow 179 217 102 302 0 1 0 0 1 0;
#P newex 487 195 151 196617 jit.matrix four 4 char 200 600;
#P newex 330 195 156 196617 jit.matrix three 4 char 200 600;
#P newex 180 195 149 196617 jit.matrix two 4 char 200 600;
#P newex 32 195 147 196617 jit.matrix one 4 char 200 600;
#P newex 251 141 150 196617 jit.matrix bluh 4 char 800 600;
#P message 109 42 80 196617 reset , sphere 1;
#P newex 277 110 229 196617 jit.gl.texture vortex @name split @dim 800 600;
#P newex 109 63 256 196617 jit.gl.sketch vortex @capture split @lighting_enable 1;
#P newex 34 63 74 196617 t erase b b b b;
#P newex 34 123 212 196617 jit.gl.render vortex @erase_color 0. 0. 0. 1.;
#P toggle 34 25 15 0;
#P newex 34 43 57 196617 qmetro 10;
#P user jit.pwindow 78 217 102 302 0 1 0 0 1 0;
#P window linecount 3;
#P comment 447 68 100 196617 drag in this window to manipulate jit.gl.handle;
#P fasten 17 3 13 0 367 188 492 188;
#P fasten 13 0 16 0 492 215 387 215;
#P fasten 17 2 12 0 330 188 335 188;
#P fasten 12 0 15 0 335 215 286 215;
#P fasten 5 2 7 0 71 107 282 107;
#P fasten 20 0 7 0 236 105 282 105;
#P connect 9 0 17 0;
#P fasten 7 0 9 0 282 134 256 134;
#P connect 11 0 14 0;
#P fasten 17 1 11 0 293 188 185 188;
#P connect 8 0 6 0;
#P fasten 19 0 6 0 195 60 114 60;
#P fasten 10 0 1 0 37 215 84 215;
#P fasten 5 1 4 0 55 85 39 85;
#P connect 5 0 4 0;
#P connect 2 0 5 0;
#P connect 3 0 2 0;
#P fasten 17 0 10 0 256 188 37 188;
#P window clipboard copycount 21;


April 7, 2006 | 3:56 pm

I use Open Sound Control to send the openGL commands to ‘n’ separate
machines. I use the ‘lookat’ message to jit.gl.render to shift the
cameras view to ‘line up’ the screens. each camera is at the origin,
but since im ‘rotating’ them, each ‘screen’ (or output device) ought
to be rotated to maintain proper perspective and convincing illusion
of seamlessness.

its a bit trickier if you want to change your lens angle on the fly.
I havent quite gotten that forumla down, but I did reverse engineer a
second order polynomial from manually finding points that line up,
plotting them, and then solving for the equation. It .. basically works.

here is a set of patches that work together to have ’2′ screens (left
and right), 2 render contexts and one controller. no OSC, just a
rough outline of my method. Note this is an attachment, so I dont
know if the forum will deal with it properly. open up left and right
first, then controller. controller has a pwindow with a jit.gl.handle
associated that moves, rotates etc the objects in both windows. play
with the lens angle too. it ought to startup at 45

also, id love someone to point out the ‘right’ way to calculate the
lens-angle/lookat formula. Obviously it will involve some trig, but I
havent really given it much thought.

hope this helps:

v a d e //

http://www.vade.info
abstrakt.vade.info


April 7, 2006 | 4:17 pm

Forum seems to not handle the attachment well… but mail does ;)
The d2r object is where you do the lookat offset calculation right?

I’ll have a look at your approach, since mine is also a bit intensive… having for synched computers would be great, but I’m afraid budgetwise that’ll be a problem… I was thinking of a single quad g5 with a nvidia quadro nvs 440 or an ati firemv… but then the problem will be one of speed..
I want to render a kind of particle system using javascript which will also be difficult to distribute I suspect?
A lot of new stuff to learn either way.

more later!


April 7, 2006 | 4:31 pm

d2r is a degree to radians conversion object, which is from Jasch’s objects.

since you are rendering separate contexts, there is no penalty for ‘screen stretching’ to a different card (ie reading back from one card to another), so with a nice card, (or two.. two contexts on each card), I bet a quad could do something quite nice..


April 7, 2006 | 7:00 pm

you might want to look at new matrox multiscreen gadget that has one
vga in, and 2 or 3 vga outs. It pretends to be single 2x or 3x
ultrawide screen, so you could render single, triple width GL screen,
and the box wold than split it to 3 discreet VGA outputs.

It is not too expensive. Search the archives for matrox to get more
info, as it was discussed recently.

klif


April 8, 2006 | 4:15 pm

The matrox triplehead2go is indeed a nice thing.

They also have the EXTIO F1400 (www.matrox.com/graphics/extio) now which supports 4 displays, but it’s not even deliverable yet.
I also came accross this funky gizmo : http://www.vistasystems.net/spyder.html which is very expensive :)

The intention is to project on a cyllinder, so in the end I don’t really need the horizontal resolution of 4 screens.
I figured 1 time 1600×1200 should do, with each beamer displaying a fourth (400×1200).
So a messy way of doing this is : 1 output, vga splitter, and manually masking the beamers.
Since this is to much of a hastle to set up, I was hoping there would be a way to have 4 outputs with the same content of which 3/4′ths of the image is masked in openGL (like in the letterbox example a few posts back).
Even better would be to be able to take a fourth of the image, and place it in the center of a new 1600×1200 screen (because otherwise it would also require to offset the beamers depending on which part of the image they show)


April 12, 2006 | 6:00 pm

FYI I just found out that the Triplehead2go won’t be out until May.
$299 MSRP. Can’t beat that! In the meantime, I just ordered the
Dualhead2go, to try it out (only $150)

Brian


April 12, 2006 | 7:24 pm

I just saw the Matrox Qid Pro, 4 outputs… costs minimum 835$
though… (guess you don’t get something for nothing, har har)


April 12, 2006 | 8:28 pm

is it openGL accelerated

v a d e //

http://www.vade.info
abstrakt.vade.info

I LIVE! I LIVE! I LIVE! I LIVE! I LIVE! I LIVE! I LIVE! I LIVE! I
LIVE! I LIVE! I LIVE! I LIVE!

You will not be saved by the Holy Ghost. You will not be saved by the
God Plutonium.

In fact, YOU WILL NOT BE SAVED!


April 12, 2006 | 8:54 pm

they say : full opengl acceleration…
but how and what is always a matter of testing I guess…
256Mb onboard memory… but that doesn’t sound like much if you drive
4 monitors with 1600×1200 resolution.


Viewing 11 posts - 1 through 11 (of 11 total)