You can use a fluid texture 2d, then emit into it from a particle expression.

First create a fluidTexture2d assigned to shader of the collision object. Set the velocity grid to none and the density grid to static. Set the resolution of the fluid to the desired wet map resolution.

If desired you can do things like diffusion or even solve a simulation. I've gotten good dripping wax by using a fluid with low solver quality combined with high damp and some negative buoyancy. (this would also need a dynamic velocity grid)

The above expression just sets pixels, and thus might look pixelated. If you wanted smooth circular stamps based on the particle radius you could use a more complex setup with two particle systems. The second one would emit directly into the 2d fluid texture (fluid:emit from object), and the expression on the first system would generate the secondary particles where their xy position was the uv position of collision.(using the emit command in the above expression instead of setFluidAttr) The fluidTexture2d transform would be scaled such that it exactly fit 0-1 in the xy plane.

The cached 2d fluid is pretty much like a file texture sequence, but it is is full floating point. If you need file textures, however, you could do "convert to file texture" on the fluid. "Render texture range" could be used to convert the sequence of the fluid to file textures, however it currently seems to have a problem with the selection of the 2d fluid texture. You could look at the mel script that render texture range invokes "composite.mel" and perhaps fix the selection problem or clone it to create your own script.

Hello guys, I'm trying to do achieve the same effect, but when I run the expression (from the Mel command line source) it gives me this error "Error: Line 6.45: Invalid use of Maya object "fluidTexture2DShape1.resolutionH""
do you know why it happens?
Thanks in advance,

You need to set it up as a particle expression. If instead you run some of this from the command line you need to use get and set attr. Inside an expression one can use a syntax like this:
float $x = mySphere1.tx;
This is pre-parsed in the expression to create a physical input connection from mySphere.tx. Normally when getting the value of an attribute outside an expression you need:
float $x = `getAttr mySphere.tx`;

Follow Us On:

The CGSociety

The CGSociety is the most respected and accessible global organization for creative digital artists. The CGS supports artists at every level by offering a range of services to connect, inform, educate and promote digital artists worldwide. More about us on TheArtSociety.com