Maya image nodes?


#1

I’ve been trying to create a plug-in to extract certain geometric information from images and make it available in Maya. There is apparently a set of image nodes in Maya 4.0 (imageMultiply, imageFilter, etc) but I see nothing relating to them in the api headers (except for a lonely MImage.h file, which is referenced nowhere else). This kind of image processing infrastructure is just the thing I need. Implementing it myself is doable, but a nontrivial proposition.

What gives? Is there a plug-in I’m missing? Is the image stuff a separate download off the alias site? Googling for them brings up nothing – a lonely feeling indeed.

So has anybody used these nodes, or even heard of them?

Thanks,

Kevin Atkinson


#2

so, you want to read pixels from images inside maya? is that correct? sample texture nodes or use the built in IFFReader in the API (all depends on image format! lots of free libraries exists for just reading images) . Not sure if that’s what you are looking for :shrug:. Another try, do you mean where to find “image processing” nodes? well, take a look at shading networks and how to use them … and how maya works with nodes and how the API relates to to them

perhaps of some help …

-mk-


#3

There was a set of image processing nodes in Maya 4 which seem to have disappeared from Maya 5. They included such node types as imageMultiply, imageDiff, and a few others. I think the idea was to bring simple compositing functionality to Maya.

I’m creating a set of nodes that perform basic image processing operations – Sobel operators, edge extraction, thresholding, Hough line transform, blur, stereo depth maps, optical flow, contour extraction, etc. A few of these (e.g., thresholding) could be accomplished using utility nodes or ramps, but most others (e.g., contour extraction) can’t.

The goal is to extract interesting geometric information from images and make that available in Maya as pts, polys, nurbs, particles, whatever. (A cool example that was the inspiration for this project is the optical-flow driven particles that Glassworks did in Dreamkeeper.) To get something interesting, however, usually requires a sequence of operations, and a certain amount of tweaking of each of them, so a set of nodes that could be strung together will be very useful. It will likely prove very useful quite beyond my current intentions – for instance, with a bit of MEL, you could make a mini-compositor within Maya.

The image nodes that seem to have existed in 4 interested me because creating something along the lines that I’m describing involves building a certain amount of infrastructure, which was something I hoped to avoid. In particular, the way the Maya moves data through the DG involves a lot of copying, which with image data would be inefficient, so I wanted to create an alternative method of passing images between node using handles, which raised multithreading issues. Turns out it wasn’t that tough after all, though I’m still sorting out the threading issues. As far as I can tell, only shading nodes have to be made MP safe, since only rendering operations are multithreaded, though I’m still not certain if that is something I should rely on. These image nodes in general won’t be shading nodes – only a final rendering node will be a shading node.

I’m well aware of the MImage type, which can read pixels from shading nodes, and the IFF library. I used it to create the image source node.

So that’s the plan.

Kevin Atkinson


#4

soopagenius: sounds interesting… My first foray into Maya nodes was doing some compositing-type nodes in the Hypershader - I did a couple of basic keys (luma and chroma), but I never figured out the blur - I couldn’t figure out how to get the current colour of a pixel that wasn’t in the same spot as the output pixel…

I haven’t done any Maya stuff for a while, and I may have just not got far enough into the API to figure out how to do it… I’m now working with Shake, so much more friendly for that kind of thing!


#5

Yeah, Shake certainly seems like an awesome tool. It’s definitely high on my list of tools to learn. My goal with this tool is not to add compositing functinonality to Maya, however, but rather to extract geometric information from images and have that available as Maya native objects (nurbs curves, polys, vector fields, whatever). For instance, you can compute the optical flow between successive frames of an avi and turn the optical flow into a vector field, and use it to drive particles – kind of a poor-man’s version of Glassworks’ Dreamkeeper work.

It’s general enough, however, that I can’t really anticipate all the ways in which it might be used. Part of the reason for making it is that I want to play with a set of nodes like this myself to see what could be done with them.

It’s very much an alpha, right now, but after a few weeks work, it should be a useable tool. Let me know if anyone is interested in playing around with it. If the response is good, I may take the effort to turn it into a commercial product.

Kevin Atkinson


#6

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.