projecting on a globe / hemisphere

Apr 8, 2009 at 9:33am

projecting on a globe / hemisphere

hey everybody!

for an installation i want to project with 3 projectors on the surface of a hemisphere (one half side of a globe). i tried out a small patch in vvvv using the “projektor node” (works like a virtual camera) but i would much more prefer to use max/jitter.

does anyone of you have experience projecting on a globe/sphere? how do you solve the problem with the distortion?

is there a similar object in jitter like the “projektor node” in vvvv? a virtual camera which which “films” a virtual globe from a certain point, the output to the video projector should be exactly the “real” texture of the globe?

or does anyone have a better idea to program all this? i haven’t tried out yet if it works – just in virtual in vvvv.

uff, it’s even difficult for me to explain my problem (in Englisher), so you’ll find attached a jpg of the vvvv patch for better understanding… maybe someone of you can help me, would be great!
thanks so much!

#43262
Apr 8, 2009 at 10:21am

hello,
you could use jit.gl.gridshape @shape sphere and texcoordmagic patch…(look for it n the forum you should find it easily) to place the image in the geometry.
Cheers
Hubert

#155151
Apr 9, 2009 at 4:06am

Also look at the tex_map attribute when you’re applying a texture to a sphere, there are 4 options and one should work, possibly in combination with some other parameters.

#155152
Apr 9, 2009 at 4:26pm

also texcoord magic only works on tex_map 1 and 3 I think

#155153
Apr 17, 2009 at 3:50am

hi,
Also trying to map a hemisphere with a radial texture, I can’t find the texcoord magic patch you are are talking about.
Could anyone advise me where to find it? or lead me to a text_map example?
thanks a lot

#155154
Apr 17, 2009 at 5:17am

did you try searching the forum for “texcoord magic”? it comes up if you do.

#155155
Apr 17, 2009 at 5:27am

yes , sorry, found it, I mistyped my search.

#155156
Apr 17, 2009 at 8:21am

i think this is the texcoord magic patch…
marc, do you know how to handle the problem with image-distortion when projecting with multiple videoprojectors on a hemisphere? i have the problem that i can not project that way that all projectors output the texture for the whole surface of the hemisphere whithout DIFFERENT distortion on the borders/edges of the projector-images…

