plane shaping

phiol's icon

Hi all

Is there a way to shape a plane of [jit.gl.videoplane] into something else then the rectangle possibilities?

This is for mapping onto something like say a teapot. or any shape that is not symmetrical. It doesn't have to curve, just outline the silhouette.

Planes are great when things are square but how do I do I change it's shape keeping it a flat surface in a 3d gl world.

I'm shure it's not to trivial, but I haven't be able to find anything on this in the forum .

thanks a million in adavance.

phil

MJ's icon

map on other gl objects like jit.gl.sketch or jit.gl.nurbs or jit.matrix ....

curved mapping in jitter ->http://www.vimeo.com/1534943

phiol's icon

Hi MJ

Thanks a lot the leads and also for your vids very nice.

I think that what I want to do is even more simple, (although I wouldn't mind learning how to do what you showed in the vids).

**In other words, what I want to do is the equivalency taking a pair of scissors and cutting a sheet of paper (plane) into any shape I want. Keeping it in a 3D world.

An example of that would be your "Big X" mapping. Was that a 3D shape you created or is it multiple planes placed together? Even there, How did you create the frontal shape of the "Big X".

Was this all done w. jit.gl.draw.

Also, when you suggest the jit.matrix

Again image ,skipping forward and saving a lot of time by using this method I've been hypothesising about: The cv.jit.floodfill determine the matrix.

But anyways, just the shaping of a plane would help lots right now.

Endless thanks for your help

phil

phiol's icon

Hi again MJ

The (jit.gl.nurbs-video-deform.pat) sort does the concept to what I want, meaning, the shape of the gl object is based on the matrix , but it's all distorted. What about 2d!?

Also, was it complicated to curve your plane in your video?
I assume this should be simple no? What objects did you use?

Thanks

phil

MJ's icon

the big-x are many planes together
the frontal shape is just a 'square' plane with black planes on top /in front cutting it in a x-shape and then the sides a placed on top of that.

i make my planes in many jit.matrix
should rtm about how 3d objects are represented as a jit.matrix with 13 planes (> appendix B)

the curved thing is made using bezier splines on the data which filled the 3d jit.matrix

and yeah its kinda 'top secret' ..trying to earn some money from it

but if you make some patches i can help you out

phiol's icon

WOW thanks a lot for the hints MJ .

I find Jitter way more "corsée" , to learn if you know nothing about it. I am very comfortable w. Max MSP

Anyways.

>>the curved thing is made using bezier splines on the data which filled the 3d jit.matrix

-Did you get your bezier spline in the jasch_objects_??

>>i make my planes in many jit.matrix
should rtm about how 3d objects are represented as a jit.matrix with 13 planes (> appendix B)
Thanks for the lead.

SO based on this, my theory for efficient quick mapping setups using the cv.jit.floodfill would then be possible. Am I right??

>>and yeah its kinda 'top secret' ..trying to earn some money from it

I totally respect that.

Thanks a lot for your hints and generosity.

phil

phiol's icon

Hi again Mj

One last little one

I just read Appendix B and phew ! it's a little over my head right now. What tutorial or patches on this forum would you suggest I start from.

That's how I totally learned MaxMSP @ 1st.
My curiosity always brings me to point A in the end , but @ least the results are always there from the start.

thanks

phil

MJ's icon

used the bezier curves from jasch before but or this project i just entered the formula (this one http://local.wasp.uwa.edu.au/~pbourke/geometry/bezier/cubicbezier.html)

dont know of any exmples that goes with appendix B....
i found out by trial&error

phiol's icon

>>i found out by trial&error

NOOOO0000ooooo!!! There goes my summer !!!

>>i make my planes in many jit.matrix
should rtm about how 3d objects are represented as a jit.matrix with 13 planes (> appendix B)

Are your jit.matrix plugged in together??

my jitter knowledge is hanging by a "thread"

thanks again

phil

MJ's icon

phil hughes wrote on Fri, 26 June 2009 07:32>>
NOOOO0000ooooo!!! There goes my summer !!!

and autumn ,winter, etc
been using max/jitter since ±2001

btw 50% of my mapping patch is in javascript in a jsui..

phiol's icon

Yes I know what you mean.

The past 2 years of my life have completely been dedicated to maxMSP.

But I,m sure what I want to do could be done without javascript. I'm sure there is a way to hack it otherwise.
Not that I want to weasel out the hard work.

I'm sure it's super simple (of course once you know how to work it) to shape the contor of a plane in anything you want.

But again, I think the most effecience way to map something's silhouette could but done w. the cv.jit.floodfill or whatnot and take the output matrix as the plane shape.

I think my approach could be a cheap hack version (you would not get the angle but at least it would place at the right place in an efficient manner) this you fix the angles by hand.

anyways

thanks

phil

seejayjames's icon

Those videos are really impressive. The calibration one definitely shows how we can extend flat projections to just about any surface we want... I hope they do get to interactive speeds for the calibration, it would be amazing to watch projections which track moving objects---even if it was a bit laggy it would still be amazing to experiment with. Also if it could be done with infrared that would be nice.

I wonder what additional possibilities you could have if what you're projecting is from a Jitter window, some kind of image or OpenGL which uses the calibration coordinates somehow. So not only would the image be changing, the projection angle and size could be too.

Even using a flat projection, you could get coordinate information from a bunch of objects that you want to project onto, and the visualization or videos that you're working with could be precisely (or not so precisely) mapped to those objects using gridshapes with textures.

I wonder if a calibration system for objects could be done without the sensors---maybe all the objects are white, you shine a light over the whole scene, then analyze where the bright spots are using a camera. Then you'd have a list of coordinates and areas you could work with when designing how the visuals behave, plus have control over what you project in the areas between them.

Great stuff!

phiol's icon

Hey great to hear from you seejay!

your white tracking is sort of exactly the idea I mention in my post last week (and this one too). Did you get my personal message?

I was thinking using cv.jit.floodfill. Take a picture of something (room etc.) then you can zoom in on a spot. then w. the matrix containing the exclusive area you create a 2D plane in gl.

This is what I don't know how to do! Turn a matrix into a gl shape. Or more precisely, turn the exclusive spot into a gl shape.

As for the link: I saw something from the same guy (johnny lee) do 3D mapping in realtime using the wiimote. He calls it "foldable displays"

Briefly back to my topic;
do you think this would be something that could be easy to do
matrix w.(exclusive spot)-> spot to gl 2d plane shape.

thanks a lot

phil

seejayjames's icon

If you're using cv.jit probably the easiest thing is to use blobs.centroids on your picture/video and take the info from that. You get position and size of each blob, so these would be converted into the position and scale attributes of each jit.gl.gridshape. Could use circles or planes, whatever you want. Circles with dim 3 can be triangles, or hexagons if they have 6, etc. Then you can texture each gridshape with your imagery.

You'd have to scale the values coming from blobs.centroids to match up to your GL scene, which would also depend on how far away the GL camera is. Typically the range is -1. to 1. in each of the X and Y directions, with [camera 0 0 2] I think.

Yep, got your message, thanks!

phiol's icon

thanks for the advice ,

I'll try it today. Only thing is that your stuck w. geometrical shapes right?

I 'll try it and get back to you.

thanks again

phil

seejayjames's icon

With gridshape you would be stuck with the shapes it offers, but wit jit.gl.model you could use imported shapes, or with jit.gl.sketch you could draw pretty much whatever you want. In fact, it might be worth trying jit.gl.sketch and just plot points anywhere they're above a certain brightness, or plot points everywhere and alter the point_size based upon brightness. But you'd need multiple jit.gl.sketch objects to be able to texture the areas differently. Try the points with and without antialiasing, it makes a big difference in the appearance (but also the drawing speed for the rounded points).

For the most control you'd want jit.gl.sketch, though you'd need to figure out just how you want the shapes to be drawn, not just plop in a gridshape which would be a bit easier.

This sounds like it's going to be pretty cool, and would definitely be able to keep up with some level of motion. Once the camera's input gets into Jitter, the rest happens pretty fast... though I've definitely noticed some lag at the front end, getting the input to the processing stage---it happens with iMovie too, so it's not Jitter per se. Hopefully this will continue to get better, it will really help things like motion tracking of laser dots or other "sense-able" input methods, for interaction using large areas and camera tracking.

will76's icon

just an smal addition.
with one jit.gl.sketch object its possible to put multiple textures on multiple shapes using the "glbindtexture" command.

will

phiol's icon

WOw thanks a lot guys! This is pure gold

Seejay I think what I want is more simple than you think.
It will not involve motion tracking. Simply mapping on a shapes that that is not geometrical.

I have not had time today to try any of your suggestions. I am stuck working on another little music project.

I will really try to test your suggestions tomorrow. And gt back to you.

Thanks a lot guys

phil