————–
#P window setfont “Sans Serif” 9.;
#P flonum 729 146 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 692 146 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 662 168 86 9109513 pak anchor 0.5 0.5;
#P toggle 441 126 15 0;
#P toggle 418 126 15 0;
#P toggle 395 126 15 0;
#P toggle 372 126 15 0;
#P newex 349 146 104 9109513 pak bordercolor 0 0 0 1;
#N vpatcher 95 381 578 727;
#P window setfont “Sans Serif” 9.;
#P window linecount 0;
#P newex 98 79 60 9109513 unpack 0. 0.;
#P window linecount 1;
#P newex 32 47 109 9109513 route theta zoom anchor;
#P window linecount 0;
#P newex 353 98 27 9109513 t b l;
#P flonum 32 127 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 190 219 27 9109513 * 1.;
#P newex 370 178 27 9109513 * -1.;
#P newex 227 219 27 9109513 * 1.;
#P newex 32 219 27 9109513 * 1.;
#P newex 370 123 60 9109513 unpack 0. 0.;
#P newex 353 76 60 9109513 vexpr 1./$f1;
#P newex 69 219 27 9109513 * -1.;
#P newex 32 149 81 9109513 expr 0.5*cos($f1);
#P newex 209 149 78 9109513 expr 0.5*sin($f1);
#P flonum 301 244 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 264 244 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 227 244 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 190 244 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 191 267 128 9109513 pak tex_plane_t 0. 0.5 0. 0.5;
#P flonum 143 245 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 106 245 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 69 245 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 32 245 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 33 267 130 9109513 pak tex_plane_s 0.5 0. 0. 0.5;
#P inlet 32 25 15 0;
#P outlet 33 297 15 0;
#P connect 1 0 23 0;
#P connect 23 0 21 0;
#P fasten 22 0 21 0 358 122 37 122;
#P connect 21 0 13 0;
#P connect 13 0 17 0;
#P connect 17 0 3 0;
#P fasten 7 0 0 0 196 291 38 291;
#P connect 2 0 0 0;
#P fasten 16 0 17 1 375 171 54 171;
#P fasten 3 0 2 1 37 263 68 263;
#P fasten 12 0 14 0 214 182 74 182;
#P connect 14 0 4 0;
#P fasten 19 0 14 1 375 208 91 208;
#P fasten 4 0 2 2 74 263 98 263;
#P connect 23 2 24 0;
#P fasten 5 0 2 3 111 263 128 263;
#P fasten 24 0 6 0 103 104 148 104;
#P fasten 6 0 2 4 148 263 158 263;
#P fasten 12 0 20 0 214 182 195 182;
#P connect 20 0 8 0;
#P fasten 16 1 20 1 425 213 212 213;
#P fasten 21 0 12 0 37 145 214 145;
#P fasten 8 0 7 1 195 263 225 263;
#P fasten 13 0 18 0 37 193 232 193;
#P connect 18 0 9 0;
#P fasten 16 1 18 1 425 213 249 213;
#P fasten 9 0 7 2 232 263 254 263;
#P fasten 10 0 7 3 269 263 283 263;
#P fasten 24 1 11 0 153 108 306 108;
#P fasten 11 0 7 4 306 263 312 263;
#P fasten 23 1 15 0 70 71 358 71;
#P connect 15 0 22 0;
#P connect 22 1 16 0;
#P connect 16 0 19 0;
#P pop;
#P newobj 467 197 80 9109513 p texcoordmagic;
#P message 467 170 42 9109513 theta $1;
#P newex 467 145 83 9109513 expr $f1*3.14/180;
#P flonum 591 121 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 628 145 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 591 145 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 561 168 70 9109513 pak zoom 1. 1.;
#P flonum 467 125 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P user ubumenu 241 106 100 9109513 0 1 1 0;
#X add clamp;
#X add repeat;
#X add clampedge;
#X add clampborder;
#X add mirroredrepeat;
#X prefix_set 0 0 0;
#X pattrmode 1;
#P newex 248 131 70 9109513 prepend wrap;
#P window linecount 2;
#P newex 142 235 235 9109513 jit.gl.videoplane rota @transform_reset 2
@tex_map 1 @tex_plane_s 0.5 0. 0. 0.5 @tex_plane_t 0. 0.5 0. 0.5;
#P window linecount 1;
#P newex 142 173 224 9109513 jit.gl.texture rota @rectangle 0
@bordercolor 1 0 0 0;
#P message 142 106 78 9109513 read dishes.mov;
#P newex 142 138 55 9109513 jit.qt.movie;
#P newex 26 188 66 9109513 jit.window rota;
#P newex 26 164 73 9109513 jit.gl.render rota;
#P newex 26 137 45 9109513 t b erase;
#P toggle 26 81 15 0;
#P newex 26 101 50 9109513 qmetro 33;
#P comment 246 88 66 9109513 Bound Modes;
#P comment 357 108 116 9109513 can’t seem to make black;
#P window setfont “Sans Serif” 18.;
#P comment 88 43 211 9109522 Rota-like texcoord magic;
#P connect 4 0 3 0;
#P connect 3 0 5 0;
#P connect 5 0 6 0;
#P fasten 5 1 6 0 66 160 31 160;
#P fasten 3 0 8 0 31 129 147 129;
#P connect 9 0 8 0;
#P fasten 22 0 10 0 354 169 147 169;
#P connect 8 0 10 0;
#P fasten 12 0 10 0 253 161 147 161;
#P connect 10 0 11 0;
#P fasten 21 0 11 0 472 225 147 225;
#P fasten 13 1 12 0 291 126 253 126;
#P connect 23 0 22 1;
#P connect 24 0 22 2;
#P connect 25 0 22 3;
#P connect 26 0 22 4;
#P connect 14 0 19 0;
#P connect 19 0 20 0;
#P fasten 27 0 21 0 667 192 472 192;
#P fasten 15 0 21 0 566 193 472 193;
#P connect 20 0 21 0;
#P connect 18 0 16 0;
#P connect 16 0 15 1;
#P fasten 17 0 15 2 633 164 626 164;
#P fasten 18 0 17 0 596 140 633 140;
#P fasten 28 0 27 1 697 164 705 164;
#P fasten 29 0 27 2 734 165 743 165;
#P window clipboard copycount 30;

#155157
Apr 17, 2009 at 6:22pm

hmmm, that’s an interesting question, and does not seem related to texture mapping so much.

you’re never going to get rid of distortion entirely because your projecting a rectangular image (your output window) onto a spherical surface. my first guess is that you don’t need to to software based spherical mapping, because your are doing actual spherical mapping when you project. i would also guess that having corner-pin gl.mesh/gl.nurbs setups would allow you to achieve an acceptable mapping of each third/quadrant/whatever of the sphere.

however this is all conjecture, as i’ve never tried.

edit: actually, rereading, i’m still not quite sure i understand what you’re asking, but am interested to hear what solutions you come up with.

#155158
Apr 17, 2009 at 10:50pm

there was a shader that someone made that did pretty good projection textures

#155159
Apr 18, 2009 at 9:00am

cool, could you tell us how/where to get it..?

#155160

You must be logged in to reply to this topic.